On Apr 11 2014, at 12:06 , Chris Hegarty <chris.hega...@oracle.com> wrote:
> On 11 Apr 2014, at 18:55, Mike Duigou <mike.dui...@oracle.com> wrote: > >> Have you looked at using rebase? > > I have not, in any detail. > >> I've been using >> >> sh common/bin/hgforest.sh pull >> sh common/bin/hgforest.sh rebase >> sh common/bin/hgforest.sh update >> >> rather than get_source.sh as it allows me to skip the qpop/qpush steps. > > Yes, this may work. I was just looking for a single command to active this. > Maybe this combination could be baked into get_source.sh if patch > repositories exist, and we can verify the existence of the rebase extension ( > rather than my previous proposal ) ? I have contemplated adding this as an alternative to the pull -u step in get_source.sh but wasn't others would agree. Some people hate rebase. We can detect whether rebase is enabled via : hg showconfig extensions | grep ^extension.rebase | wc -l Play with this approach manually and see if it works for you. If it does then we can consider enhancing get_source.sh Mike > > -Chris. > >> >> Mike >> >> On Apr 11 2014, at 07:58 , Chris Hegarty <chris.hega...@oracle.com> 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. >> >