On 11/04/14 16:19, 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.

or something like:

list=`hg qapplied`

hg qpop -a

before doing the update and then afterwards

hg qpush `echo $list`


-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.


Reply via email to