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, |