D4378: resolve: add a flag for the default behavior of re-merging
valentin.gatienbaron (Valentin Gatien-Baron)
phabricator at mercurial-scm.org
Sat Sep 1 16:59:53 EDT 2018
This revision was automatically updated to reflect the committed changes.
Closed by commit rHG5d00e6061ba2: resolve: add a flag for the default behavior of re-merging (authored by valentin.gatienbaron, committed by ).
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D4378?vs=10658&id=10705
REVISION DETAIL
https://phab.mercurial-scm.org/D4378
AFFECTED FILES
mercurial/commands.py
tests/test-completion.t
tests/test-resolve.t
CHANGE DETAILS
diff --git a/tests/test-resolve.t b/tests/test-resolve.t
--- a/tests/test-resolve.t
+++ b/tests/test-resolve.t
@@ -442,6 +442,18 @@
$ hg resolve -l
R file1
R file2
+Testing the --re-merge flag
+ $ hg resolve --unmark file1
+ $ hg resolve -l
+ U file1
+ R file2
+ $ hg resolve --mark --re-merge
+ abort: too many options specified
+ [255]
+ $ hg resolve --re-merge --all
+ merging file1
+ warning: conflicts while merging file1! (edit, then use 'hg resolve --mark')
+ [1]
$ cd ..
diff --git a/tests/test-completion.t b/tests/test-completion.t
--- a/tests/test-completion.t
+++ b/tests/test-completion.t
@@ -331,7 +331,7 @@
phase: public, draft, secret, force, rev
recover:
rename: after, force, include, exclude, dry-run
- resolve: all, list, mark, unmark, no-status, tool, include, exclude, template
+ resolve: all, list, mark, unmark, no-status, re-merge, tool, include, exclude, template
revert: all, date, rev, no-backup, interactive, include, exclude, dry-run
rollback: dry-run, force
root:
diff --git a/mercurial/commands.py b/mercurial/commands.py
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -4506,7 +4506,8 @@
('l', 'list', None, _('list state of files needing merge')),
('m', 'mark', None, _('mark files as resolved')),
('u', 'unmark', None, _('mark files as unresolved')),
- ('n', 'no-status', None, _('hide status prefix'))]
+ ('n', 'no-status', None, _('hide status prefix')),
+ ('', 're-merge', None, _('re-merge files'))]
+ mergetoolopts + walkopts + formatteropts,
_('[OPTION]... [FILE]...'),
inferrepo=True)
@@ -4523,9 +4524,9 @@
The resolve command can be used in the following ways:
- - :hg:`resolve [--tool TOOL] FILE...`: attempt to re-merge the specified
- files, discarding any previous merge attempts. Re-merging is not
- performed for files already marked as resolved. Use ``--all/-a``
+ - :hg:`resolve [--re-merge] [--tool TOOL] FILE...`: attempt to re-merge
+ the specified files, discarding any previous merge attempts. Re-merging
+ is not performed for files already marked as resolved. Use ``--all/-a``
to select all unresolved files. ``--tool`` can be used to specify
the merge tool used for the given files. It overrides the HGMERGE
environment variable and your configuration files. Previous file
@@ -4554,11 +4555,11 @@
opts = pycompat.byteskwargs(opts)
confirm = ui.configbool('commands', 'resolve.confirm')
- flaglist = 'all mark unmark list no_status'.split()
- all, mark, unmark, show, nostatus = \
+ flaglist = 'all mark unmark list no_status re_merge'.split()
+ all, mark, unmark, show, nostatus, remerge = \
[opts.get(o) for o in flaglist]
- if len(list(filter(None, [show, mark, unmark]))) > 1:
+ if len(list(filter(None, [show, mark, unmark, remerge]))) > 1:
raise error.Abort(_("too many options specified"))
if pats and all:
raise error.Abort(_("can't specify --all and patterns"))
@@ -4752,8 +4753,11 @@
for f in ms:
if not m(f):
continue
- flags = ''.join(['-%s ' % o[0:1] for o in flaglist
- if opts.get(o)])
+ def flag(o):
+ if o == 're_merge':
+ return '--re-merge '
+ return '-%s ' % o[0:1]
+ flags = ''.join([flag(o) for o in flaglist if opts.get(o)])
hint = _("(try: hg resolve %s%s)\n") % (
flags,
' '.join(pats))
To: valentin.gatienbaron, #hg-reviewers, pulkit
Cc: pulkit, mercurial-devel
More information about the Mercurial-devel
mailing list