RFR [9] : get_source.sh should be more friendly to MQ
Mike Duigou
mike.duigou at oracle.com
Fri Apr 11 19:10:30 UTC 2014
On Apr 11 2014, at 12:06 , Chris Hegarty <chris.hegarty at oracle.com> wrote:
> On 11 Apr 2014, at 18:55, Mike Duigou <mike.duigou at 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.hegarty at 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.
>>
>
More information about the build-dev
mailing list