[PATCH] revert: use "discard"/"revert" verb when reverting interactively (issue5143)

Augie Fackler raf at durin42.com
Mon Jun 6 01:06:02 EDT 2016


> On Jun 6, 2016, at 1:04 AM, Pierre-Yves David <pierre-yves.david at ens-lyon.org> wrote:
> 
> 
> 
> On 06/05/2016 07:36 PM, timeless wrote:
>> Fwiw localizers would typically object to this... It doesn't give them
>> enough flexibility of wording two distinct messages.
> 
> (Thanks for looking at this rephrasing, it was long overdue!)
> 
> However, I agree with timeless that we need two full messages here for
> i18n purpose. That said? why do we need two messages at all? Could a
> single one work?

I think three messages (“record/discard/revert”) is better than one by a wide margin. I’m not sure how I feel about two (“record/revert”), but it’s still clearly an improvement over 3.8. I’d be delighted to see a followup that’ll make i18n happy. :)

> 
>> 
>> On Jun 3, 2016 11:19 PM, "Augie Fackler" <raf at durin42.com
>> <mailto:raf at durin42.com>> wrote:
>> 
>>    On Fri, Jun 03, 2016 at 04:20:05PM +0200, Denis Laxalde wrote:
>>> # HG changeset patch
>>> # User Denis Laxalde <denis.laxalde at logilab.fr
>>    <mailto:denis.laxalde at logilab.fr>>
>>> # Date 1464962107 -7200
>>> #      Fri Jun 03 15:55:07 2016 +0200
>>> # Node ID 3157d25e58ac0c1648c006336e808decb98e02b2
>>> # Parent  48b38b16a8f83ea98ebdf0b370f59fd90dc17935
>>> revert: use "discard"/"revert" verb when reverting interactively
>>    (issue5143)
>> 
>>    Huge fan. Queued.
>> 
>>> 
>>> Instead of "record this change to 'FILE'?" now prompt with:
>>> 
>>> * "discard this change to 'FILE'?" when reverting to the parent of
>>    working
>>>  directory, and,
>>> * "revert this change to 'FILE'?" otherwise.
>>> 
>>> diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py
>>> --- a/mercurial/cmdutil.py
>>> +++ b/mercurial/cmdutil.py
>>> @@ -3301,10 +3301,12 @@ def _performrevert(repo, parents, ctx, a
>>>         else:
>>>             diff = patch.diff(repo, None, ctx.node(), m,
>>    opts=diffopts)
>>>         originalchunks = patch.parsepatch(diff)
>>> +        operation = _('discard') if node == parent else _('revert')
>>> 
>>>         try:
>>> 
>>> -            chunks, opts = recordfilter(repo.ui, originalchunks)
>>> +            chunks, opts = recordfilter(repo.ui, originalchunks,
>>> +                                        operation=operation)
>>>             if reversehunks:
>>>                 chunks = patch.reversehunks(chunks)
>>> 
>>> diff --git a/mercurial/patch.py b/mercurial/patch.py
>>> --- a/mercurial/patch.py
>>> +++ b/mercurial/patch.py
>>> @@ -1109,11 +1109,12 @@ the hunk is left unchanged.
>>>             if skipfile is None and skipall is None:
>>>                 chunk.pretty(ui)
>>>             if total == 1:
>>> -                msg = _("record this change to '%s'?") %
>>    chunk.filename()
>>> +                msg = _("%s this change to '%s'?") % (operation,
>>> +
>>    chunk.filename())
>>>             else:
>>>                 idx = pos - len(h.hunks) + i
>>> -                msg = _("record change %d/%d to '%s'?") % (idx,
>>    total,
>>> -
>>     chunk.filename())
>>> +                msg = _("%s change %d/%d to '%s'?") % (operation,
>>    idx, total,
>>> +
>>     chunk.filename())
>>>             r, skipfile, skipall, newpatches = prompt(skipfile,
>>>                     skipall, msg, chunk)
>>>             if r:
>>> diff --git a/tests/test-revert-interactive.t
>>    b/tests/test-revert-interactive.t
>>> --- a/tests/test-revert-interactive.t
>>> +++ b/tests/test-revert-interactive.t
>>> @@ -64,7 +64,7 @@ 10 run the same test than 8 from within
>>>    3
>>>    4
>>>    5
>>> -  record change 1/6 to 'f'? [Ynesfdaq?] y
>>> +  revert change 1/6 to 'f'? [Ynesfdaq?] y
>>> 
>>>   @@ -1,5 +2,6 @@
>>>    1
>>> @@ -73,7 +73,7 @@ 10 run the same test than 8 from within
>>>    4
>>>    5
>>>   +b
>>> -  record change 2/6 to 'f'? [Ynesfdaq?] y
>>> +  revert change 2/6 to 'f'? [Ynesfdaq?] y
>>> 
>>>   diff --git a/folder1/g b/folder1/g
>>>   2 hunks, 2 lines changed
>>> @@ -86,7 +86,7 @@ 10 run the same test than 8 from within
>>>    3
>>>    4
>>>    5
>>> -  record change 3/6 to 'folder1/g'? [Ynesfdaq?] y
>>> +  revert change 3/6 to 'folder1/g'? [Ynesfdaq?] y
>>> 
>>>   @@ -1,5 +2,6 @@
>>>    1
>>> @@ -95,7 +95,7 @@ 10 run the same test than 8 from within
>>>    4
>>>    5
>>>   +d
>>> -  record change 4/6 to 'folder1/g'? [Ynesfdaq?] n
>>> +  revert change 4/6 to 'folder1/g'? [Ynesfdaq?] n
>>> 
>>>   diff --git a/folder2/h b/folder2/h
>>>   2 hunks, 2 lines changed
>>> @@ -163,7 +163,7 @@ Test that --interactive lift the need fo
>>>    3
>>>    4
>>>    5
>>> -  record change 1/6 to 'f'? [Ynesfdaq?] y
>>> +  revert change 1/6 to 'f'? [Ynesfdaq?] y
>>> 
>>>   @@ -1,5 +2,6 @@
>>>    1
>>> @@ -172,7 +172,7 @@ Test that --interactive lift the need fo
>>>    4
>>>    5
>>>   +b
>>> -  record change 2/6 to 'f'? [Ynesfdaq?] y
>>> +  revert change 2/6 to 'f'? [Ynesfdaq?] y
>>> 
>>>   diff --git a/folder1/g b/folder1/g
>>>   2 hunks, 2 lines changed
>>> @@ -185,7 +185,7 @@ Test that --interactive lift the need fo
>>>    3
>>>    4
>>>    5
>>> -  record change 3/6 to 'folder1/g'? [Ynesfdaq?] y
>>> +  revert change 3/6 to 'folder1/g'? [Ynesfdaq?] y
>>> 
>>>   @@ -1,5 +2,6 @@
>>>    1
>>> @@ -194,7 +194,7 @@ Test that --interactive lift the need fo
>>>    4
>>>    5
>>>   +d
>>> -  record change 4/6 to 'folder1/g'? [Ynesfdaq?] n
>>> +  revert change 4/6 to 'folder1/g'? [Ynesfdaq?] n
>>> 
>>>   diff --git a/folder2/h b/folder2/h
>>>   2 hunks, 2 lines changed
>>> @@ -242,7 +242,7 @@ Test that --interactive lift the need fo
>>>    3
>>>    4
>>>    5
>>> -  record change 1/2 to 'f'? [Ynesfdaq?] y
>>> +  discard change 1/2 to 'f'? [Ynesfdaq?] y
>>> 
>>>   @@ -2,6 +1,5 @@
>>>    1
>>> @@ -251,7 +251,7 @@ Test that --interactive lift the need fo
>>>    4
>>>    5
>>>   -b
>>> -  record change 2/2 to 'f'? [Ynesfdaq?] n
>>> +  discard change 2/2 to 'f'? [Ynesfdaq?] n
>>> 
>>>   $ hg st
>>>   M f
>>> @@ -303,7 +303,7 @@ 3) Use interactive revert with editing (
>>>   -1
>>>   +0
>>>   +2
>>> -  record this change to 'k'? [Ynesfdaq?] e
>>> +  discard this change to 'k'? [Ynesfdaq?] e
>>> 
>>>   $ cat k
>>>   42
>>> @@ -350,7 +350,7 @@ Check the experimental config to invert
>>>    1
>>>    2
>>>    3
>>> -  record change 1/3 to 'folder1/g'? [Ynesfdaq?] y
>>> +  discard change 1/3 to 'folder1/g'? [Ynesfdaq?] y
>>> 
>>>   @@ -2,7 +1,7 @@
>>>    c
>>> @@ -361,13 +361,13 @@ Check the experimental config to invert
>>>   +4
>>>    5
>>>    d
>>> -  record change 2/3 to 'folder1/g'? [Ynesfdaq?] y
>>> +  discard change 2/3 to 'folder1/g'? [Ynesfdaq?] y
>>> 
>>>   @@ -7,3 +6,2 @@
>>>    5
>>>    d
>>>   -lastline
>>> -  record change 3/3 to 'folder1/g'? [Ynesfdaq?] n
>>> +  discard change 3/3 to 'folder1/g'? [Ynesfdaq?] n
>>> 
>>>   $ hg diff --nodates
>>>   diff -r a3d963a027aa folder1/g
>>> _______________________________________________
>>> Mercurial-devel mailing list
>>> Mercurial-devel at mercurial-scm.org
>>    <mailto:Mercurial-devel at mercurial-scm.org>
>>> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
>>    _______________________________________________
>>    Mercurial-devel mailing list
>>    Mercurial-devel at mercurial-scm.org
>>    <mailto:Mercurial-devel at mercurial-scm.org>
>>    https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
>> 
>> 
>> 
>> _______________________________________________
>> Mercurial-devel mailing list
>> Mercurial-devel at mercurial-scm.org
>> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://www.mercurial-scm.org/pipermail/mercurial-devel/attachments/20160606/ac6fdda2/attachment.sig>


More information about the Mercurial-devel mailing list