Chris Hegarty (chris.hega...@oracle.com) wrote: > 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.
[Sorry for resurrecting this thread, I just became aware of it--was not subscribed.] My workflow relies heavily on mq and (IMHO, of course) reject files are needless tedium. So I depend heavily on rebase. In order to avoid reject files when pulling, I do: hg qpush -a # push everything hg pull --rebase # pull and rebase in one step, will # invoke merge tools if necessary hg qpop <some_patch> # optional If you omit the 'hg qpush -a' before pulling, it becomes tedious (sometimes impossible) to get your merge tools invoked when you later want to push the patches. -John > > 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. > > -- John Coomes Oracle, MS USCA22-3?? john.coo...@oracle.com 4220 Network Circle 408-276-7048 Santa Clara, CA 95054-1778 *** Support GreenPeace and we'll all breathe easier. ***