merge: add file ancestor linknode to mergestate

During a merge, each file has a current commitnode+filenode, an other
commitnode+filenode, and an ancestor commitnode+filenode. The ancestor
commitnode is not stored though, and we rely on the ability for the filectx() to
look up the commitnode by using the filenode's linkrev. In alternative backends
(like remotefilelog), linkrevs may have restriction that prevent arbitrary
linkrev look up given a filenode.

This patch accounts for that by storing the ancestor commitnode in
the merge state so that it is available later at resolve time.

This results in some test changes because the ancestor commitnode we're using at
resolve time changes slightly. Before, we used the linkrev commit, which is the
earliest commit that introduced that particular filenode (which may not be the
latest common ancestor of the commits being merged). Now we use the latest
common ancestor of the merged commits as the commitnode. This is fine though,
because that commit contains the same filenode as the linkrev'd commit.
This commit is contained in:
Durham Goode 2016-02-05 10:22:14 -08:00
parent fb4ed60a57
commit 4834302703
9 changed files with 65 additions and 7 deletions

View File

@ -405,6 +405,7 @@ class mergestate(object):
fca.path(), hex(fca.filenode()), fca.path(), hex(fca.filenode()),
fco.path(), hex(fco.filenode()), fco.path(), hex(fco.filenode()),
fcl.flags()] fcl.flags()]
self._stateextras[fd] = { 'ancestorlinknode' : hex(fca.node()) }
self._dirty = True self._dirty = True
def __contains__(self, dfile): def __contains__(self, dfile):
@ -450,10 +451,16 @@ class mergestate(object):
stateentry = self._state[dfile] stateentry = self._state[dfile]
state, hash, lfile, afile, anode, ofile, onode, flags = stateentry state, hash, lfile, afile, anode, ofile, onode, flags = stateentry
octx = self._repo[self._other] octx = self._repo[self._other]
extras = self.extras(dfile)
anccommitnode = extras.get('ancestorlinknode')
if anccommitnode:
actx = self._repo[anccommitnode]
else:
actx = None
fcd = self._filectxorabsent(hash, wctx, dfile) fcd = self._filectxorabsent(hash, wctx, dfile)
fco = self._filectxorabsent(onode, octx, ofile) fco = self._filectxorabsent(onode, octx, ofile)
# TODO: move this to filectxorabsent # TODO: move this to filectxorabsent
fca = self._repo.filectx(afile, fileid=anode) fca = self._repo.filectx(afile, fileid=anode, changeid=actx)
# "premerge" x flags # "premerge" x flags
flo = fco.flags() flo = fco.flags()
fla = fca.flags() fla = fca.flags()

View File

@ -686,6 +686,7 @@ Test usage of `hg resolve` in case of conflict
* version 2 records * version 2 records
local: b71750c4b0fdf719734971e3ef90dbeab5919a2d local: b71750c4b0fdf719734971e3ef90dbeab5919a2d
other: a30dd8addae3ce71b8667868478542bc417439e6 other: a30dd8addae3ce71b8667868478542bc417439e6
file extras: foo (ancestorlinknode = 91360952243723bd5b1138d5f26bd8c8564cb553)
file: foo (record type "F", state "u", hash 0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33) file: foo (record type "F", state "u", hash 0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33)
local path: foo (flags "") local path: foo (flags "")
ancestor path: foo (node f89532f44c247a0e993d63e3a734dd781ab04708) ancestor path: foo (node f89532f44c247a0e993d63e3a734dd781ab04708)

View File

@ -189,10 +189,10 @@ Graft out of order, skipping a merge and a duplicate
e: versions differ -> m (premerge) e: versions differ -> m (premerge)
picked tool ':merge' for e (binary False symlink False changedelete False) picked tool ':merge' for e (binary False symlink False changedelete False)
merging e merging e
my e@1905859650ec+ other e@9c233e8e184d ancestor e@68795b066622 my e@1905859650ec+ other e@9c233e8e184d ancestor e@4c60f11aa304
e: versions differ -> m (merge) e: versions differ -> m (merge)
picked tool ':merge' for e (binary False symlink False changedelete False) picked tool ':merge' for e (binary False symlink False changedelete False)
my e@1905859650ec+ other e@9c233e8e184d ancestor e@68795b066622 my e@1905859650ec+ other e@9c233e8e184d ancestor e@4c60f11aa304
warning: conflicts while merging e! (edit, then use 'hg resolve --mark') warning: conflicts while merging e! (edit, then use 'hg resolve --mark')
abort: unresolved conflicts, can't continue abort: unresolved conflicts, can't continue
(use hg resolve and hg graft --continue --log) (use hg resolve and hg graft --continue --log)

View File

@ -81,6 +81,7 @@ insert unsupported advisory merge record
local: 8f7551c7e4a2f2efe0bc8c741baf7f227d65d758 local: 8f7551c7e4a2f2efe0bc8c741baf7f227d65d758
other: e860deea161a2f77de56603b340ebbb4536308ae other: e860deea161a2f77de56603b340ebbb4536308ae
unrecognized entry: x advisory record unrecognized entry: x advisory record
file extras: e (ancestorlinknode = 0000000000000000000000000000000000000000)
file: e (record type "F", state "u", hash 58e6b3a414a1e090dfc6029add0f3555ccba127f) file: e (record type "F", state "u", hash 58e6b3a414a1e090dfc6029add0f3555ccba127f)
local path: e (flags "") local path: e (flags "")
ancestor path: e (node null) ancestor path: e (node null)
@ -94,6 +95,7 @@ insert unsupported mandatory merge record
* version 2 records * version 2 records
local: 8f7551c7e4a2f2efe0bc8c741baf7f227d65d758 local: 8f7551c7e4a2f2efe0bc8c741baf7f227d65d758
other: e860deea161a2f77de56603b340ebbb4536308ae other: e860deea161a2f77de56603b340ebbb4536308ae
file extras: e (ancestorlinknode = 0000000000000000000000000000000000000000)
file: e (record type "F", state "u", hash 58e6b3a414a1e090dfc6029add0f3555ccba127f) file: e (record type "F", state "u", hash 58e6b3a414a1e090dfc6029add0f3555ccba127f)
local path: e (flags "") local path: e (flags "")
ancestor path: e (node null) ancestor path: e (node null)

View File

@ -68,7 +68,7 @@ https://bz.mercurial-scm.org/672
1a: local copied/moved from 1 -> m (premerge) 1a: local copied/moved from 1 -> m (premerge)
picked tool ':merge' for 1a (binary False symlink False changedelete False) picked tool ':merge' for 1a (binary False symlink False changedelete False)
merging 1a and 1 to 1a merging 1a and 1 to 1a
my 1a@e327dca35ac8+ other 1@746e9549ea96 ancestor 1@81f4b099af3d my 1a@e327dca35ac8+ other 1@746e9549ea96 ancestor 1@c64f439569a9
premerge successful premerge successful
0 files updated, 1 files merged, 0 files removed, 0 files unresolved 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit) (branch merge, don't forget to commit)
@ -91,7 +91,7 @@ https://bz.mercurial-scm.org/672
1a: remote moved from 1 -> m (premerge) 1a: remote moved from 1 -> m (premerge)
picked tool ':merge' for 1a (binary False symlink False changedelete False) picked tool ':merge' for 1a (binary False symlink False changedelete False)
merging 1 and 1a to 1a merging 1 and 1a to 1a
my 1a@746e9549ea96+ other 1a@e327dca35ac8 ancestor 1@81f4b099af3d my 1a@746e9549ea96+ other 1a@e327dca35ac8 ancestor 1@c64f439569a9
premerge successful premerge successful
0 files updated, 1 files merged, 0 files removed, 0 files unresolved 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit) (branch merge, don't forget to commit)

View File

@ -77,14 +77,17 @@ Non-interactive merge:
* version 2 records * version 2 records
local: 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4 local: 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4
other: 10f9a0a634e82080907e62f075ab119cbc565ea6 other: 10f9a0a634e82080907e62f075ab119cbc565ea6
file extras: file1 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
file: file1 (record type "C", state "u", hash 60b27f004e454aca81b0480209cce5081ec52390) file: file1 (record type "C", state "u", hash 60b27f004e454aca81b0480209cce5081ec52390)
local path: file1 (flags "") local path: file1 (flags "")
ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be) ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be)
other path: file1 (node null) other path: file1 (node null)
file extras: file2 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
file: file2 (record type "C", state "u", hash null) file: file2 (record type "C", state "u", hash null)
local path: file2 (flags "") local path: file2 (flags "")
ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e) ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e)
other path: file2 (node e7c1328648519852e723de86c0c0525acd779257) other path: file2 (node e7c1328648519852e723de86c0c0525acd779257)
file extras: file3 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
file: file3 (record type "F", state "u", hash d5b0a58bc47161b1b8a831084b366f757c4f0b11) file: file3 (record type "F", state "u", hash d5b0a58bc47161b1b8a831084b366f757c4f0b11)
local path: file3 (flags "") local path: file3 (flags "")
ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4) ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4)
@ -136,14 +139,17 @@ Interactive merge:
* version 2 records * version 2 records
local: 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4 local: 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4
other: 10f9a0a634e82080907e62f075ab119cbc565ea6 other: 10f9a0a634e82080907e62f075ab119cbc565ea6
file extras: file1 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
file: file1 (record type "C", state "r", hash 60b27f004e454aca81b0480209cce5081ec52390) file: file1 (record type "C", state "r", hash 60b27f004e454aca81b0480209cce5081ec52390)
local path: file1 (flags "") local path: file1 (flags "")
ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be) ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be)
other path: file1 (node null) other path: file1 (node null)
file extras: file2 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
file: file2 (record type "C", state "r", hash null) file: file2 (record type "C", state "r", hash null)
local path: file2 (flags "") local path: file2 (flags "")
ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e) ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e)
other path: file2 (node e7c1328648519852e723de86c0c0525acd779257) other path: file2 (node e7c1328648519852e723de86c0c0525acd779257)
file extras: file3 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
file: file3 (record type "F", state "u", hash d5b0a58bc47161b1b8a831084b366f757c4f0b11) file: file3 (record type "F", state "u", hash d5b0a58bc47161b1b8a831084b366f757c4f0b11)
local path: file3 (flags "") local path: file3 (flags "")
ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4) ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4)
@ -205,14 +211,17 @@ Interactive merge with bad input:
* version 2 records * version 2 records
local: 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4 local: 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4
other: 10f9a0a634e82080907e62f075ab119cbc565ea6 other: 10f9a0a634e82080907e62f075ab119cbc565ea6
file extras: file1 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
file: file1 (record type "C", state "r", hash 60b27f004e454aca81b0480209cce5081ec52390) file: file1 (record type "C", state "r", hash 60b27f004e454aca81b0480209cce5081ec52390)
local path: file1 (flags "") local path: file1 (flags "")
ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be) ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be)
other path: file1 (node null) other path: file1 (node null)
file extras: file2 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
file: file2 (record type "C", state "r", hash null) file: file2 (record type "C", state "r", hash null)
local path: file2 (flags "") local path: file2 (flags "")
ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e) ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e)
other path: file2 (node e7c1328648519852e723de86c0c0525acd779257) other path: file2 (node e7c1328648519852e723de86c0c0525acd779257)
file extras: file3 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
file: file3 (record type "F", state "u", hash d5b0a58bc47161b1b8a831084b366f757c4f0b11) file: file3 (record type "F", state "u", hash d5b0a58bc47161b1b8a831084b366f757c4f0b11)
local path: file3 (flags "") local path: file3 (flags "")
ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4) ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4)
@ -261,14 +270,17 @@ Interactive merge with not enough input:
* version 2 records * version 2 records
local: 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4 local: 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4
other: 10f9a0a634e82080907e62f075ab119cbc565ea6 other: 10f9a0a634e82080907e62f075ab119cbc565ea6
file extras: file1 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
file: file1 (record type "C", state "r", hash 60b27f004e454aca81b0480209cce5081ec52390) file: file1 (record type "C", state "r", hash 60b27f004e454aca81b0480209cce5081ec52390)
local path: file1 (flags "") local path: file1 (flags "")
ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be) ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be)
other path: file1 (node null) other path: file1 (node null)
file extras: file2 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
file: file2 (record type "C", state "u", hash null) file: file2 (record type "C", state "u", hash null)
local path: file2 (flags "") local path: file2 (flags "")
ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e) ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e)
other path: file2 (node e7c1328648519852e723de86c0c0525acd779257) other path: file2 (node e7c1328648519852e723de86c0c0525acd779257)
file extras: file3 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
file: file3 (record type "F", state "u", hash d5b0a58bc47161b1b8a831084b366f757c4f0b11) file: file3 (record type "F", state "u", hash d5b0a58bc47161b1b8a831084b366f757c4f0b11)
local path: file3 (flags "") local path: file3 (flags "")
ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4) ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4)
@ -306,14 +318,17 @@ Choose local versions of files
* version 2 records * version 2 records
local: 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4 local: 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4
other: 10f9a0a634e82080907e62f075ab119cbc565ea6 other: 10f9a0a634e82080907e62f075ab119cbc565ea6
file extras: file1 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
file: file1 (record type "C", state "r", hash 60b27f004e454aca81b0480209cce5081ec52390) file: file1 (record type "C", state "r", hash 60b27f004e454aca81b0480209cce5081ec52390)
local path: file1 (flags "") local path: file1 (flags "")
ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be) ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be)
other path: file1 (node null) other path: file1 (node null)
file extras: file2 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
file: file2 (record type "C", state "r", hash null) file: file2 (record type "C", state "r", hash null)
local path: file2 (flags "") local path: file2 (flags "")
ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e) ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e)
other path: file2 (node e7c1328648519852e723de86c0c0525acd779257) other path: file2 (node e7c1328648519852e723de86c0c0525acd779257)
file extras: file3 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
file: file3 (record type "F", state "r", hash d5b0a58bc47161b1b8a831084b366f757c4f0b11) file: file3 (record type "F", state "r", hash d5b0a58bc47161b1b8a831084b366f757c4f0b11)
local path: file3 (flags "") local path: file3 (flags "")
ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4) ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4)
@ -347,14 +362,17 @@ Choose other versions of files
* version 2 records * version 2 records
local: 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4 local: 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4
other: 10f9a0a634e82080907e62f075ab119cbc565ea6 other: 10f9a0a634e82080907e62f075ab119cbc565ea6
file extras: file1 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
file: file1 (record type "C", state "r", hash 60b27f004e454aca81b0480209cce5081ec52390) file: file1 (record type "C", state "r", hash 60b27f004e454aca81b0480209cce5081ec52390)
local path: file1 (flags "") local path: file1 (flags "")
ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be) ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be)
other path: file1 (node null) other path: file1 (node null)
file extras: file2 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
file: file2 (record type "C", state "r", hash null) file: file2 (record type "C", state "r", hash null)
local path: file2 (flags "") local path: file2 (flags "")
ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e) ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e)
other path: file2 (node e7c1328648519852e723de86c0c0525acd779257) other path: file2 (node e7c1328648519852e723de86c0c0525acd779257)
file extras: file3 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
file: file3 (record type "F", state "r", hash d5b0a58bc47161b1b8a831084b366f757c4f0b11) file: file3 (record type "F", state "r", hash d5b0a58bc47161b1b8a831084b366f757c4f0b11)
local path: file3 (flags "") local path: file3 (flags "")
ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4) ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4)
@ -389,14 +407,17 @@ Fail
* version 2 records * version 2 records
local: 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4 local: 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4
other: 10f9a0a634e82080907e62f075ab119cbc565ea6 other: 10f9a0a634e82080907e62f075ab119cbc565ea6
file extras: file1 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
file: file1 (record type "C", state "u", hash 60b27f004e454aca81b0480209cce5081ec52390) file: file1 (record type "C", state "u", hash 60b27f004e454aca81b0480209cce5081ec52390)
local path: file1 (flags "") local path: file1 (flags "")
ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be) ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be)
other path: file1 (node null) other path: file1 (node null)
file extras: file2 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
file: file2 (record type "C", state "u", hash null) file: file2 (record type "C", state "u", hash null)
local path: file2 (flags "") local path: file2 (flags "")
ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e) ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e)
other path: file2 (node e7c1328648519852e723de86c0c0525acd779257) other path: file2 (node e7c1328648519852e723de86c0c0525acd779257)
file extras: file3 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
file: file3 (record type "F", state "u", hash d5b0a58bc47161b1b8a831084b366f757c4f0b11) file: file3 (record type "F", state "u", hash d5b0a58bc47161b1b8a831084b366f757c4f0b11)
local path: file3 (flags "") local path: file3 (flags "")
ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4) ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4)
@ -439,14 +460,17 @@ Force prompts with no input (should be similar to :fail)
* version 2 records * version 2 records
local: 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4 local: 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4
other: 10f9a0a634e82080907e62f075ab119cbc565ea6 other: 10f9a0a634e82080907e62f075ab119cbc565ea6
file extras: file1 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
file: file1 (record type "C", state "u", hash 60b27f004e454aca81b0480209cce5081ec52390) file: file1 (record type "C", state "u", hash 60b27f004e454aca81b0480209cce5081ec52390)
local path: file1 (flags "") local path: file1 (flags "")
ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be) ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be)
other path: file1 (node null) other path: file1 (node null)
file extras: file2 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
file: file2 (record type "C", state "u", hash null) file: file2 (record type "C", state "u", hash null)
local path: file2 (flags "") local path: file2 (flags "")
ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e) ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e)
other path: file2 (node e7c1328648519852e723de86c0c0525acd779257) other path: file2 (node e7c1328648519852e723de86c0c0525acd779257)
file extras: file3 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
file: file3 (record type "F", state "u", hash d5b0a58bc47161b1b8a831084b366f757c4f0b11) file: file3 (record type "F", state "u", hash d5b0a58bc47161b1b8a831084b366f757c4f0b11)
local path: file3 (flags "") local path: file3 (flags "")
ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4) ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4)
@ -491,14 +515,17 @@ Force prompts
* version 2 records * version 2 records
local: 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4 local: 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4
other: 10f9a0a634e82080907e62f075ab119cbc565ea6 other: 10f9a0a634e82080907e62f075ab119cbc565ea6
file extras: file1 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
file: file1 (record type "C", state "u", hash 60b27f004e454aca81b0480209cce5081ec52390) file: file1 (record type "C", state "u", hash 60b27f004e454aca81b0480209cce5081ec52390)
local path: file1 (flags "") local path: file1 (flags "")
ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be) ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be)
other path: file1 (node null) other path: file1 (node null)
file extras: file2 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
file: file2 (record type "C", state "u", hash null) file: file2 (record type "C", state "u", hash null)
local path: file2 (flags "") local path: file2 (flags "")
ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e) ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e)
other path: file2 (node e7c1328648519852e723de86c0c0525acd779257) other path: file2 (node e7c1328648519852e723de86c0c0525acd779257)
file extras: file3 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
file: file3 (record type "F", state "u", hash d5b0a58bc47161b1b8a831084b366f757c4f0b11) file: file3 (record type "F", state "u", hash d5b0a58bc47161b1b8a831084b366f757c4f0b11)
local path: file3 (flags "") local path: file3 (flags "")
ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4) ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4)
@ -541,14 +568,17 @@ Choose to merge all files
* version 2 records * version 2 records
local: 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4 local: 13910f48cf7bdb2a0ba6e24b4900e4fdd5739dd4
other: 10f9a0a634e82080907e62f075ab119cbc565ea6 other: 10f9a0a634e82080907e62f075ab119cbc565ea6
file extras: file1 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
file: file1 (record type "C", state "u", hash 60b27f004e454aca81b0480209cce5081ec52390) file: file1 (record type "C", state "u", hash 60b27f004e454aca81b0480209cce5081ec52390)
local path: file1 (flags "") local path: file1 (flags "")
ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be) ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be)
other path: file1 (node null) other path: file1 (node null)
file extras: file2 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
file: file2 (record type "C", state "u", hash null) file: file2 (record type "C", state "u", hash null)
local path: file2 (flags "") local path: file2 (flags "")
ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e) ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e)
other path: file2 (node e7c1328648519852e723de86c0c0525acd779257) other path: file2 (node e7c1328648519852e723de86c0c0525acd779257)
file extras: file3 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
file: file3 (record type "F", state "u", hash d5b0a58bc47161b1b8a831084b366f757c4f0b11) file: file3 (record type "F", state "u", hash d5b0a58bc47161b1b8a831084b366f757c4f0b11)
local path: file3 (flags "") local path: file3 (flags "")
ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4) ancestor path: file3 (node 2661d26c649684b482d10f91960cc3db683c38b4)
@ -697,10 +727,12 @@ Non-interactive linear update
* version 2 records * version 2 records
local: ab57bf49aa276a22d35a473592d4c34b5abc3eff local: ab57bf49aa276a22d35a473592d4c34b5abc3eff
other: 10f9a0a634e82080907e62f075ab119cbc565ea6 other: 10f9a0a634e82080907e62f075ab119cbc565ea6
file extras: file1 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
file: file1 (record type "C", state "u", hash 60b27f004e454aca81b0480209cce5081ec52390) file: file1 (record type "C", state "u", hash 60b27f004e454aca81b0480209cce5081ec52390)
local path: file1 (flags "") local path: file1 (flags "")
ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be) ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be)
other path: file1 (node null) other path: file1 (node null)
file extras: file2 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
file: file2 (record type "C", state "u", hash null) file: file2 (record type "C", state "u", hash null)
local path: file2 (flags "") local path: file2 (flags "")
ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e) ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e)
@ -735,10 +767,12 @@ Choose local versions of files
* version 2 records * version 2 records
local: ab57bf49aa276a22d35a473592d4c34b5abc3eff local: ab57bf49aa276a22d35a473592d4c34b5abc3eff
other: 10f9a0a634e82080907e62f075ab119cbc565ea6 other: 10f9a0a634e82080907e62f075ab119cbc565ea6
file extras: file1 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
file: file1 (record type "C", state "r", hash 60b27f004e454aca81b0480209cce5081ec52390) file: file1 (record type "C", state "r", hash 60b27f004e454aca81b0480209cce5081ec52390)
local path: file1 (flags "") local path: file1 (flags "")
ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be) ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be)
other path: file1 (node null) other path: file1 (node null)
file extras: file2 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
file: file2 (record type "C", state "r", hash null) file: file2 (record type "C", state "r", hash null)
local path: file2 (flags "") local path: file2 (flags "")
ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e) ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e)
@ -771,10 +805,12 @@ Choose other versions of files
* version 2 records * version 2 records
local: ab57bf49aa276a22d35a473592d4c34b5abc3eff local: ab57bf49aa276a22d35a473592d4c34b5abc3eff
other: 10f9a0a634e82080907e62f075ab119cbc565ea6 other: 10f9a0a634e82080907e62f075ab119cbc565ea6
file extras: file1 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
file: file1 (record type "C", state "r", hash 60b27f004e454aca81b0480209cce5081ec52390) file: file1 (record type "C", state "r", hash 60b27f004e454aca81b0480209cce5081ec52390)
local path: file1 (flags "") local path: file1 (flags "")
ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be) ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be)
other path: file1 (node null) other path: file1 (node null)
file extras: file2 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
file: file2 (record type "C", state "r", hash null) file: file2 (record type "C", state "r", hash null)
local path: file2 (flags "") local path: file2 (flags "")
ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e) ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e)
@ -809,10 +845,12 @@ Fail
* version 2 records * version 2 records
local: ab57bf49aa276a22d35a473592d4c34b5abc3eff local: ab57bf49aa276a22d35a473592d4c34b5abc3eff
other: 10f9a0a634e82080907e62f075ab119cbc565ea6 other: 10f9a0a634e82080907e62f075ab119cbc565ea6
file extras: file1 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
file: file1 (record type "C", state "u", hash 60b27f004e454aca81b0480209cce5081ec52390) file: file1 (record type "C", state "u", hash 60b27f004e454aca81b0480209cce5081ec52390)
local path: file1 (flags "") local path: file1 (flags "")
ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be) ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be)
other path: file1 (node null) other path: file1 (node null)
file extras: file2 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
file: file2 (record type "C", state "u", hash null) file: file2 (record type "C", state "u", hash null)
local path: file2 (flags "") local path: file2 (flags "")
ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e) ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e)
@ -853,10 +891,12 @@ Force prompts with no input
* version 2 records * version 2 records
local: ab57bf49aa276a22d35a473592d4c34b5abc3eff local: ab57bf49aa276a22d35a473592d4c34b5abc3eff
other: 10f9a0a634e82080907e62f075ab119cbc565ea6 other: 10f9a0a634e82080907e62f075ab119cbc565ea6
file extras: file1 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
file: file1 (record type "C", state "u", hash 60b27f004e454aca81b0480209cce5081ec52390) file: file1 (record type "C", state "u", hash 60b27f004e454aca81b0480209cce5081ec52390)
local path: file1 (flags "") local path: file1 (flags "")
ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be) ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be)
other path: file1 (node null) other path: file1 (node null)
file extras: file2 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
file: file2 (record type "C", state "u", hash null) file: file2 (record type "C", state "u", hash null)
local path: file2 (flags "") local path: file2 (flags "")
ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e) ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e)
@ -898,10 +938,12 @@ Choose to merge all files
* version 2 records * version 2 records
local: ab57bf49aa276a22d35a473592d4c34b5abc3eff local: ab57bf49aa276a22d35a473592d4c34b5abc3eff
other: 10f9a0a634e82080907e62f075ab119cbc565ea6 other: 10f9a0a634e82080907e62f075ab119cbc565ea6
file extras: file1 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
file: file1 (record type "C", state "u", hash 60b27f004e454aca81b0480209cce5081ec52390) file: file1 (record type "C", state "u", hash 60b27f004e454aca81b0480209cce5081ec52390)
local path: file1 (flags "") local path: file1 (flags "")
ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be) ancestor path: file1 (node b8e02f6433738021a065f94175c7cd23db5f05be)
other path: file1 (node null) other path: file1 (node null)
file extras: file2 (ancestorlinknode = ab57bf49aa276a22d35a473592d4c34b5abc3eff)
file: file2 (record type "C", state "u", hash null) file: file2 (record type "C", state "u", hash null)
local path: file2 (flags "") local path: file2 (flags "")
ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e) ancestor path: file2 (node 5d9299349fc01ddd25d0070d149b124d8f10411e)

View File

@ -85,10 +85,10 @@ Criss cross merging
f2: versions differ -> m (premerge) f2: versions differ -> m (premerge)
picked tool ':dump' for f2 (binary False symlink False changedelete False) picked tool ':dump' for f2 (binary False symlink False changedelete False)
merging f2 merging f2
my f2@3b08d01b0ab5+ other f2@adfe50279922 ancestor f2@40494bf2444c my f2@3b08d01b0ab5+ other f2@adfe50279922 ancestor f2@0f6b37dbe527
f2: versions differ -> m (merge) f2: versions differ -> m (merge)
picked tool ':dump' for f2 (binary False symlink False changedelete False) picked tool ':dump' for f2 (binary False symlink False changedelete False)
my f2@3b08d01b0ab5+ other f2@adfe50279922 ancestor f2@40494bf2444c my f2@3b08d01b0ab5+ other f2@adfe50279922 ancestor f2@0f6b37dbe527
1 files updated, 0 files merged, 0 files removed, 1 files unresolved 1 files updated, 0 files merged, 0 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
[1] [1]

View File

@ -76,6 +76,7 @@ Insert unsupported advisory merge record:
local: 3e046f2ecedb793b97ed32108086edd1a162f8bc local: 3e046f2ecedb793b97ed32108086edd1a162f8bc
other: 46f0b057b5c061d276b91491c22151f78698abd2 other: 46f0b057b5c061d276b91491c22151f78698abd2
unrecognized entry: x advisory record unrecognized entry: x advisory record
file extras: common (ancestorlinknode = 3163e20567cc93074fbb7a53c8b93312e59dbf2c)
file: common (record type "F", state "u", hash 94c8c21d08740f5da9eaa38d1f175c592692f0d1) file: common (record type "F", state "u", hash 94c8c21d08740f5da9eaa38d1f175c592692f0d1)
local path: common (flags "") local path: common (flags "")
ancestor path: common (node de0a666fdd9c1a0b0698b90d85064d8bd34f74b6) ancestor path: common (node de0a666fdd9c1a0b0698b90d85064d8bd34f74b6)
@ -90,6 +91,7 @@ Insert unsupported mandatory merge record:
* version 2 records * version 2 records
local: 3e046f2ecedb793b97ed32108086edd1a162f8bc local: 3e046f2ecedb793b97ed32108086edd1a162f8bc
other: 46f0b057b5c061d276b91491c22151f78698abd2 other: 46f0b057b5c061d276b91491c22151f78698abd2
file extras: common (ancestorlinknode = 3163e20567cc93074fbb7a53c8b93312e59dbf2c)
file: common (record type "F", state "u", hash 94c8c21d08740f5da9eaa38d1f175c592692f0d1) file: common (record type "F", state "u", hash 94c8c21d08740f5da9eaa38d1f175c592692f0d1)
local path: common (flags "") local path: common (flags "")
ancestor path: common (node de0a666fdd9c1a0b0698b90d85064d8bd34f74b6) ancestor path: common (node de0a666fdd9c1a0b0698b90d85064d8bd34f74b6)

View File

@ -263,10 +263,12 @@ insert unsupported advisory merge record
local: 57653b9f834a4493f7240b0681efcb9ae7cab745 local: 57653b9f834a4493f7240b0681efcb9ae7cab745
other: dc77451844e37f03f5c559e3b8529b2b48d381d1 other: dc77451844e37f03f5c559e3b8529b2b48d381d1
unrecognized entry: x advisory record unrecognized entry: x advisory record
file extras: file1 (ancestorlinknode = 99726c03216e233810a2564cbc0adfe395007eac)
file: file1 (record type "F", state "r", hash 60b27f004e454aca81b0480209cce5081ec52390) file: file1 (record type "F", state "r", hash 60b27f004e454aca81b0480209cce5081ec52390)
local path: file1 (flags "") local path: file1 (flags "")
ancestor path: file1 (node 2ed2a3912a0b24502043eae84ee4b279c18b90dd) ancestor path: file1 (node 2ed2a3912a0b24502043eae84ee4b279c18b90dd)
other path: file1 (node 6f4310b00b9a147241b071a60c28a650827fb03d) other path: file1 (node 6f4310b00b9a147241b071a60c28a650827fb03d)
file extras: file2 (ancestorlinknode = 99726c03216e233810a2564cbc0adfe395007eac)
file: file2 (record type "F", state "u", hash cb99b709a1978bd205ab9dfd4c5aaa1fc91c7523) file: file2 (record type "F", state "u", hash cb99b709a1978bd205ab9dfd4c5aaa1fc91c7523)
local path: file2 (flags "") local path: file2 (flags "")
ancestor path: file2 (node 2ed2a3912a0b24502043eae84ee4b279c18b90dd) ancestor path: file2 (node 2ed2a3912a0b24502043eae84ee4b279c18b90dd)
@ -282,10 +284,12 @@ insert unsupported mandatory merge record
* version 2 records * version 2 records
local: 57653b9f834a4493f7240b0681efcb9ae7cab745 local: 57653b9f834a4493f7240b0681efcb9ae7cab745
other: dc77451844e37f03f5c559e3b8529b2b48d381d1 other: dc77451844e37f03f5c559e3b8529b2b48d381d1
file extras: file1 (ancestorlinknode = 99726c03216e233810a2564cbc0adfe395007eac)
file: file1 (record type "F", state "r", hash 60b27f004e454aca81b0480209cce5081ec52390) file: file1 (record type "F", state "r", hash 60b27f004e454aca81b0480209cce5081ec52390)
local path: file1 (flags "") local path: file1 (flags "")
ancestor path: file1 (node 2ed2a3912a0b24502043eae84ee4b279c18b90dd) ancestor path: file1 (node 2ed2a3912a0b24502043eae84ee4b279c18b90dd)
other path: file1 (node 6f4310b00b9a147241b071a60c28a650827fb03d) other path: file1 (node 6f4310b00b9a147241b071a60c28a650827fb03d)
file extras: file2 (ancestorlinknode = 99726c03216e233810a2564cbc0adfe395007eac)
file: file2 (record type "F", state "u", hash cb99b709a1978bd205ab9dfd4c5aaa1fc91c7523) file: file2 (record type "F", state "u", hash cb99b709a1978bd205ab9dfd4c5aaa1fc91c7523)
local path: file2 (flags "") local path: file2 (flags "")
ancestor path: file2 (node 2ed2a3912a0b24502043eae84ee4b279c18b90dd) ancestor path: file2 (node 2ed2a3912a0b24502043eae84ee4b279c18b90dd)