Help: resolve

hg resolve [OPTION]... [FILE]...

redo merges or set/view the merge status of files

Merges with unresolved conflicts are often the result of non-interactive merging using the "internal:merge" configuration setting, or a command-line merge tool like "diff3". The resolve command is used to manage the files involved in a merge, after 'hg merge' has been run, and before 'hg commit' is run (i.e. the working directory must have two parents). See 'hg help merge-tools' for information on configuring merge tools.

The resolve command can be used in the following ways:

  • '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 contents are saved with a ".orig" suffix.
  • 'hg resolve -m [FILE]': mark a file as having been resolved (e.g. after having manually fixed-up the files). The default is to mark all unresolved files.
  • 'hg resolve -u [FILE]...': mark a file as unresolved. The default is to mark all resolved files.
  • 'hg resolve -l': list files which had or still have conflicts. In the printed list, "U" = unresolved and "R" = resolved. You can use "set:unresolved()" or "set:resolved()" to filter the list. See 'hg help filesets' for details.


Mercurial will not let you commit files with unresolved merge conflicts. You must use 'hg resolve -m ...' before you can commit after a conflicting merge.


The following keywords are supported in addition to the common template keywords and functions. See also 'hg help templates'.

String. Character denoting merge conflicts, "U" or "R".
String. Repository-absolute path of the file.

Returns 0 on success, 1 if any files fail a resolve attempt.

options ([+] can be repeated):

-a --all select all unresolved files
-l --list list state of files needing merge
-m --mark mark files as resolved
-u --unmark mark files as unresolved
-n --no-status hide status prefix
--re-merge re-merge files
-t --tool TOOL specify merge tool
-T --template TEMPLATE display with template

global options ([+] can be repeated):

--cwd DIR change working directory
-q --quiet suppress output
-v --verbose enable additional output
--debug enable debugging output
--debugger start debugger
--traceback always print a traceback on exception
--time time how long the command takes
--profile print command execution profile
--version output version information and exit
-h --help display help and exit
--hidden consider hidden changesets