[PATCH 2 of 7] bundle2: add a 'salvageoutput' method on bundle20

Pierre-Yves David pierre-yves.david at ens-lyon.org
Thu Apr 16 14:38:35 CDT 2015



On 04/16/2015 02:17 PM, Ryan McElroy wrote:
> On 4/16/2015 2:25 AM, Pierre-Yves David wrote:
>> # HG changeset patch
>> # User Pierre-Yves David <pierre-yves.david at fb.com>
>> # Date 1429168564 14400
>> #      Thu Apr 16 03:16:04 2015 -0400
>> # Node ID 3e1f69627291b38adf39a87a78cf48089f767a24
>> # Parent  878a6e0f8c834aec2cc8c50d65b9ab804644b73c
>> bundle2: add a 'salvageoutput' method on bundle20
>
> s/bundle20/bundle2

Nope I mean bundle20, the class that generate 'HG20' file

>> This method returns a copy of every 'output' parts added to the bundler.
>
> english nit-pick: s/every/all

Sure, maybe matt can fix this inflight?

>> This is the second step in our quest for preserving the server output
>> on error
>> (issue4594). We want to be able to copy the output parts from the
>> aborted reply
>> into the exception bundle.
>>
>> The function will be used in a later patch.
>>
>> diff --git a/mercurial/bundle2.py b/mercurial/bundle2.py
>> --- a/mercurial/bundle2.py
>> +++ b/mercurial/bundle2.py
>> @@ -478,10 +478,22 @@ class bundle20(object):
>>                   value = urllib.quote(value)
>>                   par = '%s=%s' % (par, value)
>>               blocks.append(par)
>>           return ' '.join(blocks)
>> +    def salvageoutput(self):
>> +        """return of list with a copy of all output parts in the bundle
>> +
>> +        This is meant to be used during error handling to make sure
>> we preserve
>> +        server output"""
>> +        salvaged = []
>> +        for part in self._parts:
>> +            if part.type.startswith('output'):
>
> This seems fragile. I'd prefer a method like `part.isoutput()`

Meh. We probably want some more robust and wide salvaging. But the 
freeze day is now so I rather get this simple version in to have bundle2 
usable in 3.4. We can improve this salvaging mechanism later.

-- 
Pierre-Yves David


More information about the Mercurial-devel mailing list