comparison mercurial/commands.py @ 50838:b4425b5bd80e

merge: migrate `opts` to native kwargs
author Matt Harbison <matt_harbison@yahoo.com>
date Sun, 20 Aug 2023 01:32:22 -0400
parents 2c78ebaf4c2a
children 55a9ea786291
comparison
equal deleted inserted replaced
50837:2c78ebaf4c2a 50838:b4425b5bd80e
4912 all changes. 4912 all changes.
4913 4913
4914 Returns 0 on success, 1 if there are unresolved files. 4914 Returns 0 on success, 1 if there are unresolved files.
4915 """ 4915 """
4916 4916
4917 opts = pycompat.byteskwargs(opts) 4917 abort = opts.get('abort')
4918 abort = opts.get(b'abort')
4919 if abort and repo.dirstate.p2() == repo.nullid: 4918 if abort and repo.dirstate.p2() == repo.nullid:
4920 cmdutil.wrongtooltocontinue(repo, _(b'merge')) 4919 cmdutil.wrongtooltocontinue(repo, _(b'merge'))
4921 cmdutil.check_incompatible_arguments(opts, b'abort', [b'rev', b'preview']) 4920 cmdutil.check_incompatible_arguments(opts, 'abort', ['rev', 'preview'])
4922 if abort: 4921 if abort:
4923 state = cmdutil.getunfinishedstate(repo) 4922 state = cmdutil.getunfinishedstate(repo)
4924 if state and state._opname != b'merge': 4923 if state and state._opname != b'merge':
4925 raise error.StateError( 4924 raise error.StateError(
4926 _(b'cannot abort merge with %s in progress') % (state._opname), 4925 _(b'cannot abort merge with %s in progress') % (state._opname),
4928 ) 4927 )
4929 if node: 4928 if node:
4930 raise error.InputError(_(b"cannot specify a node with --abort")) 4929 raise error.InputError(_(b"cannot specify a node with --abort"))
4931 return hg.abortmerge(repo.ui, repo) 4930 return hg.abortmerge(repo.ui, repo)
4932 4931
4933 if opts.get(b'rev') and node: 4932 if opts.get('rev') and node:
4934 raise error.InputError(_(b"please specify just one revision")) 4933 raise error.InputError(_(b"please specify just one revision"))
4935 if not node: 4934 if not node:
4936 node = opts.get(b'rev') 4935 node = opts.get('rev')
4937 4936
4938 if node: 4937 if node:
4939 ctx = logcmdutil.revsingle(repo, node) 4938 ctx = logcmdutil.revsingle(repo, node)
4940 else: 4939 else:
4941 if ui.configbool(b'commands', b'merge.require-rev'): 4940 if ui.configbool(b'commands', b'merge.require-rev'):
4950 if ctx.node() is None: 4949 if ctx.node() is None:
4951 raise error.InputError( 4950 raise error.InputError(
4952 _(b'merging with the working copy has no effect') 4951 _(b'merging with the working copy has no effect')
4953 ) 4952 )
4954 4953
4955 if opts.get(b'preview'): 4954 if opts.get('preview'):
4956 # find nodes that are ancestors of p2 but not of p1 4955 # find nodes that are ancestors of p2 but not of p1
4957 p1 = repo[b'.'].node() 4956 p1 = repo[b'.'].node()
4958 p2 = ctx.node() 4957 p2 = ctx.node()
4959 nodes = repo.changelog.findmissing(common=[p1], heads=[p2]) 4958 nodes = repo.changelog.findmissing(common=[p1], heads=[p2])
4960 4959
4961 displayer = logcmdutil.changesetdisplayer(ui, repo, opts) 4960 displayer = logcmdutil.changesetdisplayer(
4961 ui, repo, pycompat.byteskwargs(opts)
4962 )
4962 for node in nodes: 4963 for node in nodes:
4963 displayer.show(repo[node]) 4964 displayer.show(repo[node])
4964 displayer.close() 4965 displayer.close()
4965 return 0 4966 return 0
4966 4967
4967 # ui.forcemerge is an internal variable, do not document 4968 # ui.forcemerge is an internal variable, do not document
4968 overrides = {(b'ui', b'forcemerge'): opts.get(b'tool', b'')} 4969 overrides = {(b'ui', b'forcemerge'): opts.get('tool', b'')}
4969 with ui.configoverride(overrides, b'merge'): 4970 with ui.configoverride(overrides, b'merge'):
4970 force = opts.get(b'force') 4971 force = opts.get('force')
4971 labels = [b'working copy', b'merge rev', b'common ancestor'] 4972 labels = [b'working copy', b'merge rev', b'common ancestor']
4972 return hg.merge(ctx, force=force, labels=labels) 4973 return hg.merge(ctx, force=force, labels=labels)
4973 4974
4974 4975
4975 statemod.addunfinished( 4976 statemod.addunfinished(