comparison mercurial/commands.py @ 44454:2f290136b7d6

merge: make hg.merge() take a context instead of a node Many callers already have a repo, so we might as well pass that. `merge.update()` will look up the context object later. This patch is part of making it so we pass around the context object all the way down instead. I also removed the `repo` argument since it can be retrieved from the context. Differential Revision: https://phab.mercurial-scm.org/D7999
author Martin von Zweigbergk <martinvonz@google.com>
date Fri, 24 Jan 2020 15:28:37 -0800
parents 1e508097f570
children 5a5aee8ba980
comparison
equal deleted inserted replaced
44453:f82d2d4e71db 44454:2f290136b7d6
874 ui.status( 874 ui.status(
875 _(b'merging with changeset %s\n') % nice(repo.changelog.tip()) 875 _(b'merging with changeset %s\n') % nice(repo.changelog.tip())
876 ) 876 )
877 overrides = {(b'ui', b'forcemerge'): opts.get(b'tool', b'')} 877 overrides = {(b'ui', b'forcemerge'): opts.get(b'tool', b'')}
878 with ui.configoverride(overrides, b'backout'): 878 with ui.configoverride(overrides, b'backout'):
879 return hg.merge(repo, hex(repo.changelog.tip())) 879 return hg.merge(repo[b'tip'])
880 return 0 880 return 0
881 881
882 882
883 @command( 883 @command(
884 b'bisect', 884 b'bisect',
4876 raise error.Abort(_(b"please specify just one revision")) 4876 raise error.Abort(_(b"please specify just one revision"))
4877 if not node: 4877 if not node:
4878 node = opts.get(b'rev') 4878 node = opts.get(b'rev')
4879 4879
4880 if node: 4880 if node:
4881 node = scmutil.revsingle(repo, node).node() 4881 ctx = scmutil.revsingle(repo, node)
4882 else: 4882 else:
4883 if ui.configbool(b'commands', b'merge.require-rev'): 4883 if ui.configbool(b'commands', b'merge.require-rev'):
4884 raise error.Abort( 4884 raise error.Abort(
4885 _( 4885 _(
4886 b'configuration requires specifying revision to merge ' 4886 b'configuration requires specifying revision to merge '
4887 b'with' 4887 b'with'
4888 ) 4888 )
4889 ) 4889 )
4890 node = repo[destutil.destmerge(repo)].node() 4890 ctx = repo[destutil.destmerge(repo)]
4891 4891
4892 if node is None: 4892 if ctx.node() is None:
4893 raise error.Abort(_(b'merging with the working copy has no effect')) 4893 raise error.Abort(_(b'merging with the working copy has no effect'))
4894 4894
4895 if opts.get(b'preview'): 4895 if opts.get(b'preview'):
4896 # find nodes that are ancestors of p2 but not of p1 4896 # find nodes that are ancestors of p2 but not of p1
4897 p1 = repo[b'.'].node() 4897 p1 = repo[b'.'].node()
4898 p2 = node 4898 p2 = ctx.node()
4899 nodes = repo.changelog.findmissing(common=[p1], heads=[p2]) 4899 nodes = repo.changelog.findmissing(common=[p1], heads=[p2])
4900 4900
4901 displayer = logcmdutil.changesetdisplayer(ui, repo, opts) 4901 displayer = logcmdutil.changesetdisplayer(ui, repo, opts)
4902 for node in nodes: 4902 for node in nodes:
4903 displayer.show(repo[node]) 4903 displayer.show(repo[node])
4907 # ui.forcemerge is an internal variable, do not document 4907 # ui.forcemerge is an internal variable, do not document
4908 overrides = {(b'ui', b'forcemerge'): opts.get(b'tool', b'')} 4908 overrides = {(b'ui', b'forcemerge'): opts.get(b'tool', b'')}
4909 with ui.configoverride(overrides, b'merge'): 4909 with ui.configoverride(overrides, b'merge'):
4910 force = opts.get(b'force') 4910 force = opts.get(b'force')
4911 labels = [b'working copy', b'merge rev'] 4911 labels = [b'working copy', b'merge rev']
4912 return hg.merge(repo, node, force=force, labels=labels) 4912 return hg.merge(ctx, force=force, labels=labels)
4913 4913
4914 4914
4915 statemod.addunfinished( 4915 statemod.addunfinished(
4916 b'merge', 4916 b'merge',
4917 fname=None, 4917 fname=None,