##// END OF EJS Templates
debugmergestate: make templated...
Martin von Zweigbergk -
r44880:acbfa31c default
parent child Browse files
Show More
@@ -28,7 +28,6 b' from .i18n import _'
28 from .node import (
28 from .node import (
29 bin,
29 bin,
30 hex,
30 hex,
31 nullhex,
32 nullid,
31 nullid,
33 nullrev,
32 nullrev,
34 short,
33 short,
@@ -1944,120 +1943,100 b' def debugmanifestfulltextcache(ui, repo,'
1944 )
1943 )
1945
1944
1946
1945
1947 @command(b'debugmergestate', [], b'')
1946 @command(b'debugmergestate', [] + cmdutil.templateopts, b'')
1948 def debugmergestate(ui, repo, *args):
1947 def debugmergestate(ui, repo, *args, **opts):
1949 """print merge state
1948 """print merge state
1950
1949
1951 Use --verbose to print out information about whether v1 or v2 merge state
1950 Use --verbose to print out information about whether v1 or v2 merge state
1952 was chosen."""
1951 was chosen."""
1953
1952
1954 def _hashornull(h):
1953 if ui.verbose:
1955 if h == nullhex:
1954 ms = mergemod.mergestate(repo)
1956 return b'null'
1955
1957 else:
1956 # sort so that reasonable information is on top
1958 return h
1957 v1records = ms._readrecordsv1()
1959
1958 v2records = ms._readrecordsv2()
1960 def printrecords(version):
1959
1961 ui.writenoi18n(b'* version %d records\n' % version)
1960 if not v1records and not v2records:
1962 if version == 1:
1961 pass
1963 records = v1records
1962 elif not v2records:
1963 ui.writenoi18n(b'no version 2 merge state\n')
1964 elif ms._v1v2match(v1records, v2records):
1965 ui.writenoi18n(b'v1 and v2 states match: using v2\n')
1964 else:
1966 else:
1965 records = v2records
1967 ui.writenoi18n(b'v1 and v2 states mismatch: using v1\n')
1966
1968
1967 for rtype, record in records:
1969 opts = pycompat.byteskwargs(opts)
1968 # pretty print some record types
1970 if not opts[b'template']:
1969 if rtype == b'L':
1971 opts[b'template'] = (
1970 ui.writenoi18n(b'local: %s\n' % record)
1972 b'{if(commits, "", "no merge state found\n")}'
1971 elif rtype == b'O':
1973 b'{commits % "{name}{if(label, " ({label})")}: {node}\n"}'
1972 ui.writenoi18n(b'other: %s\n' % record)
1974 b'{files % "file: {path} (state \\"{state}\\")\n'
1973 elif rtype == b'm':
1975 b'{if(local_path, "'
1974 driver, mdstate = record.split(b'\0', 1)
1976 b' local path: {local_path} (hash {local_key}, flags \\"{local_flags}\\")\n'
1975 ui.writenoi18n(
1977 b' ancestor path: {ancestor_path} (node {ancestor_node})\n'
1976 b'merge driver: %s (state "%s")\n' % (driver, mdstate)
1978 b' other path: {other_path} (node {other_node})\n'
1977 )
1979 b'")}'
1978 elif rtype in b'FDC':
1980 b'{if(rename_side, "'
1979 r = record.split(b'\0')
1981 b' rename side: {rename_side}\n'
1980 f, state, hash, lfile, afile, anode, ofile = r[0:7]
1982 b' renamed path: {renamed_path}\n'
1981 if version == 1:
1983 b'")}'
1982 onode = b'not stored in v1 format'
1984 b'{extras % " extra: {key} = {value}\n"}'
1983 flags = r[7]
1985 b'"}'
1984 else:
1986 )
1985 onode, flags = r[7:9]
1987
1986 ui.writenoi18n(
1988 ms = mergemod.mergestate.read(repo)
1987 b'file: %s (record type "%s", state "%s", hash %s)\n'
1989
1988 % (f, rtype, state, _hashornull(hash))
1990 fm = ui.formatter(b'debugmergestate', opts)
1989 )
1991 fm.startitem()
1990 ui.writenoi18n(
1992
1991 b' local path: %s (flags "%s")\n' % (lfile, flags)
1993 fm_commits = fm.nested(b'commits')
1992 )
1994 if ms.active():
1993 ui.writenoi18n(
1995 for name, node, label_index in (
1994 b' ancestor path: %s (node %s)\n'
1996 (b'local', ms.local, 0),
1995 % (afile, _hashornull(anode))
1997 (b'other', ms.other, 1),
1996 )
1998 ):
1997 ui.writenoi18n(
1999 fm_commits.startitem()
1998 b' other path: %s (node %s)\n'
2000 fm_commits.data(name=name)
1999 % (ofile, _hashornull(onode))
2001 fm_commits.data(node=hex(node))
2000 )
2002 if ms._labels and len(ms._labels) > label_index:
2001 elif rtype == b'f':
2003 fm_commits.data(label=ms._labels[label_index])
2002 filename, rawextras = record.split(b'\0', 1)
2004 fm_commits.end()
2003 extras = rawextras.split(b'\0')
2005
2004 i = 0
2006 fm_files = fm.nested(b'files')
2005 extrastrings = []
2007 if ms.active():
2006 while i < len(extras):
2008 for f in ms:
2007 extrastrings.append(b'%s = %s' % (extras[i], extras[i + 1]))
2009 fm_files.startitem()
2008 i += 2
2010 fm_files.data(path=f)
2009
2011 state = ms._state[f]
2010 ui.writenoi18n(
2012 fm_files.data(state=state[0])
2011 b'file extras: %s (%s)\n'
2013 if state[0] in (
2012 % (filename, b', '.join(extrastrings))
2014 mergemod.MERGE_RECORD_UNRESOLVED,
2013 )
2015 mergemod.MERGE_RECORD_RESOLVED,
2014 elif rtype == b'l':
2016 ):
2015 labels = record.split(b'\0', 2)
2017 fm_files.data(local_key=state[1])
2016 labels = [l for l in labels if len(l) > 0]
2018 fm_files.data(local_path=state[2])
2017 ui.writenoi18n(b'labels:\n')
2019 fm_files.data(ancestor_path=state[3])
2018 ui.write((b' local: %s\n' % labels[0]))
2020 fm_files.data(ancestor_node=state[4])
2019 ui.write((b' other: %s\n' % labels[1]))
2021 fm_files.data(other_path=state[5])
2020 if len(labels) > 2:
2022 fm_files.data(other_node=state[6])
2021 ui.write((b' base: %s\n' % labels[2]))
2023 fm_files.data(local_flags=state[7])
2022 else:
2024 elif state[0] in (
2023 ui.writenoi18n(
2025 mergemod.MERGE_RECORD_UNRESOLVED_PATH,
2024 b'unrecognized entry: %s\t%s\n'
2026 mergemod.MERGE_RECORD_RESOLVED_PATH,
2025 % (rtype, record.replace(b'\0', b'\t'))
2027 ):
2026 )
2028 fm_files.data(renamed_path=state[1])
2027
2029 fm_files.data(rename_side=state[2])
2028 # Avoid mergestate.read() since it may raise an exception for unsupported
2030 fm_extras = fm_files.nested(b'extras')
2029 # merge state records. We shouldn't be doing this, but this is OK since this
2031 for k, v in ms.extras(f).items():
2030 # command is pretty low-level.
2032 fm_extras.startitem()
2031 ms = mergemod.mergestate(repo)
2033 fm_extras.data(key=k)
2032
2034 fm_extras.data(value=v)
2033 # sort so that reasonable information is on top
2035 fm_extras.end()
2034 v1records = ms._readrecordsv1()
2036
2035 v2records = ms._readrecordsv2()
2037 fm_files.end()
2036 order = b'LOml'
2038
2037
2039 fm.end()
2038 def key(r):
2039 idx = order.find(r[0])
2040 if idx == -1:
2041 return (1, r[1])
2042 else:
2043 return (0, idx)
2044
2045 v1records.sort(key=key)
2046 v2records.sort(key=key)
2047
2048 if not v1records and not v2records:
2049 ui.writenoi18n(b'no merge state found\n')
2050 elif not v2records:
2051 ui.notenoi18n(b'no version 2 merge state\n')
2052 printrecords(1)
2053 elif ms._v1v2match(v1records, v2records):
2054 ui.notenoi18n(b'v1 and v2 states match: using v2\n')
2055 printrecords(2)
2056 else:
2057 ui.notenoi18n(b'v1 and v2 states mismatch: using v1\n')
2058 printrecords(1)
2059 if ui.verbose:
2060 printrecords(2)
2061
2040
2062
2041
2063 @command(b'debugnamecomplete', [], _(b'NAME...'))
2042 @command(b'debugnamecomplete', [], _(b'NAME...'))
@@ -23,6 +23,10 b''
23 Will use `zstd` compression for new repositories is available, and will
23 Will use `zstd` compression for new repositories is available, and will
24 simply fall back to `zlib` if not.
24 simply fall back to `zlib` if not.
25
25
26 * `hg debugmergestate` output is now templated, which may be useful
27 e.g. for IDEs that want to help the user resolve merge conflicts.
28
29
26 == New Experimental Features ==
30 == New Experimental Features ==
27
31
28 * `hg copy` now supports a `--at-rev` argument to mark files as
32 * `hg copy` now supports a `--at-rev` argument to mark files as
@@ -49,6 +53,10 b''
49 * `hg recover` does not verify the validity of the whole repository
53 * `hg recover` does not verify the validity of the whole repository
50 anymore. You can pass `--verify` or call `hg verify` if necessary.
54 anymore. You can pass `--verify` or call `hg verify` if necessary.
51
55
56 * `hg debugmergestate` output format changed. Let us know if that is
57 causing you problems and we'll roll it back.
58
59
52 == Internal API Changes ==
60 == Internal API Changes ==
53
61
54 * The deprecated `ui.progress()` has now been deleted. Please use
62 * The deprecated `ui.progress()` has now been deleted. Please use
@@ -709,23 +709,24 b' Test usage of `hg resolve` in case of co'
709 use 'hg resolve' to retry unresolved file merges
709 use 'hg resolve' to retry unresolved file merges
710 [1]
710 [1]
711 $ hg status
711 $ hg status
712 $ hg debugmergestate
712 $ hg debugmergestate -v
713 * version 2 records
713 v1 and v2 states match: using v2
714 local: b71750c4b0fdf719734971e3ef90dbeab5919a2d
714 local: b71750c4b0fdf719734971e3ef90dbeab5919a2d
715 other: a30dd8addae3ce71b8667868478542bc417439e6
715 other: a30dd8addae3ce71b8667868478542bc417439e6
716 file extras: foo (ancestorlinknode = 91360952243723bd5b1138d5f26bd8c8564cb553)
716 file: foo (state "u")
717 file: foo (record type "F", state "u", hash 0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33)
717 local path: foo (hash 0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33, flags "")
718 local path: foo (flags "")
719 ancestor path: foo (node f89532f44c247a0e993d63e3a734dd781ab04708)
718 ancestor path: foo (node f89532f44c247a0e993d63e3a734dd781ab04708)
720 other path: foo (node f50039b486d6fa1a90ae51778388cad161f425ee)
719 other path: foo (node f50039b486d6fa1a90ae51778388cad161f425ee)
720 extra: ancestorlinknode = 91360952243723bd5b1138d5f26bd8c8564cb553
721 $ mv .hg/merge/state2 .hg/merge/state2-moved
721 $ mv .hg/merge/state2 .hg/merge/state2-moved
722 $ hg debugmergestate
722 $ hg debugmergestate -v
723 * version 1 records
723 no version 2 merge state
724 local: b71750c4b0fdf719734971e3ef90dbeab5919a2d
724 local: b71750c4b0fdf719734971e3ef90dbeab5919a2d
725 file: foo (record type "F", state "u", hash 0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33)
725 other: b71750c4b0fdf719734971e3ef90dbeab5919a2d
726 local path: foo (flags "")
726 file: foo (state "u")
727 local path: foo (hash 0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33, flags "")
727 ancestor path: foo (node f89532f44c247a0e993d63e3a734dd781ab04708)
728 ancestor path: foo (node f89532f44c247a0e993d63e3a734dd781ab04708)
728 other path: foo (node not stored in v1 format)
729 other path: (node foo)
729 $ mv .hg/merge/state2-moved .hg/merge/state2
730 $ mv .hg/merge/state2-moved .hg/merge/state2
730 $ hg resolve -l # still unresolved
731 $ hg resolve -l # still unresolved
731 U foo
732 U foo
@@ -289,7 +289,7 b' Show all commands + options'
289 debuglabelcomplete:
289 debuglabelcomplete:
290 debuglocks: force-lock, force-wlock, set-lock, set-wlock
290 debuglocks: force-lock, force-wlock, set-lock, set-wlock
291 debugmanifestfulltextcache: clear, add
291 debugmanifestfulltextcache: clear, add
292 debugmergestate:
292 debugmergestate: style, template
293 debugnamecomplete:
293 debugnamecomplete:
294 debugnodemap: dump-new, dump-disk, check, metadata
294 debugnodemap: dump-new, dump-disk, check, metadata
295 debugobsolete: flags, record-parents, rev, exclusive, index, delete, date, user, template
295 debugobsolete: flags, record-parents, rev, exclusive, index, delete, date, user, template
@@ -77,36 +77,22 b' edit the history'
77 insert unsupported advisory merge record
77 insert unsupported advisory merge record
78 $ hg --config extensions.fakemergerecord=$TESTDIR/fakemergerecord.py fakemergerecord -x
78 $ hg --config extensions.fakemergerecord=$TESTDIR/fakemergerecord.py fakemergerecord -x
79 $ hg debugmergestate
79 $ hg debugmergestate
80 * version 2 records
80 local (local): 8f7551c7e4a2f2efe0bc8c741baf7f227d65d758
81 local: 8f7551c7e4a2f2efe0bc8c741baf7f227d65d758
81 other (histedit): e860deea161a2f77de56603b340ebbb4536308ae
82 other: e860deea161a2f77de56603b340ebbb4536308ae
82 file: e (state "u")
83 labels:
83 local path: e (hash 58e6b3a414a1e090dfc6029add0f3555ccba127f, flags "")
84 local: local
84 ancestor path: e (node 0000000000000000000000000000000000000000)
85 other: histedit
86 unrecognized entry: x advisory record
87 file extras: e (ancestorlinknode = 0000000000000000000000000000000000000000)
88 file: e (record type "F", state "u", hash 58e6b3a414a1e090dfc6029add0f3555ccba127f)
89 local path: e (flags "")
90 ancestor path: e (node null)
91 other path: e (node 6b67ccefd5ce6de77e7ead4f5292843a0255329f)
85 other path: e (node 6b67ccefd5ce6de77e7ead4f5292843a0255329f)
86 extra: ancestorlinknode = 0000000000000000000000000000000000000000
92 $ hg resolve -l
87 $ hg resolve -l
93 U e
88 U e
94
89
95 insert unsupported mandatory merge record
90 insert unsupported mandatory merge record
96 $ hg --config extensions.fakemergerecord=$TESTDIR/fakemergerecord.py fakemergerecord -X
91 $ hg --config extensions.fakemergerecord=$TESTDIR/fakemergerecord.py fakemergerecord -X
97 $ hg debugmergestate
92 $ hg debugmergestate
98 * version 2 records
93 abort: unsupported merge state records: X
99 local: 8f7551c7e4a2f2efe0bc8c741baf7f227d65d758
94 (see https://mercurial-scm.org/wiki/MergeStateRecords for more information)
100 other: e860deea161a2f77de56603b340ebbb4536308ae
95 [255]
101 labels:
102 local: local
103 other: histedit
104 file extras: e (ancestorlinknode = 0000000000000000000000000000000000000000)
105 file: e (record type "F", state "u", hash 58e6b3a414a1e090dfc6029add0f3555ccba127f)
106 local path: e (flags "")
107 ancestor path: e (node null)
108 other path: e (node 6b67ccefd5ce6de77e7ead4f5292843a0255329f)
109 unrecognized entry: X mandatory record
110 $ hg resolve -l
96 $ hg resolve -l
111 abort: unsupported merge state records: X
97 abort: unsupported merge state records: X
112 (see https://mercurial-scm.org/wiki/MergeStateRecords for more information)
98 (see https://mercurial-scm.org/wiki/MergeStateRecords for more information)
@@ -76,27 +76,23 b' Non-interactive merge:'
76 U file2
76 U file2
77 U file3
77 U file3
78 --- debugmergestate ---
78 --- debugmergestate ---
79 * version 2 records
79 local (working copy): 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4
80 local: 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4
80 other (merge rev): 10f9a0a634e82080907e62f075ab119cbc565ea6
81 other: 10f9a0a634e82080907e62f075ab119cbc565ea6
81 file: file1 (state "u")
82 labels:
82 local path: file1 (hash 60b27f004e454aca81b0480209cce5081ec52390, flags "")
83 local: working copy
84 other: merge rev
85 file extras: file1 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
86 file: file1 (record type "C", state "u", hash 60b27f004e454aca81b0480209cce5081ec52390)
87 local path: file1 (flags "")
88 ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be)
83 ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be)
89 other path: file1 (node null)
84 other path: file1 (node 0000000000000000000000000000000000000000)
90 file extras: file2 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
85 extra: ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff
91 file: file2 (record type "C", state "u", hash null)
86 file: file2 (state "u")
92 local path: file2 (flags "")
87 local path: file2 (hash 0000000000000000000000000000000000000000, flags "")
93 ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e)
88 ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e)
94 other path: file2 (node e7c1328648519852e723de86c0c0525acd779257)
89 other path: file2 (node e7c1328648519852e723de86c0c0525acd779257)
95 file extras: file3 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
90 extra: ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff
96 file: file3 (record type "F", state "u", hash d5b0a58bc47161b1b8a831084b366f757c4f0b11)
91 file: file3 (state "u")
97 local path: file3 (flags "")
92 local path: file3 (hash d5b0a58bc47161b1b8a831084b366f757c4f0b11, flags "")
98 ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4)
93 ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4)
99 other path: file3 (node a2644c43e210356772c7772a8674544a62e06beb)
94 other path: file3 (node a2644c43e210356772c7772a8674544a62e06beb)
95 extra: ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff
100 --- file1 ---
96 --- file1 ---
101 1
97 1
102 changed
98 changed
@@ -145,27 +141,23 b' Interactive merge:'
145 R file2
141 R file2
146 U file3
142 U file3
147 --- debugmergestate ---
143 --- debugmergestate ---
148 * version 2 records
144 local (working copy): 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4
149 local: 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4
145 other (merge rev): 10f9a0a634e82080907e62f075ab119cbc565ea6
150 other: 10f9a0a634e82080907e62f075ab119cbc565ea6
146 file: file1 (state "r")
151 labels:
147 local path: file1 (hash 60b27f004e454aca81b0480209cce5081ec52390, flags "")
152 local: working copy
153 other: merge rev
154 file extras: file1 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
155 file: file1 (record type "C", state "r", hash 60b27f004e454aca81b0480209cce5081ec52390)
156 local path: file1 (flags "")
157 ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be)
148 ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be)
158 other path: file1 (node null)
149 other path: file1 (node 0000000000000000000000000000000000000000)
159 file extras: file2 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
150 extra: ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff
160 file: file2 (record type "C", state "r", hash null)
151 file: file2 (state "r")
161 local path: file2 (flags "")
152 local path: file2 (hash 0000000000000000000000000000000000000000, flags "")
162 ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e)
153 ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e)
163 other path: file2 (node e7c1328648519852e723de86c0c0525acd779257)
154 other path: file2 (node e7c1328648519852e723de86c0c0525acd779257)
164 file extras: file3 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
155 extra: ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff
165 file: file3 (record type "F", state "u", hash d5b0a58bc47161b1b8a831084b366f757c4f0b11)
156 file: file3 (state "u")
166 local path: file3 (flags "")
157 local path: file3 (hash d5b0a58bc47161b1b8a831084b366f757c4f0b11, flags "")
167 ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4)
158 ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4)
168 other path: file3 (node a2644c43e210356772c7772a8674544a62e06beb)
159 other path: file3 (node a2644c43e210356772c7772a8674544a62e06beb)
160 extra: ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff
169 --- file1 ---
161 --- file1 ---
170 1
162 1
171 changed
163 changed
@@ -227,27 +219,23 b' Interactive merge with bad input:'
227 R file2
219 R file2
228 U file3
220 U file3
229 --- debugmergestate ---
221 --- debugmergestate ---
230 * version 2 records
222 local (working copy): 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4
231 local: 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4
223 other (merge rev): 10f9a0a634e82080907e62f075ab119cbc565ea6
232 other: 10f9a0a634e82080907e62f075ab119cbc565ea6
224 file: file1 (state "r")
233 labels:
225 local path: file1 (hash 60b27f004e454aca81b0480209cce5081ec52390, flags "")
234 local: working copy
235 other: merge rev
236 file extras: file1 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
237 file: file1 (record type "C", state "r", hash 60b27f004e454aca81b0480209cce5081ec52390)
238 local path: file1 (flags "")
239 ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be)
226 ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be)
240 other path: file1 (node null)
227 other path: file1 (node 0000000000000000000000000000000000000000)
241 file extras: file2 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
228 extra: ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff
242 file: file2 (record type "C", state "r", hash null)
229 file: file2 (state "r")
243 local path: file2 (flags "")
230 local path: file2 (hash 0000000000000000000000000000000000000000, flags "")
244 ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e)
231 ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e)
245 other path: file2 (node e7c1328648519852e723de86c0c0525acd779257)
232 other path: file2 (node e7c1328648519852e723de86c0c0525acd779257)
246 file extras: file3 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
233 extra: ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff
247 file: file3 (record type "F", state "u", hash d5b0a58bc47161b1b8a831084b366f757c4f0b11)
234 file: file3 (state "u")
248 local path: file3 (flags "")
235 local path: file3 (hash d5b0a58bc47161b1b8a831084b366f757c4f0b11, flags "")
249 ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4)
236 ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4)
250 other path: file3 (node a2644c43e210356772c7772a8674544a62e06beb)
237 other path: file3 (node a2644c43e210356772c7772a8674544a62e06beb)
238 extra: ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff
251 *** file1 does not exist
239 *** file1 does not exist
252 --- file2 ---
240 --- file2 ---
253 2
241 2
@@ -293,27 +281,23 b' Interactive merge with not enough input:'
293 U file2
281 U file2
294 U file3
282 U file3
295 --- debugmergestate ---
283 --- debugmergestate ---
296 * version 2 records
284 local (working copy): 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4
297 local: 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4
285 other (merge rev): 10f9a0a634e82080907e62f075ab119cbc565ea6
298 other: 10f9a0a634e82080907e62f075ab119cbc565ea6
286 file: file1 (state "r")
299 labels:
287 local path: file1 (hash 60b27f004e454aca81b0480209cce5081ec52390, flags "")
300 local: working copy
301 other: merge rev
302 file extras: file1 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
303 file: file1 (record type "C", state "r", hash 60b27f004e454aca81b0480209cce5081ec52390)
304 local path: file1 (flags "")
305 ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be)
288 ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be)
306 other path: file1 (node null)
289 other path: file1 (node 0000000000000000000000000000000000000000)
307 file extras: file2 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
290 extra: ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff
308 file: file2 (record type "C", state "u", hash null)
291 file: file2 (state "u")
309 local path: file2 (flags "")
292 local path: file2 (hash 0000000000000000000000000000000000000000, flags "")
310 ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e)
293 ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e)
311 other path: file2 (node e7c1328648519852e723de86c0c0525acd779257)
294 other path: file2 (node e7c1328648519852e723de86c0c0525acd779257)
312 file extras: file3 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
295 extra: ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff
313 file: file3 (record type "F", state "u", hash d5b0a58bc47161b1b8a831084b366f757c4f0b11)
296 file: file3 (state "u")
314 local path: file3 (flags "")
297 local path: file3 (hash d5b0a58bc47161b1b8a831084b366f757c4f0b11, flags "")
315 ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4)
298 ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4)
316 other path: file3 (node a2644c43e210356772c7772a8674544a62e06beb)
299 other path: file3 (node a2644c43e210356772c7772a8674544a62e06beb)
300 extra: ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff
317 *** file1 does not exist
301 *** file1 does not exist
318 --- file2 ---
302 --- file2 ---
319 2
303 2
@@ -346,27 +330,23 b' Choose local versions of files'
346 R file2
330 R file2
347 R file3
331 R file3
348 --- debugmergestate ---
332 --- debugmergestate ---
349 * version 2 records
333 local (working copy): 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4
350 local: 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4
334 other (merge rev): 10f9a0a634e82080907e62f075ab119cbc565ea6
351 other: 10f9a0a634e82080907e62f075ab119cbc565ea6
335 file: file1 (state "r")
352 labels:
336 local path: file1 (hash 60b27f004e454aca81b0480209cce5081ec52390, flags "")
353 local: working copy
354 other: merge rev
355 file extras: file1 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
356 file: file1 (record type "C", state "r", hash 60b27f004e454aca81b0480209cce5081ec52390)
357 local path: file1 (flags "")
358 ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be)
337 ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be)
359 other path: file1 (node null)
338 other path: file1 (node 0000000000000000000000000000000000000000)
360 file extras: file2 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
339 extra: ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff
361 file: file2 (record type "C", state "r", hash null)
340 file: file2 (state "r")
362 local path: file2 (flags "")
341 local path: file2 (hash 0000000000000000000000000000000000000000, flags "")
363 ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e)
342 ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e)
364 other path: file2 (node e7c1328648519852e723de86c0c0525acd779257)
343 other path: file2 (node e7c1328648519852e723de86c0c0525acd779257)
365 file extras: file3 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
344 extra: ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff
366 file: file3 (record type "F", state "r", hash d5b0a58bc47161b1b8a831084b366f757c4f0b11)
345 file: file3 (state "r")
367 local path: file3 (flags "")
346 local path: file3 (hash d5b0a58bc47161b1b8a831084b366f757c4f0b11, flags "")
368 ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4)
347 ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4)
369 other path: file3 (node a2644c43e210356772c7772a8674544a62e06beb)
348 other path: file3 (node a2644c43e210356772c7772a8674544a62e06beb)
349 extra: ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff
370 --- file1 ---
350 --- file1 ---
371 1
351 1
372 changed
352 changed
@@ -395,27 +375,23 b' Choose other versions of files'
395 R file2
375 R file2
396 R file3
376 R file3
397 --- debugmergestate ---
377 --- debugmergestate ---
398 * version 2 records
378 local (working copy): 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4
399 local: 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4
379 other (merge rev): 10f9a0a634e82080907e62f075ab119cbc565ea6
400 other: 10f9a0a634e82080907e62f075ab119cbc565ea6
380 file: file1 (state "r")
401 labels:
381 local path: file1 (hash 60b27f004e454aca81b0480209cce5081ec52390, flags "")
402 local: working copy
403 other: merge rev
404 file extras: file1 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
405 file: file1 (record type "C", state "r", hash 60b27f004e454aca81b0480209cce5081ec52390)
406 local path: file1 (flags "")
407 ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be)
382 ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be)
408 other path: file1 (node null)
383 other path: file1 (node 0000000000000000000000000000000000000000)
409 file extras: file2 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
384 extra: ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff
410 file: file2 (record type "C", state "r", hash null)
385 file: file2 (state "r")
411 local path: file2 (flags "")
386 local path: file2 (hash 0000000000000000000000000000000000000000, flags "")
412 ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e)
387 ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e)
413 other path: file2 (node e7c1328648519852e723de86c0c0525acd779257)
388 other path: file2 (node e7c1328648519852e723de86c0c0525acd779257)
414 file extras: file3 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
389 extra: ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff
415 file: file3 (record type "F", state "r", hash d5b0a58bc47161b1b8a831084b366f757c4f0b11)
390 file: file3 (state "r")
416 local path: file3 (flags "")
391 local path: file3 (hash d5b0a58bc47161b1b8a831084b366f757c4f0b11, flags "")
417 ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4)
392 ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4)
418 other path: file3 (node a2644c43e210356772c7772a8674544a62e06beb)
393 other path: file3 (node a2644c43e210356772c7772a8674544a62e06beb)
394 extra: ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff
419 *** file1 does not exist
395 *** file1 does not exist
420 --- file2 ---
396 --- file2 ---
421 2
397 2
@@ -445,27 +421,23 b' Fail'
445 U file2
421 U file2
446 U file3
422 U file3
447 --- debugmergestate ---
423 --- debugmergestate ---
448 * version 2 records
424 local (working copy): 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4
449 local: 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4
425 other (merge rev): 10f9a0a634e82080907e62f075ab119cbc565ea6
450 other: 10f9a0a634e82080907e62f075ab119cbc565ea6
426 file: file1 (state "u")
451 labels:
427 local path: file1 (hash 60b27f004e454aca81b0480209cce5081ec52390, flags "")
452 local: working copy
453 other: merge rev
454 file extras: file1 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
455 file: file1 (record type "C", state "u", hash 60b27f004e454aca81b0480209cce5081ec52390)
456 local path: file1 (flags "")
457 ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be)
428 ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be)
458 other path: file1 (node null)
429 other path: file1 (node 0000000000000000000000000000000000000000)
459 file extras: file2 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
430 extra: ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff
460 file: file2 (record type "C", state "u", hash null)
431 file: file2 (state "u")
461 local path: file2 (flags "")
432 local path: file2 (hash 0000000000000000000000000000000000000000, flags "")
462 ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e)
433 ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e)
463 other path: file2 (node e7c1328648519852e723de86c0c0525acd779257)
434 other path: file2 (node e7c1328648519852e723de86c0c0525acd779257)
464 file extras: file3 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
435 extra: ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff
465 file: file3 (record type "F", state "u", hash d5b0a58bc47161b1b8a831084b366f757c4f0b11)
436 file: file3 (state "u")
466 local path: file3 (flags "")
437 local path: file3 (hash d5b0a58bc47161b1b8a831084b366f757c4f0b11, flags "")
467 ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4)
438 ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4)
468 other path: file3 (node a2644c43e210356772c7772a8674544a62e06beb)
439 other path: file3 (node a2644c43e210356772c7772a8674544a62e06beb)
440 extra: ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff
469 --- file1 ---
441 --- file1 ---
470 1
442 1
471 changed
443 changed
@@ -506,27 +478,23 b' Force prompts with no input (should be s'
506 U file2
478 U file2
507 U file3
479 U file3
508 --- debugmergestate ---
480 --- debugmergestate ---
509 * version 2 records
481 local (working copy): 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4
510 local: 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4
482 other (merge rev): 10f9a0a634e82080907e62f075ab119cbc565ea6
511 other: 10f9a0a634e82080907e62f075ab119cbc565ea6
483 file: file1 (state "u")
512 labels:
484 local path: file1 (hash 60b27f004e454aca81b0480209cce5081ec52390, flags "")
513 local: working copy
514 other: merge rev
515 file extras: file1 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
516 file: file1 (record type "C", state "u", hash 60b27f004e454aca81b0480209cce5081ec52390)
517 local path: file1 (flags "")
518 ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be)
485 ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be)
519 other path: file1 (node null)
486 other path: file1 (node 0000000000000000000000000000000000000000)
520 file extras: file2 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
487 extra: ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff
521 file: file2 (record type "C", state "u", hash null)
488 file: file2 (state "u")
522 local path: file2 (flags "")
489 local path: file2 (hash 0000000000000000000000000000000000000000, flags "")
523 ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e)
490 ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e)
524 other path: file2 (node e7c1328648519852e723de86c0c0525acd779257)
491 other path: file2 (node e7c1328648519852e723de86c0c0525acd779257)
525 file extras: file3 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
492 extra: ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff
526 file: file3 (record type "F", state "u", hash d5b0a58bc47161b1b8a831084b366f757c4f0b11)
493 file: file3 (state "u")
527 local path: file3 (flags "")
494 local path: file3 (hash d5b0a58bc47161b1b8a831084b366f757c4f0b11, flags "")
528 ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4)
495 ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4)
529 other path: file3 (node a2644c43e210356772c7772a8674544a62e06beb)
496 other path: file3 (node a2644c43e210356772c7772a8674544a62e06beb)
497 extra: ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff
530 --- file1 ---
498 --- file1 ---
531 1
499 1
532 changed
500 changed
@@ -569,27 +537,23 b' Force prompts'
569 U file2
537 U file2
570 U file3
538 U file3
571 --- debugmergestate ---
539 --- debugmergestate ---
572 * version 2 records
540 local (working copy): 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4
573 local: 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4
541 other (merge rev): 10f9a0a634e82080907e62f075ab119cbc565ea6
574 other: 10f9a0a634e82080907e62f075ab119cbc565ea6
542 file: file1 (state "u")
575 labels:
543 local path: file1 (hash 60b27f004e454aca81b0480209cce5081ec52390, flags "")
576 local: working copy
577 other: merge rev
578 file extras: file1 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
579 file: file1 (record type "C", state "u", hash 60b27f004e454aca81b0480209cce5081ec52390)
580 local path: file1 (flags "")
581 ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be)
544 ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be)
582 other path: file1 (node null)
545 other path: file1 (node 0000000000000000000000000000000000000000)
583 file extras: file2 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
546 extra: ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff
584 file: file2 (record type "C", state "u", hash null)
547 file: file2 (state "u")
585 local path: file2 (flags "")
548 local path: file2 (hash 0000000000000000000000000000000000000000, flags "")
586 ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e)
549 ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e)
587 other path: file2 (node e7c1328648519852e723de86c0c0525acd779257)
550 other path: file2 (node e7c1328648519852e723de86c0c0525acd779257)
588 file extras: file3 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
551 extra: ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff
589 file: file3 (record type "F", state "u", hash d5b0a58bc47161b1b8a831084b366f757c4f0b11)
552 file: file3 (state "u")
590 local path: file3 (flags "")
553 local path: file3 (hash d5b0a58bc47161b1b8a831084b366f757c4f0b11, flags "")
591 ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4)
554 ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4)
592 other path: file3 (node a2644c43e210356772c7772a8674544a62e06beb)
555 other path: file3 (node a2644c43e210356772c7772a8674544a62e06beb)
556 extra: ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff
593 --- file1 ---
557 --- file1 ---
594 1
558 1
595 changed
559 changed
@@ -629,27 +593,23 b' Choose to merge all files'
629 U file2
593 U file2
630 U file3
594 U file3
631 --- debugmergestate ---
595 --- debugmergestate ---
632 * version 2 records
596 local (working copy): 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4
633 local: 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4
597 other (merge rev): 10f9a0a634e82080907e62f075ab119cbc565ea6
634 other: 10f9a0a634e82080907e62f075ab119cbc565ea6
598 file: file1 (state "u")
635 labels:
599 local path: file1 (hash 60b27f004e454aca81b0480209cce5081ec52390, flags "")
636 local: working copy
637 other: merge rev
638 file extras: file1 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
639 file: file1 (record type "C", state "u", hash 60b27f004e454aca81b0480209cce5081ec52390)
640 local path: file1 (flags "")
641 ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be)
600 ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be)
642 other path: file1 (node null)
601 other path: file1 (node 0000000000000000000000000000000000000000)
643 file extras: file2 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
602 extra: ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff
644 file: file2 (record type "C", state "u", hash null)
603 file: file2 (state "u")
645 local path: file2 (flags "")
604 local path: file2 (hash 0000000000000000000000000000000000000000, flags "")
646 ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e)
605 ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e)
647 other path: file2 (node e7c1328648519852e723de86c0c0525acd779257)
606 other path: file2 (node e7c1328648519852e723de86c0c0525acd779257)
648 file extras: file3 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
607 extra: ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff
649 file: file3 (record type "F", state "u", hash d5b0a58bc47161b1b8a831084b366f757c4f0b11)
608 file: file3 (state "u")
650 local path: file3 (flags "")
609 local path: file3 (hash d5b0a58bc47161b1b8a831084b366f757c4f0b11, flags "")
651 ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4)
610 ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4)
652 other path: file3 (node a2644c43e210356772c7772a8674544a62e06beb)
611 other path: file3 (node a2644c43e210356772c7772a8674544a62e06beb)
612 extra: ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff
653 --- file1 ---
613 --- file1 ---
654 1
614 1
655 changed
615 changed
@@ -802,22 +762,18 b' Non-interactive linear update'
802 U file1
762 U file1
803 U file2
763 U file2
804 --- debugmergestate ---
764 --- debugmergestate ---
805 * version 2 records
765 local (working copy): ab57bf49aa276a22d35a473592d4c34b5abc3eff
806 local: ab57bf49aa276a22d35a473592d4c34b5abc3eff
766 other (destination): 10f9a0a634e82080907e62f075ab119cbc565ea6
807 other: 10f9a0a634e82080907e62f075ab119cbc565ea6
767 file: file1 (state "u")
808 labels:
768 local path: file1 (hash 60b27f004e454aca81b0480209cce5081ec52390, flags "")
809 local: working copy
810 other: destination
811 file extras: file1 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
812 file: file1 (record type "C", state "u", hash 60b27f004e454aca81b0480209cce5081ec52390)
813 local path: file1 (flags "")
814 ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be)
769 ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be)
815 other path: file1 (node null)
770 other path: file1 (node 0000000000000000000000000000000000000000)
816 file extras: file2 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
771 extra: ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff
817 file: file2 (record type "C", state "u", hash null)
772 file: file2 (state "u")
818 local path: file2 (flags "")
773 local path: file2 (hash 0000000000000000000000000000000000000000, flags "")
819 ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e)
774 ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e)
820 other path: file2 (node e7c1328648519852e723de86c0c0525acd779257)
775 other path: file2 (node e7c1328648519852e723de86c0c0525acd779257)
776 extra: ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff
821 --- file1 ---
777 --- file1 ---
822 1
778 1
823 changed
779 changed
@@ -845,22 +801,18 b' Choose local versions of files'
845 R file1
801 R file1
846 R file2
802 R file2
847 --- debugmergestate ---
803 --- debugmergestate ---
848 * version 2 records
804 local (working copy): ab57bf49aa276a22d35a473592d4c34b5abc3eff
849 local: ab57bf49aa276a22d35a473592d4c34b5abc3eff
805 other (destination): 10f9a0a634e82080907e62f075ab119cbc565ea6
850 other: 10f9a0a634e82080907e62f075ab119cbc565ea6
806 file: file1 (state "r")
851 labels:
807 local path: file1 (hash 60b27f004e454aca81b0480209cce5081ec52390, flags "")
852 local: working copy
853 other: destination
854 file extras: file1 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
855 file: file1 (record type "C", state "r", hash 60b27f004e454aca81b0480209cce5081ec52390)
856 local path: file1 (flags "")
857 ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be)
808 ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be)
858 other path: file1 (node null)
809 other path: file1 (node 0000000000000000000000000000000000000000)
859 file extras: file2 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
810 extra: ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff
860 file: file2 (record type "C", state "r", hash null)
811 file: file2 (state "r")
861 local path: file2 (flags "")
812 local path: file2 (hash 0000000000000000000000000000000000000000, flags "")
862 ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e)
813 ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e)
863 other path: file2 (node e7c1328648519852e723de86c0c0525acd779257)
814 other path: file2 (node e7c1328648519852e723de86c0c0525acd779257)
815 extra: ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff
864 --- file1 ---
816 --- file1 ---
865 1
817 1
866 changed
818 changed
@@ -886,22 +838,18 b' Choose other versions of files'
886 R file1
838 R file1
887 R file2
839 R file2
888 --- debugmergestate ---
840 --- debugmergestate ---
889 * version 2 records
841 local (working copy): ab57bf49aa276a22d35a473592d4c34b5abc3eff
890 local: ab57bf49aa276a22d35a473592d4c34b5abc3eff
842 other (destination): 10f9a0a634e82080907e62f075ab119cbc565ea6
891 other: 10f9a0a634e82080907e62f075ab119cbc565ea6
843 file: file1 (state "r")
892 labels:
844 local path: file1 (hash 60b27f004e454aca81b0480209cce5081ec52390, flags "")
893 local: working copy
894 other: destination
895 file extras: file1 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
896 file: file1 (record type "C", state "r", hash 60b27f004e454aca81b0480209cce5081ec52390)
897 local path: file1 (flags "")
898 ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be)
845 ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be)
899 other path: file1 (node null)
846 other path: file1 (node 0000000000000000000000000000000000000000)
900 file extras: file2 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
847 extra: ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff
901 file: file2 (record type "C", state "r", hash null)
848 file: file2 (state "r")
902 local path: file2 (flags "")
849 local path: file2 (hash 0000000000000000000000000000000000000000, flags "")
903 ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e)
850 ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e)
904 other path: file2 (node e7c1328648519852e723de86c0c0525acd779257)
851 other path: file2 (node e7c1328648519852e723de86c0c0525acd779257)
852 extra: ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff
905 *** file1 does not exist
853 *** file1 does not exist
906 --- file2 ---
854 --- file2 ---
907 2
855 2
@@ -929,22 +877,18 b' Fail'
929 U file1
877 U file1
930 U file2
878 U file2
931 --- debugmergestate ---
879 --- debugmergestate ---
932 * version 2 records
880 local (working copy): ab57bf49aa276a22d35a473592d4c34b5abc3eff
933 local: ab57bf49aa276a22d35a473592d4c34b5abc3eff
881 other (destination): 10f9a0a634e82080907e62f075ab119cbc565ea6
934 other: 10f9a0a634e82080907e62f075ab119cbc565ea6
882 file: file1 (state "u")
935 labels:
883 local path: file1 (hash 60b27f004e454aca81b0480209cce5081ec52390, flags "")
936 local: working copy
937 other: destination
938 file extras: file1 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
939 file: file1 (record type "C", state "u", hash 60b27f004e454aca81b0480209cce5081ec52390)
940 local path: file1 (flags "")
941 ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be)
884 ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be)
942 other path: file1 (node null)
885 other path: file1 (node 0000000000000000000000000000000000000000)
943 file extras: file2 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
886 extra: ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff
944 file: file2 (record type "C", state "u", hash null)
887 file: file2 (state "u")
945 local path: file2 (flags "")
888 local path: file2 (hash 0000000000000000000000000000000000000000, flags "")
946 ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e)
889 ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e)
947 other path: file2 (node e7c1328648519852e723de86c0c0525acd779257)
890 other path: file2 (node e7c1328648519852e723de86c0c0525acd779257)
891 extra: ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff
948 --- file1 ---
892 --- file1 ---
949 1
893 1
950 changed
894 changed
@@ -980,22 +924,18 b' Force prompts with no input'
980 U file1
924 U file1
981 U file2
925 U file2
982 --- debugmergestate ---
926 --- debugmergestate ---
983 * version 2 records
927 local (working copy): ab57bf49aa276a22d35a473592d4c34b5abc3eff
984 local: ab57bf49aa276a22d35a473592d4c34b5abc3eff
928 other (destination): 10f9a0a634e82080907e62f075ab119cbc565ea6
985 other: 10f9a0a634e82080907e62f075ab119cbc565ea6
929 file: file1 (state "u")
986 labels:
930 local path: file1 (hash 60b27f004e454aca81b0480209cce5081ec52390, flags "")
987 local: working copy
988 other: destination
989 file extras: file1 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
990 file: file1 (record type "C", state "u", hash 60b27f004e454aca81b0480209cce5081ec52390)
991 local path: file1 (flags "")
992 ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be)
931 ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be)
993 other path: file1 (node null)
932 other path: file1 (node 0000000000000000000000000000000000000000)
994 file extras: file2 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
933 extra: ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff
995 file: file2 (record type "C", state "u", hash null)
934 file: file2 (state "u")
996 local path: file2 (flags "")
935 local path: file2 (hash 0000000000000000000000000000000000000000, flags "")
997 ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e)
936 ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e)
998 other path: file2 (node e7c1328648519852e723de86c0c0525acd779257)
937 other path: file2 (node e7c1328648519852e723de86c0c0525acd779257)
938 extra: ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff
999 --- file1 ---
939 --- file1 ---
1000 1
940 1
1001 changed
941 changed
@@ -1032,22 +972,18 b' Choose to merge all files'
1032 U file1
972 U file1
1033 U file2
973 U file2
1034 --- debugmergestate ---
974 --- debugmergestate ---
1035 * version 2 records
975 local (working copy): ab57bf49aa276a22d35a473592d4c34b5abc3eff
1036 local: ab57bf49aa276a22d35a473592d4c34b5abc3eff
976 other (destination): 10f9a0a634e82080907e62f075ab119cbc565ea6
1037 other: 10f9a0a634e82080907e62f075ab119cbc565ea6
977 file: file1 (state "u")
1038 labels:
978 local path: file1 (hash 60b27f004e454aca81b0480209cce5081ec52390, flags "")
1039 local: working copy
1040 other: destination
1041 file extras: file1 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
1042 file: file1 (record type "C", state "u", hash 60b27f004e454aca81b0480209cce5081ec52390)
1043 local path: file1 (flags "")
1044 ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be)
979 ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be)
1045 other path: file1 (node null)
980 other path: file1 (node 0000000000000000000000000000000000000000)
1046 file extras: file2 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
981 extra: ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff
1047 file: file2 (record type "C", state "u", hash null)
982 file: file2 (state "u")
1048 local path: file2 (flags "")
983 local path: file2 (hash 0000000000000000000000000000000000000000, flags "")
1049 ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e)
984 ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e)
1050 other path: file2 (node e7c1328648519852e723de86c0c0525acd779257)
985 other path: file2 (node e7c1328648519852e723de86c0c0525acd779257)
986 extra: ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff
1051 --- file1 ---
987 --- file1 ---
1052 1
988 1
1053 changed
989 changed
@@ -76,13 +76,11 b' Merge - local file conflicts with remote'
76 A a/b~0ed027b96f31
76 A a/b~0ed027b96f31
77 R a/b
77 R a/b
78 $ hg debugmergestate
78 $ hg debugmergestate
79 * version 2 records
79 local (working copy): 0ed027b96f31a2560c8abe689ba59876409a2b8e
80 local: 0ed027b96f31a2560c8abe689ba59876409a2b8e
80 other (merge rev): 9049d9534d5c5d16264aab02b4b9e20d03faabef
81 other: 9049d9534d5c5d16264aab02b4b9e20d03faabef
81 file: a/b (state "pu")
82 labels:
82 rename side: l
83 local: working copy
83 renamed path: a/b~0ed027b96f31
84 other: merge rev
85 unrecognized entry: P a/b pu a/b~0ed027b96f31 l
86 $ hg resolve --all
84 $ hg resolve --all
87 a/b: path conflict must be resolved manually
85 a/b: path conflict must be resolved manually
88 $ hg forget a/b~0ed027b96f31 && rm a/b~0ed027b96f31
86 $ hg forget a/b~0ed027b96f31 && rm a/b~0ed027b96f31
@@ -115,13 +113,11 b' Merge - local symlink conflicts with rem'
115 $ hg resolve --mark a/b
113 $ hg resolve --mark a/b
116 (no more unresolved files)
114 (no more unresolved files)
117 $ hg debugmergestate
115 $ hg debugmergestate
118 * version 2 records
116 local (working copy): 2ea68033e3be03a560471c1fc9e5704fbedb9b4b
119 local: 2ea68033e3be03a560471c1fc9e5704fbedb9b4b
117 other (merge rev): 9049d9534d5c5d16264aab02b4b9e20d03faabef
120 other: 9049d9534d5c5d16264aab02b4b9e20d03faabef
118 file: a/b (state "pr")
121 labels:
119 rename side: l
122 local: working copy
120 renamed path: a/b~2ea68033e3be
123 other: merge rev
124 unrecognized entry: P a/b pr a/b~2ea68033e3be l
125 $ hg resolve --list
121 $ hg resolve --list
126 R a/b
122 R a/b
127 $ hg commit -m "merge link and dir (renamed link)"
123 $ hg commit -m "merge link and dir (renamed link)"
@@ -88,18 +88,13 b' Insert unsupported advisory merge record'
88
88
89 $ hg --config extensions.fakemergerecord=$TESTDIR/fakemergerecord.py fakemergerecord -x
89 $ hg --config extensions.fakemergerecord=$TESTDIR/fakemergerecord.py fakemergerecord -x
90 $ hg debugmergestate
90 $ hg debugmergestate
91 * version 2 records
91 local (dest): 3e046f2ecedb793b97ed32108086edd1a162f8bc
92 local: 3e046f2ecedb793b97ed32108086edd1a162f8bc
92 other (source): 46f0b057b5c061d276b91491c22151f78698abd2
93 other: 46f0b057b5c061d276b91491c22151f78698abd2
93 file: common (state "u")
94 labels:
94 local path: common (hash 94c8c21d08740f5da9eaa38d1f175c592692f0d1, flags "")
95 local: dest
96 other: source
97 unrecognized entry: x advisory record
98 file extras: common (ancestorlinknode = 3163e20567cc93074fbb7a53c8b93312e59dbf2c)
99 file: common (record type "F", state "u", hash 94c8c21d08740f5da9eaa38d1f175c592692f0d1)
100 local path: common (flags "")
101 ancestor path: common (node de0a666fdd9c1a0b0698b90d85064d8bd34f74b6)
95 ancestor path: common (node de0a666fdd9c1a0b0698b90d85064d8bd34f74b6)
102 other path: common (node 2f6411de53677f6f1048fef5bf888d67a342e0a5)
96 other path: common (node 2f6411de53677f6f1048fef5bf888d67a342e0a5)
97 extra: ancestorlinknode = 3163e20567cc93074fbb7a53c8b93312e59dbf2c
103 $ hg resolve -l
98 $ hg resolve -l
104 U common
99 U common
105
100
@@ -107,18 +102,9 b' Insert unsupported mandatory merge recor'
107
102
108 $ hg --config extensions.fakemergerecord=$TESTDIR/fakemergerecord.py fakemergerecord -X
103 $ hg --config extensions.fakemergerecord=$TESTDIR/fakemergerecord.py fakemergerecord -X
109 $ hg debugmergestate
104 $ hg debugmergestate
110 * version 2 records
105 abort: unsupported merge state records: X
111 local: 3e046f2ecedb793b97ed32108086edd1a162f8bc
106 (see https://mercurial-scm.org/wiki/MergeStateRecords for more information)
112 other: 46f0b057b5c061d276b91491c22151f78698abd2
107 [255]
113 labels:
114 local: dest
115 other: source
116 file extras: common (ancestorlinknode = 3163e20567cc93074fbb7a53c8b93312e59dbf2c)
117 file: common (record type "F", state "u", hash 94c8c21d08740f5da9eaa38d1f175c592692f0d1)
118 local path: common (flags "")
119 ancestor path: common (node de0a666fdd9c1a0b0698b90d85064d8bd34f74b6)
120 other path: common (node 2f6411de53677f6f1048fef5bf888d67a342e0a5)
121 unrecognized entry: X mandatory record
122 $ hg resolve -l
108 $ hg resolve -l
123 abort: unsupported merge state records: X
109 abort: unsupported merge state records: X
124 (see https://mercurial-scm.org/wiki/MergeStateRecords for more information)
110 (see https://mercurial-scm.org/wiki/MergeStateRecords for more information)
@@ -306,48 +306,40 b' insert unsupported advisory merge record'
306
306
307 $ hg --config extensions.fakemergerecord=$TESTDIR/fakemergerecord.py fakemergerecord -x
307 $ hg --config extensions.fakemergerecord=$TESTDIR/fakemergerecord.py fakemergerecord -x
308 $ hg debugmergestate
308 $ hg debugmergestate
309 * version 2 records
309 local (working copy): 57653b9f834a4493f7240b0681efcb9ae7cab745
310 local: 57653b9f834a4493f7240b0681efcb9ae7cab745
310 other (merge rev): dc77451844e37f03f5c559e3b8529b2b48d381d1
311 other: dc77451844e37f03f5c559e3b8529b2b48d381d1
311 file: file1 (state "r")
312 labels:
312 local path: file1 (hash 60b27f004e454aca81b0480209cce5081ec52390, flags "")
313 local: working copy
314 other: merge rev
315 unrecognized entry: x advisory record
316 file extras: file1 (ancestorlinknode = 99726c03216e233810a2564cbc0adfe395007eac)
317 file: file1 (record type "F", state "r", hash 60b27f004e454aca81b0480209cce5081ec52390)
318 local path: file1 (flags "")
319 ancestor path: file1 (node 2ed2a3912a0b24502043eae84ee4b279c18b90dd)
313 ancestor path: file1 (node 2ed2a3912a0b24502043eae84ee4b279c18b90dd)
320 other path: file1 (node 6f4310b00b9a147241b071a60c28a650827fb03d)
314 other path: file1 (node 6f4310b00b9a147241b071a60c28a650827fb03d)
321 file extras: file2 (ancestorlinknode = 99726c03216e233810a2564cbc0adfe395007eac)
315 extra: ancestorlinknode = 99726c03216e233810a2564cbc0adfe395007eac
322 file: file2 (record type "F", state "u", hash cb99b709a1978bd205ab9dfd4c5aaa1fc91c7523)
316 file: file2 (state "u")
323 local path: file2 (flags "")
317 local path: file2 (hash cb99b709a1978bd205ab9dfd4c5aaa1fc91c7523, flags "")
324 ancestor path: file2 (node 2ed2a3912a0b24502043eae84ee4b279c18b90dd)
318 ancestor path: file2 (node 2ed2a3912a0b24502043eae84ee4b279c18b90dd)
325 other path: file2 (node 6f4310b00b9a147241b071a60c28a650827fb03d)
319 other path: file2 (node 6f4310b00b9a147241b071a60c28a650827fb03d)
320 extra: ancestorlinknode = 99726c03216e233810a2564cbc0adfe395007eac
326 $ hg resolve -l
321 $ hg resolve -l
327 R file1
322 R file1
328 U file2
323 U file2
329
324
325 test json output
326
327 $ hg debugmergestate -T json
328 [
329 {
330 "commits": [{"label": "working copy", "name": "local", "node": "57653b9f834a4493f7240b0681efcb9ae7cab745"}, {"label": "merge rev", "name": "other", "node": "dc77451844e37f03f5c559e3b8529b2b48d381d1"}],
331 "files": [{"ancestor_node": "2ed2a3912a0b24502043eae84ee4b279c18b90dd", "ancestor_path": "file1", "extras": [{"key": "ancestorlinknode", "value": "99726c03216e233810a2564cbc0adfe395007eac"}], "local_flags": "", "local_key": "60b27f004e454aca81b0480209cce5081ec52390", "local_path": "file1", "other_node": "6f4310b00b9a147241b071a60c28a650827fb03d", "other_path": "file1", "path": "file1", "state": "r"}, {"ancestor_node": "2ed2a3912a0b24502043eae84ee4b279c18b90dd", "ancestor_path": "file2", "extras": [{"key": "ancestorlinknode", "value": "99726c03216e233810a2564cbc0adfe395007eac"}], "local_flags": "", "local_key": "cb99b709a1978bd205ab9dfd4c5aaa1fc91c7523", "local_path": "file2", "other_node": "6f4310b00b9a147241b071a60c28a650827fb03d", "other_path": "file2", "path": "file2", "state": "u"}]
332 }
333 ]
334
335
330 insert unsupported mandatory merge record
336 insert unsupported mandatory merge record
331
337
332 $ hg --config extensions.fakemergerecord=$TESTDIR/fakemergerecord.py fakemergerecord -X
338 $ hg --config extensions.fakemergerecord=$TESTDIR/fakemergerecord.py fakemergerecord -X
333 $ hg debugmergestate
339 $ hg debugmergestate
334 * version 2 records
340 abort: unsupported merge state records: X
335 local: 57653b9f834a4493f7240b0681efcb9ae7cab745
341 (see https://mercurial-scm.org/wiki/MergeStateRecords for more information)
336 other: dc77451844e37f03f5c559e3b8529b2b48d381d1
342 [255]
337 labels:
338 local: working copy
339 other: merge rev
340 file extras: file1 (ancestorlinknode = 99726c03216e233810a2564cbc0adfe395007eac)
341 file: file1 (record type "F", state "r", hash 60b27f004e454aca81b0480209cce5081ec52390)
342 local path: file1 (flags "")
343 ancestor path: file1 (node 2ed2a3912a0b24502043eae84ee4b279c18b90dd)
344 other path: file1 (node 6f4310b00b9a147241b071a60c28a650827fb03d)
345 file extras: file2 (ancestorlinknode = 99726c03216e233810a2564cbc0adfe395007eac)
346 file: file2 (record type "F", state "u", hash cb99b709a1978bd205ab9dfd4c5aaa1fc91c7523)
347 local path: file2 (flags "")
348 ancestor path: file2 (node 2ed2a3912a0b24502043eae84ee4b279c18b90dd)
349 other path: file2 (node 6f4310b00b9a147241b071a60c28a650827fb03d)
350 unrecognized entry: X mandatory record
351 $ hg resolve -l
343 $ hg resolve -l
352 abort: unsupported merge state records: X
344 abort: unsupported merge state records: X
353 (see https://mercurial-scm.org/wiki/MergeStateRecords for more information)
345 (see https://mercurial-scm.org/wiki/MergeStateRecords for more information)
General Comments 0
You need to be logged in to leave comments. Login now