On 11/04/14 15:59, Jonathan Gibbons wrote:
Popping all patches beforehand is reasonable, but afterwards, it would
be better to reset to the patches that were previously applied than to
try and push all of them.

Michael as requested same.

What is the behavior if you cannot qpush patches after the pull, because
of merge issues?

The parts of the specific patch that applied cleanly remain applied, them that did not are written out to reject files to be analyzed. The remainder of the patches in that repository are not applied. get_source will then exit with an appropriate error exit code and you can take action.

-Chris.


-- Jon


On 04/11/2014 07:58 AM, 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