[PATCH STABLE] bookmarks: use try/except for accessing a node

Sean Farley sean.michael.farley at gmail.com
Tue Mar 18 20:20:44 CDT 2014


Gregory Szorc <gregory.szorc at gmail.com> writes:

> On Mar 18, 2014, at 17:35, Pierre-Yves David <pierre-yves.david at ens-lyon.org> wrote:
>> 
>> 
>> 
>>> On 03/18/2014 05:23 PM, Sean Farley wrote:
>>> # HG changeset patch
>>> # User Sean Farley <sean.michael.farley at gmail.com>
>>> # Date 1395182192 18000
>>> #      Tue Mar 18 17:36:32 2014 -0500
>>> # Branch stable
>>> # Node ID 8d3d12401c38524417f1151b817fd210645a0602
>>> # Parent  03774a2b6991b451bde7095238fde9ce98380d28
>>> bookmarks: use try/except for accessing a node
>>> 
>>> Previously, in bookmarks.compare a changeset node would be tested via 'node in
>>> repo' but this is tricky. A value of 'True' could be returned even if the node
>>> is hidden and accessing it will throw a 'RepoLookupError'. This happens when a
>>> remote bookmark points to changeset that has been obsoleted locally. Therefore,
>>> we wrap the block in a try/except which handles catching the error.
>> 
>> 1. `<node> in repo` should not return True if the revision is filtered.
>>   Consider fixing this instead.
>> 
>> 2. During bookmark pulling, a bookmark should cleanly apply on a
>>   filtered changeset making it visible again.
>>   Consider fixing this instead.
>> 
>> 3. There is multiple example of test using public changeset in
>>   test-obsolete.t You should be able to build a test case from that.
>
> I didn't have a problem writing the test: I had a problem getting the issue to reproduce!
>
> It got me thinking that this might be an issue triggered by an extension.

Yes, exactly, this was my issue as well.


More information about the Mercurial-devel mailing list