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

Reply via email to