Is it common to use mq in all repos of a forest?
I've never used mq that way; it would only have occurred to me to use mq
in the repo I'm interested in -- in my case, langtools. But then, I
admit I tend not to clone forests more than necessary. configure.sh
--with-override-repo-name is your friend ;-)
-- Jon
On 04/11/2014 08:19 AM, Chris Hegarty wrote:
On 11/04/14 15:59, Michael McMahon wrote:
That's very useful Chris. I wonder is it okay to assume that all patches
must be pushed back again after the update?
Would it be feasible to remember which (if any) patches had been popped
first, and only push the same ones again?
That would require a much more involved set of changes in hgforest,
but could be doable. All you need to know is queue tip, 'hg qtop', of
each repo, qpush back to it.
-Chris.
Michael
On 11/04/14 15:58, Chris Hegarty wrote:
Anyone using MQ for their daily development will know about this,
forgetting to qpop before sync'ing up. It would be nice it get_source
would pop and push patches ( only if you are using MQ ) automatically.
If you do not have patch repos, then there is no change.
diff --git a/get_source.sh b/get_source.sh
--- a/get_source.sh
+++ b/get_source.sh
@@ -28,6 +28,21 @@
# Get clones of all nested repositories
sh ./common/bin/hgforest.sh clone "$@" || exit 1
+patchdirs=`ls -d ./.hg/patches ./*/.hg/patches ./*/*/.hg/patches \
+ ./*/*/*/.hg/patches ./*/*/*/*/.hg/patches
2>/dev/null`
+
+# Pop all patches, if any, before updating
+if [ "${patchdirs}" != "" ] ; then
+ echo "Found queue repository, qpop."
+ sh ./common/bin/hgforest.sh qpop -a || exit 1
+fi
+
# Update all existing repositories to the latest sources
-sh ./common/bin/hgforest.sh pull -u
+sh ./common/bin/hgforest.sh pull -u || exit 1
+# Push all patches, if any, after updating
+if [ "${patchdirs}" != "" ] ; then
+ echo "Found queue repository, qpush."
+ sh ./common/bin/hgforest.sh qpush -a
+fi
+
-Chris.