Mercurial > hg-stable
changeset 49127:3cd57e2be49b
absorb: make `--edit-lines` imply `--apply-changes`
One of our users tried to use `hg absorb -e` but it seemed that it
would only bring up the editor if there were no changes the command
could automatically detect destination for. I spent probably half an
hour debugging why it worked that way. I finally figured out that it
does bring up the editor, but you have to answer "yes" to the "apply
changes" prompt *first*. That seems very unintuitive. If the user
wants to edit the changes, there seems to be little reason to present
them with a prompt first, so let's have `-e/--edit-lines` imply
`-a/--apply-changes`. All the tests using `-e` also already used
`-a`. I changed them to rely on the implied `-a` so we get coverage of
that.
Differential Revision: https://phab.mercurial-scm.org/D12550
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Wed, 13 Apr 2022 07:58:49 -0700 |
parents | 9caf23927d04 |
children | 97f2554cb647 |
files | hgext/absorb.py tests/test-absorb-edit-lines.t |
diffstat | 2 files changed, 7 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/absorb.py Wed Apr 13 14:40:11 2022 +0100 +++ b/hgext/absorb.py Wed Apr 13 07:58:49 2022 -0700 @@ -1045,6 +1045,10 @@ origchunks = patch.parsepatch(diff) chunks = cmdutil.recordfilter(ui, origchunks, matcher)[0] targetctx = overlaydiffcontext(stack[-1], chunks) + if opts.get(b'edit_lines'): + # If we're going to open the editor, don't ask the user to confirm + # first + opts[b'apply_changes'] = True fm = None if opts.get(b'print_changes') or not opts.get(b'apply_changes'): fm = ui.formatter(b'absorb', opts)
--- a/tests/test-absorb-edit-lines.t Wed Apr 13 14:40:11 2022 +0100 +++ b/tests/test-absorb-edit-lines.t Wed Apr 13 07:58:49 2022 -0700 @@ -15,10 +15,10 @@ absorb --edit-lines will run the editor if filename is provided: - $ hg absorb --edit-lines --apply-changes + $ hg absorb --edit-lines nothing applied [1] - $ HGEDITOR=cat hg absorb --edit-lines --apply-changes a + $ HGEDITOR=cat hg absorb --edit-lines a HG: editing a HG: "y" means the line to the right exists in the changeset to the top HG: @@ -43,7 +43,7 @@ > y : f > yyy : g > EOF - $ HGEDITOR='cat editortext >' hg absorb -q --edit-lines --apply-changes a + $ HGEDITOR='cat editortext >' hg absorb -q --edit-lines a $ hg cat -r 0 a d e