[PATCH STABLE] rebase: fix rebase aborts when tip^ is public (issue4082)

Durham Goode durham at fb.com
Tue Nov 5 11:49:25 CST 2013


On 11/4/13 10:40 PM, "Martin Geisler" <martin at geisler.net> wrote:

>Durham Goode <durham at fb.com> writes:
>
>>--- a/mercurial/phases.py
>> +++ b/mercurial/phases.py
>> @@ -185,6 +185,8 @@
>>          # be replaced without us being notified.
>>          if rev == nullrev:
>>              return public
>> +        if rev < nullrev:
>> +            raise error.RepoLookupError(_('cannot lookup negative
>>revision'))
>
>Will some earlier part of the code turn -2 into a positive revision
>number before we hit this? I would like 'hg phase -r -2' to keep
>working.


hg phase -r -2 will continue to work.  The command line revset resolver
turns that -2 into a positive rev before passing it to the actual command.
 This function in phases.py should never, ever get a negative number
because it's indexing into an array that doesn't have the nullrev in it,
so a negative number will always be off by one and return the wrong phase
in this function.



More information about the Mercurial-devel mailing list