[PATCH] update: introduce --tool for controlling the merge tool
Siddharth Agarwal
sid at less-broken.com
Mon May 19 16:59:20 UTC 2014
On 05/18/2014 04:53 PM, Mads Kiilerich wrote:
> # HG changeset patch
> # User Mads Kiilerich <madski at unity3d.com>
> # Date 1400457214 -7200
> # Mon May 19 01:53:34 2014 +0200
> # Node ID 1d24b3e5efdbb7f972f5dfe862b334cf4a64e5e4
> # Parent 883e268cb860c0ea2eb0faa94114e11c3a4a3893
> update: introduce --tool for controlling the merge tool
LGTM
>
> Update is a kind of merge and may also need a merge tool and should have the
> options described in the merge-tools help.
>
> diff --git a/mercurial/commands.py b/mercurial/commands.py
> --- a/mercurial/commands.py
> +++ b/mercurial/commands.py
> @@ -5807,9 +5807,11 @@ def unbundle(ui, repo, fname1, *fnames,
> ('c', 'check', None,
> _('update across branches if no uncommitted changes')),
> ('d', 'date', '', _('tipmost revision matching date'), _('DATE')),
> - ('r', 'rev', '', _('revision'), _('REV'))],
> + ('r', 'rev', '', _('revision'), _('REV'))
> + ] + mergetoolopts,
> _('[-c] [-C] [-d DATE] [[-r] REV]'))
> -def update(ui, repo, node=None, rev=None, clean=False, date=None, check=False):
> +def update(ui, repo, node=None, rev=None, clean=False, date=None, check=False,
> + tool=None):
> """update working directory (or switch revisions)
>
> Update the repository's working directory to the specified
> @@ -5890,6 +5892,8 @@ def update(ui, repo, node=None, rev=None
> rev = repo[repo[None].branch()].rev()
> mergemod._checkunknown(repo, repo[None], repo[rev])
>
> + repo.ui.setconfig('ui', 'forcemerge', tool, 'update')
> +
> if clean:
> ret = hg.clean(repo, rev)
> else:
> diff --git a/tests/test-completion.t b/tests/test-completion.t
> --- a/tests/test-completion.t
> +++ b/tests/test-completion.t
> @@ -212,7 +212,7 @@ Show all commands + options
> serve: accesslog, daemon, daemon-pipefds, errorlog, port, address, prefix, name, web-conf, webdir-conf, pid-file, stdio, cmdserver, templates, style, ipv6, certificate
> status: all, modified, added, removed, deleted, clean, unknown, ignored, no-status, copies, print0, rev, change, include, exclude, subrepos
> summary: remote
> - update: clean, check, date, rev
> + update: clean, check, date, rev, tool
> addremove: similarity, include, exclude, dry-run
> archive: no-decode, prefix, rev, type, subrepos, include, exclude
> backout: merge, parent, rev, tool, include, exclude, message, logfile, date, user
> diff --git a/tests/test-merge-tools.t b/tests/test-merge-tools.t
> --- a/tests/test-merge-tools.t
> +++ b/tests/test-merge-tools.t
> @@ -587,6 +587,54 @@ HGMERGE specifies internal:other but is
>
> $ unset HGMERGE # make sure HGMERGE doesn't interfere with remaining tests
>
> +update is a merge ...
> +
> + $ beforemerge
> + [merge-tools]
> + false.whatever=
> + true.priority=1
> + true.executable=cat
> + # hg update -C 1
> + $ hg debugsetparent 0
> + $ hg update -r 2
> + merging f
> + revision 1
> + space
> + revision 0
> + space
> + revision 2
> + space
> + 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
> + $ aftermerge
> + # cat f
> + revision 1
> + space
> + # hg stat
> + M f
> +
> +update should also have --tool
> +
> + $ beforemerge
> + [merge-tools]
> + false.whatever=
> + true.priority=1
> + true.executable=cat
> + # hg update -C 1
> + $ hg debugsetparent 0
> + $ hg update -r 2 --tool false
> + merging f
> + merging f failed!
> + 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
> + use 'hg resolve' to retry unresolved file merges
> + [1]
> + $ aftermerge
> + # cat f
> + revision 1
> + space
> + # hg stat
> + M f
> + ? f.orig
> +
> Default is silent simplemerge:
>
> $ beforemerge
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at selenic.com
> http://selenic.com/mailman/listinfo/mercurial-devel
More information about the Mercurial-devel
mailing list