[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