diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py --- a/mercurial/localrepo.py +++ b/mercurial/localrepo.py @@ -2661,6 +2661,47 @@ class localrepository(object): drop = sorted([f for f in removed if f in m]) for f in drop: del m[f] + if p2.rev() != nullrev: + @util.cachefunc + def mas(): + p1n = p1.node() + p2n = p2.node() + cahs = self.changelog.commonancestorsheads(p1n, p2n) + if not cahs: + cahs = [nullrev] + return [self[r].manifest() for r in cahs] + def deletionfromparent(f): + # When a file is removed relative to p1 in a merge, this + # function determines whether the absence is due to a + # deletion from a parent, or whether the merge commit + # itself deletes the file. We decide this by doing a + # simplified three way merge of the manifest entry for + # the file. There are two ways we decide the merge + # itself didn't delete a file: + # - neither parent (nor the merge) contain the file + # - exactly one parent contains the file, and that + # parent has the same filelog entry as the merge + # ancestor (or all of them if there two). In other + # words, that parent left the file unchanged while the + # other one deleted it. + # One way to think about this is that deleting a file is + # similar to emptying it, so the list of changed files + # should be similar either way. The computation + # described above is not done directly in _filecommit + # when creating the list of changed files, however + # it does something very similar by comparing filelog + # nodes. + if f in m1: + return (f not in m2 + and all(f in ma and ma.find(f) == m1.find(f) + for ma in mas())) + elif f in m2: + return all(f in ma and ma.find(f) == m2.find(f) + for ma in mas()) + else: + return True + removed = [f for f in removed if not deletionfromparent(f)] + files = changed + removed md = None if not files: diff --git a/tests/test-backout.t b/tests/test-backout.t --- a/tests/test-backout.t +++ b/tests/test-backout.t @@ -583,12 +583,12 @@ on branch2 with branch1 merged, so file1 (branch merge, don't forget to commit) $ hg ci -d '4 0' -m 'merge backout of branch1' $ hg id - 22149cdde76d (branch2) tip + d97a8500a969 (branch2) tip $ hg st -A C default C file2 $ hg summary - parent: 4:22149cdde76d tip + parent: 4:d97a8500a969 tip merge backout of branch1 branch: branch2 commit: (clean) diff --git a/tests/test-commit-amend.t b/tests/test-commit-amend.t --- a/tests/test-commit-amend.t +++ b/tests/test-commit-amend.t @@ -649,7 +649,7 @@ Amend a merge changeset (with renames an (no more unresolved files) $ hg ci -m 'merge bar' $ hg log --config diff.git=1 -pr . - changeset: 20:163cfd7219f7 + changeset: 20:5aba7f3726e6 tag: tip parent: 19:30d96aeaf27b parent: 18:1aa437659d19 @@ -682,7 +682,7 @@ Amend a merge changeset (with renames an $ HGEDITOR="sh .hg/checkeditform.sh" hg ci --amend -m 'merge bar (amend message)' --edit HGEDITFORM=commit.amend.merge $ hg log --config diff.git=1 -pr . - changeset: 21:bca52d4ed186 + changeset: 21:4b0631ef043e tag: tip parent: 19:30d96aeaf27b parent: 18:1aa437659d19 @@ -715,7 +715,7 @@ Amend a merge changeset (with renames an $ hg mv zz z $ hg ci --amend -m 'merge bar (undo rename)' $ hg log --config diff.git=1 -pr . - changeset: 22:12594a98ca3f + changeset: 22:06423be42d60 tag: tip parent: 19:30d96aeaf27b parent: 18:1aa437659d19 @@ -751,9 +751,9 @@ Amend a merge changeset (with renames du $ echo aa >> aaa $ hg ci -m 'merge bar again' $ hg log --config diff.git=1 -pr . - changeset: 24:dffde028b388 + changeset: 24:a89974a20457 tag: tip - parent: 22:12594a98ca3f + parent: 22:06423be42d60 parent: 23:4c94d5bc65f5 user: test date: Thu Jan 01 00:00:00 1970 +0000 @@ -800,9 +800,9 @@ in p1 too, but it was recorded as copied $ hg mv aaa aa $ hg ci --amend -m 'merge bar again (undo rename)' $ hg log --config diff.git=1 -pr . - changeset: 25:18e3ba160489 + changeset: 25:282080768800 tag: tip - parent: 22:12594a98ca3f + parent: 22:06423be42d60 parent: 23:4c94d5bc65f5 user: test date: Thu Jan 01 00:00:00 1970 +0000 @@ -843,9 +843,9 @@ Amend a merge changeset (with manifest-l What do you want to do? c $ hg ci -m 'merge bar (with conflicts)' $ hg log --config diff.git=1 -pr . - changeset: 28:b4c3035e2544 + changeset: 28:ed15db12298d tag: tip - parent: 27:4b216ca5ba97 + parent: 27:eb5adec0b43b parent: 26:67db8847a540 user: test date: Thu Jan 01 00:00:00 1970 +0000 @@ -855,9 +855,9 @@ Amend a merge changeset (with manifest-l $ hg rm aa $ hg ci --amend -m 'merge bar (with conflicts, amended)' $ hg log --config diff.git=1 -pr . - changeset: 29:1205ed810051 + changeset: 29:0eeafd043f63 tag: tip - parent: 27:4b216ca5ba97 + parent: 27:eb5adec0b43b parent: 26:67db8847a540 user: test date: Thu Jan 01 00:00:00 1970 +0000 @@ -974,7 +974,7 @@ Test that "diff()" in committemplate wor HG: M: HG: A: foo HG: R: - HG: diff -r 1205ed810051 foo + HG: diff -r 0eeafd043f63 foo HG: --- /dev/null Thu Jan 01 00:00:00 1970 +0000 HG: +++ b/foo Thu Jan 01 00:00:00 1970 +0000 HG: @@ -0,0 +1,1 @@ @@ -988,12 +988,12 @@ Test that "diff()" in committemplate wor HG: M: HG: A: foo y HG: R: - HG: diff -r 1205ed810051 foo + HG: diff -r 0eeafd043f63 foo HG: --- /dev/null Thu Jan 01 00:00:00 1970 +0000 HG: +++ b/foo Thu Jan 01 00:00:00 1970 +0000 HG: @@ -0,0 +1,1 @@ HG: +foo - HG: diff -r 1205ed810051 y + HG: diff -r 0eeafd043f63 y HG: --- /dev/null Thu Jan 01 00:00:00 1970 +0000 HG: +++ b/y Thu Jan 01 00:00:00 1970 +0000 HG: @@ -0,0 +1,1 @@ @@ -1006,18 +1006,18 @@ Test that "diff()" in committemplate wor HG: M: HG: A: foo y HG: R: a - HG: diff -r 1205ed810051 a + HG: diff -r 0eeafd043f63 a HG: --- a/a Thu Jan 01 00:00:00 1970 +0000 HG: +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 HG: @@ -1,2 +0,0 @@ HG: -a HG: -a - HG: diff -r 1205ed810051 foo + HG: diff -r 0eeafd043f63 foo HG: --- /dev/null Thu Jan 01 00:00:00 1970 +0000 HG: +++ b/foo Thu Jan 01 00:00:00 1970 +0000 HG: @@ -0,0 +1,1 @@ HG: +foo - HG: diff -r 1205ed810051 y + HG: diff -r 0eeafd043f63 y HG: --- /dev/null Thu Jan 01 00:00:00 1970 +0000 HG: +++ b/y Thu Jan 01 00:00:00 1970 +0000 HG: @@ -0,0 +1,1 @@ @@ -1030,23 +1030,23 @@ Test that "diff()" in committemplate wor HG: M: HG: A: foo y HG: R: a x - HG: diff -r 1205ed810051 a + HG: diff -r 0eeafd043f63 a HG: --- a/a Thu Jan 01 00:00:00 1970 +0000 HG: +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 HG: @@ -1,2 +0,0 @@ HG: -a HG: -a - HG: diff -r 1205ed810051 foo + HG: diff -r 0eeafd043f63 foo HG: --- /dev/null Thu Jan 01 00:00:00 1970 +0000 HG: +++ b/foo Thu Jan 01 00:00:00 1970 +0000 HG: @@ -0,0 +1,1 @@ HG: +foo - HG: diff -r 1205ed810051 x + HG: diff -r 0eeafd043f63 x HG: --- a/x Thu Jan 01 00:00:00 1970 +0000 HG: +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 HG: @@ -1,1 +0,0 @@ HG: -x - HG: diff -r 1205ed810051 y + HG: diff -r 0eeafd043f63 y HG: --- /dev/null Thu Jan 01 00:00:00 1970 +0000 HG: +++ b/y Thu Jan 01 00:00:00 1970 +0000 HG: @@ -0,0 +1,1 @@ @@ -1061,23 +1061,23 @@ Test that "diff()" in committemplate wor HG: M: HG: A: foo y HG: R: a x - HG: diff -r 1205ed810051 a + HG: diff -r 0eeafd043f63 a HG: --- a/a Thu Jan 01 00:00:00 1970 +0000 HG: +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 HG: @@ -1,2 +0,0 @@ HG: -a HG: -a - HG: diff -r 1205ed810051 foo + HG: diff -r 0eeafd043f63 foo HG: --- /dev/null Thu Jan 01 00:00:00 1970 +0000 HG: +++ b/foo Thu Jan 01 00:00:00 1970 +0000 HG: @@ -0,0 +1,1 @@ HG: +foo - HG: diff -r 1205ed810051 x + HG: diff -r 0eeafd043f63 x HG: --- a/x Thu Jan 01 00:00:00 1970 +0000 HG: +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 HG: @@ -1,1 +0,0 @@ HG: -x - HG: diff -r 1205ed810051 y + HG: diff -r 0eeafd043f63 y HG: --- /dev/null Thu Jan 01 00:00:00 1970 +0000 HG: +++ b/y Thu Jan 01 00:00:00 1970 +0000 HG: @@ -0,0 +1,1 @@ diff --git a/tests/test-convert-filemap.t b/tests/test-convert-filemap.t --- a/tests/test-convert-filemap.t +++ b/tests/test-convert-filemap.t @@ -760,9 +760,8 @@ test converting merges into a repo that converted/b x $ hg -R merge-test2 log -G -T '{shortest(node)} {desc}\n{files % "- {file}\n"}\n' - o 6eaa merge a & b + o e2ff merge a & b |\ - converted/a - | | - toberemoved | | | o 2995 add b | | - converted/b diff --git a/tests/test-convert-hg-startrev.t b/tests/test-convert-hg-startrev.t --- a/tests/test-convert-hg-startrev.t +++ b/tests/test-convert-hg-startrev.t @@ -54,7 +54,7 @@ Convert from null revision $ glog full o 5 "5: change a" files: a | - o 4 "4: merge 2 and 3" files: e f + o 4 "4: merge 2 and 3" files: e |\ | o 3 "3: change a" files: a | | @@ -83,7 +83,7 @@ Convert from zero revision $ glog full o 5 "5: change a" files: a | - o 4 "4: merge 2 and 3" files: e f + o 4 "4: merge 2 and 3" files: e |\ | o 3 "3: change a" files: a | | @@ -130,7 +130,7 @@ Check copy preservation (It seems like a bug in log that the following doesn't show rev 1.) $ hg log --follow --copies e - changeset: 2:82bbac3d2cf4 + changeset: 2:8d3c3fe67bb7 user: test date: Thu Jan 01 00:00:04 1970 +0000 summary: 4: merge 2 and 3 diff --git a/tests/test-copies.t b/tests/test-copies.t --- a/tests/test-copies.t +++ b/tests/test-copies.t @@ -202,7 +202,7 @@ Merge rename from other branch $ hg ci -m 'merge rename from p2' $ hg l @ 3 merge rename from p2 - |\ x + |\ | o 2 add z | | z o | 1 rename x to y @@ -417,9 +417,9 @@ Try merging the other direction too created new head $ hg l @ 5 merge 3 into 1 - |\ y z + |\ z +---o 4 merge 1 into 3 - | |/ x z + | |/ z | o 3 modify z | | z | o 2 rename y to z diff --git a/tests/test-glog-beautifygraph.t b/tests/test-glog-beautifygraph.t --- a/tests/test-glog-beautifygraph.t +++ b/tests/test-glog-beautifygraph.t @@ -2101,7 +2101,7 @@ Test --patch and --stat with --follow an $ hg up -q 6 $ hg log -G --git --patch --follow-first e - \xe2\x97\x8d changeset: 6:fc281d8ff18d (esc) + \xe2\x97\x8d changeset: 6:9feeac35a70a (esc) \xe2\x94\x82\xe2\x95\xb2 tag: tip (esc) \xe2\x94\x82 \xe2\x95\xa7 parent: 5:99b31f1c2782 (esc) \xe2\x94\x82 parent: 4:17d952250a9d (esc) @@ -2148,7 +2148,7 @@ Test --follow and forward --rev $ hg log -G --template "{rev} {desc|firstline}\n" \xe2\x97\x8b 8 add g (esc) \xe2\x94\x82 (esc) - \xe2\x94\x82 \xe2\x97\x8b 7 Added tag foo-bar for changeset fc281d8ff18d (esc) + \xe2\x94\x82 \xe2\x97\x8b 7 Added tag foo-bar for changeset 9feeac35a70a (esc) \xe2\x94\x82\xe2\x95\xb1 (esc) \xe2\x97\x8b 6 merge 5 and 4 (esc) \xe2\x94\x82\xe2\x95\xb2 (esc) @@ -2311,17 +2311,17 @@ changessincelatesttag with no prior tag # User test # Date 0 0 # Thu Jan 01 00:00:00 1970 +0000 - # Node ID fc281d8ff18d999ad6497b3d27390bcd695dcc73 + # Node ID 9feeac35a70aa325519bbf3178683271113f2b8f # Parent 99b31f1c2782e2deb1723cef08930f70fc84b37b # Parent 17d952250a9d03cc3dc77b199ab60e959b9b0260 merge 5 and 4 - diff -r 99b31f1c2782 -r fc281d8ff18d dir/b + diff -r 99b31f1c2782 -r 9feeac35a70a dir/b --- a/dir/b Thu Jan 01 00:00:00 1970 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -a - diff -r 99b31f1c2782 -r fc281d8ff18d e + diff -r 99b31f1c2782 -r 9feeac35a70a e --- a/e Thu Jan 01 00:00:00 1970 +0000 +++ b/e Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +1,1 @@ @@ -2331,24 +2331,24 @@ changessincelatesttag with no prior tag # User test # Date 0 0 # Thu Jan 01 00:00:00 1970 +0000 - # Node ID 02dbb8e276b8ab7abfd07cab50c901647e75c2dd - # Parent fc281d8ff18d999ad6497b3d27390bcd695dcc73 - Added tag foo-bar for changeset fc281d8ff18d + # Node ID 9febbb9c8b2e09670a2fb550cb1e4e01a2c7e9fd + # Parent 9feeac35a70aa325519bbf3178683271113f2b8f + Added tag foo-bar for changeset 9feeac35a70a - diff -r fc281d8ff18d -r 02dbb8e276b8 .hgtags + diff -r 9feeac35a70a -r 9febbb9c8b2e .hgtags --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.hgtags Thu Jan 01 00:00:00 1970 +0000 @@ -0,0 +1,1 @@ - +fc281d8ff18d999ad6497b3d27390bcd695dcc73 foo-bar + +9feeac35a70aa325519bbf3178683271113f2b8f foo-bar # HG changeset patch # User test # Date 0 0 # Thu Jan 01 00:00:00 1970 +0000 - # Node ID 24c2e826ddebf80f9dcd60b856bdb8e6715c5449 - # Parent fc281d8ff18d999ad6497b3d27390bcd695dcc73 + # Node ID 3bd4551ec3fe1c0696241f236abe857a53c6d6e7 + # Parent 9feeac35a70aa325519bbf3178683271113f2b8f add g - diff -r fc281d8ff18d -r 24c2e826ddeb g + diff -r 9feeac35a70a -r 3bd4551ec3fe g --- a/g Thu Jan 01 00:00:00 1970 +0000 +++ b/g Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +1,1 @@ @@ -2436,7 +2436,7 @@ Test --hidden [] $ hg log -G --template '{rev} {desc}\n' - \xe2\x97\x8b 7 Added tag foo-bar for changeset fc281d8ff18d (esc) + \xe2\x97\x8b 7 Added tag foo-bar for changeset 9feeac35a70a (esc) \xe2\x94\x82 (esc) \xe2\x97\x8b 6 merge 5 and 4 (esc) \xe2\x94\x82\xe2\x95\xb2 (esc) @@ -2534,9 +2534,9 @@ working-directory revision node template with changesetprinter: $ hg log -Gqr 5:7 --config ui.graphnodetemplate='"{rev}"' - 7 7:02dbb8e276b8 + 7 7:9febbb9c8b2e \xe2\x94\x82 (esc) - 6 6:fc281d8ff18d + 6 6:9feeac35a70a \xe2\x94\x82\xe2\x95\xb2 (esc) \xe2\x94\x82 \xe2\x95\xa7 (esc) 5 5:99b31f1c2782 @@ -2560,7 +2560,7 @@ label() should just work in node templat $ hg log -Gqr 7 --config extensions.color= --color=debug \ > --config ui.graphnodetemplate='{label("branch.{branch}", rev)}' - [branch.default\xe2\x94\x827] [log.node|7:02dbb8e276b8] (esc) + [branch.default\xe2\x94\x827] [log.node|7:9febbb9c8b2e] (esc) \xe2\x94\x82 (esc) \xe2\x95\xa7 (esc) diff --git a/tests/test-glog.t b/tests/test-glog.t --- a/tests/test-glog.t +++ b/tests/test-glog.t @@ -1951,7 +1951,7 @@ Test --patch and --stat with --follow an $ hg up -q 6 $ hg log -G --git --patch --follow-first e - @ changeset: 6:fc281d8ff18d + @ changeset: 6:9feeac35a70a |\ tag: tip | ~ parent: 5:99b31f1c2782 | parent: 4:17d952250a9d @@ -1998,7 +1998,7 @@ Test --follow and forward --rev $ hg log -G --template "{rev} {desc|firstline}\n" o 8 add g | - | o 7 Added tag foo-bar for changeset fc281d8ff18d + | o 7 Added tag foo-bar for changeset 9feeac35a70a |/ o 6 merge 5 and 4 |\ @@ -2161,17 +2161,17 @@ changessincelatesttag with no prior tag # User test # Date 0 0 # Thu Jan 01 00:00:00 1970 +0000 - # Node ID fc281d8ff18d999ad6497b3d27390bcd695dcc73 + # Node ID 9feeac35a70aa325519bbf3178683271113f2b8f # Parent 99b31f1c2782e2deb1723cef08930f70fc84b37b # Parent 17d952250a9d03cc3dc77b199ab60e959b9b0260 merge 5 and 4 - diff -r 99b31f1c2782 -r fc281d8ff18d dir/b + diff -r 99b31f1c2782 -r 9feeac35a70a dir/b --- a/dir/b Thu Jan 01 00:00:00 1970 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +0,0 @@ -a - diff -r 99b31f1c2782 -r fc281d8ff18d e + diff -r 99b31f1c2782 -r 9feeac35a70a e --- a/e Thu Jan 01 00:00:00 1970 +0000 +++ b/e Thu Jan 01 00:00:00 1970 +0000 @@ -1,1 +1,1 @@ @@ -2181,24 +2181,24 @@ changessincelatesttag with no prior tag # User test # Date 0 0 # Thu Jan 01 00:00:00 1970 +0000 - # Node ID 02dbb8e276b8ab7abfd07cab50c901647e75c2dd - # Parent fc281d8ff18d999ad6497b3d27390bcd695dcc73 - Added tag foo-bar for changeset fc281d8ff18d + # Node ID 9febbb9c8b2e09670a2fb550cb1e4e01a2c7e9fd + # Parent 9feeac35a70aa325519bbf3178683271113f2b8f + Added tag foo-bar for changeset 9feeac35a70a - diff -r fc281d8ff18d -r 02dbb8e276b8 .hgtags + diff -r 9feeac35a70a -r 9febbb9c8b2e .hgtags --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.hgtags Thu Jan 01 00:00:00 1970 +0000 @@ -0,0 +1,1 @@ - +fc281d8ff18d999ad6497b3d27390bcd695dcc73 foo-bar + +9feeac35a70aa325519bbf3178683271113f2b8f foo-bar # HG changeset patch # User test # Date 0 0 # Thu Jan 01 00:00:00 1970 +0000 - # Node ID 24c2e826ddebf80f9dcd60b856bdb8e6715c5449 - # Parent fc281d8ff18d999ad6497b3d27390bcd695dcc73 + # Node ID 3bd4551ec3fe1c0696241f236abe857a53c6d6e7 + # Parent 9feeac35a70aa325519bbf3178683271113f2b8f add g - diff -r fc281d8ff18d -r 24c2e826ddeb g + diff -r 9feeac35a70a -r 3bd4551ec3fe g --- a/g Thu Jan 01 00:00:00 1970 +0000 +++ b/g Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +1,1 @@ @@ -2286,7 +2286,7 @@ Test --hidden [] $ hg log -G --template '{rev} {desc}\n' - o 7 Added tag foo-bar for changeset fc281d8ff18d + o 7 Added tag foo-bar for changeset 9feeac35a70a | o 6 merge 5 and 4 |\ @@ -2384,9 +2384,9 @@ working-directory revision node template with changesetprinter: $ hg log -Gqr 5:7 --config ui.graphnodetemplate='"{rev}"' - 7 7:02dbb8e276b8 + 7 7:9febbb9c8b2e | - 6 6:fc281d8ff18d + 6 6:9feeac35a70a |\ | ~ 5 5:99b31f1c2782 @@ -2410,7 +2410,7 @@ label() should just work in node templat $ hg log -Gqr 7 --config extensions.color= --color=debug \ > --config ui.graphnodetemplate='{label("branch.{branch}", rev)}' - [branch.default|7] [log.node|7:02dbb8e276b8] + [branch.default|7] [log.node|7:9febbb9c8b2e] | ~ diff --git a/tests/test-issue672.t b/tests/test-issue672.t --- a/tests/test-issue672.t +++ b/tests/test-issue672.t @@ -60,13 +60,13 @@ https://bz.mercurial-scm.org/672 checking for directory renames resolving manifests branchmerge: True, force: False, partial: False - ancestor: c64f439569a9, local: e327dca35ac8+, remote: 746e9549ea96 + ancestor: c64f439569a9, local: f4a9cff3cd0b+, remote: 746e9549ea96 preserving 1a for resolve of 1a starting 4 threads for background file closing (?) 1a: local copied/moved from 1 -> m (premerge) picked tool ':merge' for 1a (binary False symlink False changedelete False) merging 1a and 1 to 1a - my 1a@e327dca35ac8+ other 1@746e9549ea96 ancestor 1@c64f439569a9 + my 1a@f4a9cff3cd0b+ other 1@746e9549ea96 ancestor 1@c64f439569a9 premerge successful 0 files updated, 1 files merged, 0 files removed, 0 files unresolved (branch merge, don't forget to commit) @@ -82,14 +82,14 @@ https://bz.mercurial-scm.org/672 checking for directory renames resolving manifests branchmerge: True, force: False, partial: False - ancestor: c64f439569a9, local: 746e9549ea96+, remote: e327dca35ac8 + ancestor: c64f439569a9, local: 746e9549ea96+, remote: f4a9cff3cd0b preserving 1 for resolve of 1a removing 1 starting 4 threads for background file closing (?) 1a: remote moved from 1 -> m (premerge) picked tool ':merge' for 1a (binary False symlink False changedelete False) merging 1 and 1a to 1a - my 1a@746e9549ea96+ other 1a@e327dca35ac8 ancestor 1@c64f439569a9 + my 1a@746e9549ea96+ other 1a@f4a9cff3cd0b ancestor 1@c64f439569a9 premerge successful 0 files updated, 1 files merged, 0 files removed, 0 files unresolved (branch merge, don't forget to commit) diff --git a/tests/test-lfconvert.t b/tests/test-lfconvert.t --- a/tests/test-lfconvert.t +++ b/tests/test-lfconvert.t @@ -160,7 +160,7 @@ lfconvert with rename, merge, and remove initializing destination largefiles-repo $ cd largefiles-repo $ hg log -G --template "{rev}:{node|short} {desc|firstline}\n" - o 5:8e05f5f2b77e merge + o 5:9cc5aa7204f0 merge |\ | o 4:a5a02de7a8e4 remove large, normal3 | | @@ -251,7 +251,7 @@ convert extension is disabled to show co 3 remove large, normal3 2 merge 1 add anotherlarge (should be a largefile) - 0 Added tag mytag for changeset abacddda7028 + 0 Added tag mytag for changeset 17126745edfd $ cd ../normal-repo $ cat >> .hg/hgrc < [extensions] @@ -304,7 +304,7 @@ from the working dir on a convert. 3 remove large, normal3 2 merge 1 add anotherlarge (should be a largefile) - 0 Added tag mytag for changeset abacddda7028 + 0 Added tag mytag for changeset 17126745edfd $ hg -R largefiles-repo-hg log -G --template "{rev}:{node|short} {desc|firstline}\n" o 7:2f08f66459b7 Added tag mytag for changeset 17126745edfd @@ -374,7 +374,7 @@ Ensure the largefile can be cached in th 4 remove large, normal3 3 merge 2 add anotherlarge (should be a largefile) - 1 Added tag mytag for changeset abacddda7028 + 1 Added tag mytag for changeset 17126745edfd 0 change branch name only Ensure empty commits aren't lost in the conversion diff --git a/tests/test-merge-combination.t b/tests/test-merge-combination.t --- a/tests/test-merge-combination.t +++ b/tests/test-merge-combination.t @@ -118,7 +118,7 @@ All the merges of various file contents. 12-- C: agree on "a" 1-11 : hg said "", expected "a" 1-12 : agree on "a" - 1-1- : hg said "a", expected "" + 1-1- : agree on "" 1-21 C: agree on "a" 1-22 C: hg said "", expected "a" 1-23 C: agree on "a" @@ -215,6 +215,6 @@ containing $files. $ hg merge -qr 3; echo f > u1; echo f > u2; rm -f c1 c2 $ hg commit -qAm '5 merge with two gcas' $ hg log -r . -T '{files}\n' # expecting u1 u2 - c1 + $ cd ../ $ rm -rf repo diff --git a/tests/test-rebase-inmemory.t b/tests/test-rebase-inmemory.t --- a/tests/test-rebase-inmemory.t +++ b/tests/test-rebase-inmemory.t @@ -744,7 +744,7 @@ Test rebasing a commit with copy informa $ hg tglog @ 6: 676538af172d 'untracked rename of d to e' | - | * 5: 71cb43376053 'merge' + | * 5: 574d92ad16fc 'merge' | |\ | | x 4: 2c8b5dad7956 'rename d to e' | | | @@ -758,8 +758,8 @@ Test rebasing a commit with copy informa $ hg rebase -b 5 -d tip rebasing 3:ca58782ad1e4 "b" - rebasing 5:71cb43376053 "merge" - note: not rebasing 5:71cb43376053 "merge", its destination already has all its changes + rebasing 5:574d92ad16fc "merge" + note: not rebasing 5:574d92ad16fc "merge", its destination already has all its changes $ cd .. diff --git a/tests/test-rebase-newancestor.t b/tests/test-rebase-newancestor.t --- a/tests/test-rebase-newancestor.t +++ b/tests/test-rebase-newancestor.t @@ -108,7 +108,7 @@ wrong. $ hg tglog @ 7: e08089805d82 'default: f-other stuff' | - | o 6: 9455ee510502 'dev: merge default' dev + | o 6: 010ced67e558 'dev: merge default' dev |/| o | 5: 462860db70a1 'default: remove f-default' | | @@ -136,10 +136,10 @@ Full rebase all the way back from branch file 'f-default' was deleted in local [dest] but was modified in other [source]. You can use (c)hanged version, leave (d)eleted, or leave (u)nresolved. What do you want to do? c - rebasing 6:9455ee510502 "dev: merge default" - saved backup bundle to $TESTTMP/ancestor-merge/.hg/strip-backup/1d1a643d390e-43e9e04b-rebase.hg + rebasing 6:010ced67e558 "dev: merge default" + saved backup bundle to $TESTTMP/ancestor-merge/.hg/strip-backup/1d1a643d390e-4a6f6d17-rebase.hg $ hg tglog - o 6: fbc098e72227 'dev: merge default' + o 6: de147e4f69cf 'dev: merge default' | o 5: eda7b7f46f5d 'dev: merge default' | @@ -166,10 +166,10 @@ Grafty cherry picking rebasing: file 'f-default' was deleted in local [dest] but was modified in other [source]. You can use (c)hanged version, leave (d)eleted, or leave (u)nresolved. What do you want to do? c - rebasing 6:9455ee510502 "dev: merge default" - saved backup bundle to $TESTTMP/ancestor-merge-2/.hg/strip-backup/ec2c14fb2984-62d0b222-rebase.hg + rebasing 6:010ced67e558 "dev: merge default" + saved backup bundle to $TESTTMP/ancestor-merge-2/.hg/strip-backup/ec2c14fb2984-827d7a44-rebase.hg $ hg tglog - o 7: fbc098e72227 'dev: merge default' + o 7: de147e4f69cf 'dev: merge default' | o 6: eda7b7f46f5d 'dev: merge default' | diff --git a/tests/test-revset.t b/tests/test-revset.t --- a/tests/test-revset.t +++ b/tests/test-revset.t @@ -1721,11 +1721,9 @@ min: empty on unordered set 4 $ log 'modifies("*")' 4 - 6 $ log 'modifies("set:modified()")' 4 $ log 'id(5)' - 2 $ log 'only(9)' 8 9 @@ -1834,12 +1832,12 @@ Test explicit numeric revision Test hexadecimal revision $ log 'id(2)' - $ log 'id(5)' - 2 - $ hg --config experimental.revisions.prefixhexnode=yes log --template '{rev}\n' -r 'id(x5)' - 2 - $ hg --config experimental.revisions.prefixhexnode=yes log --template '{rev}\n' -r 'x5' - 2 + $ log 'id(8)' + 3 + $ hg --config experimental.revisions.prefixhexnode=yes log --template '{rev}\n' -r 'id(x8)' + 3 + $ hg --config experimental.revisions.prefixhexnode=yes log --template '{rev}\n' -r 'x8' + 3 $ hg --config experimental.revisions.prefixhexnode=yes log --template '{rev}\n' -r 'id(x)' $ hg --config experimental.revisions.prefixhexnode=yes log --template '{rev}\n' -r 'x' abort: 00changelog.i@: ambiguous identifier! @@ -2096,7 +2094,6 @@ itself isn't returned unless it is expli 2 $ log 'removes(a)' 2 - 6 $ log 'roots(all())' 0 $ log 'reverse(2 or 3 or 4 or 5)' @@ -2710,7 +2707,6 @@ test sorting two sorted collections in d $ log 'sort(outgoing() or reverse(removes(a)), rev)' 2 - 6 8 9 @@ -2719,7 +2715,6 @@ test sorting two sorted collections in d $ log 'sort(outgoing() or reverse(removes(a)), -rev)' 9 8 - 6 2 test empty sort key which is noop diff --git a/tests/test-revset2.t b/tests/test-revset2.t --- a/tests/test-revset2.t +++ b/tests/test-revset2.t @@ -100,7 +100,6 @@ test intersecting something with an adds $ log 'parents(outgoing() or removes(a))' 1 4 - 5 8 test that `or` operation combines elements in the right order: @@ -805,17 +804,17 @@ test usage in revpair (with "+") (real pair) $ hg diff -r 'tip^^' -r 'tip' - diff -r 2326846efdab -r 24286f4ae135 .hgtags + diff -r 2326846efdab -r d2e607fcf9e4 .hgtags --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.hgtags Thu Jan 01 00:00:00 1970 +0000 @@ -0,0 +1,1 @@ - +e0cc66ef77e8b6f711815af4e001a6594fde3ba5 1.0 + +d5e6808a86077d6f5c1ff626d4352d01da7d2a1f 1.0 $ hg diff -r 'tip^^::tip' - diff -r 2326846efdab -r 24286f4ae135 .hgtags + diff -r 2326846efdab -r d2e607fcf9e4 .hgtags --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.hgtags Thu Jan 01 00:00:00 1970 +0000 @@ -0,0 +1,1 @@ - +e0cc66ef77e8b6f711815af4e001a6594fde3ba5 1.0 + +d5e6808a86077d6f5c1ff626d4352d01da7d2a1f 1.0 (single rev) @@ -829,13 +828,13 @@ test usage in revpair (with "+") --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.hgtags * (glob) @@ -0,0 +1,1 @@ - +e0cc66ef77e8b6f711815af4e001a6594fde3ba5 1.0 + +d5e6808a86077d6f5c1ff626d4352d01da7d2a1f 1.0 $ hg diff -r 'tip^ or tip^' diff -r d5d0dcbdc4d9 .hgtags --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.hgtags * (glob) @@ -0,0 +1,1 @@ - +e0cc66ef77e8b6f711815af4e001a6594fde3ba5 1.0 + +d5e6808a86077d6f5c1ff626d4352d01da7d2a1f 1.0 (no rev) @@ -1231,59 +1230,59 @@ test unknown reference: issue4553: check that revset aliases override existing hash prefix - $ hg log -qr e - 6:e0cc66ef77e8 + $ hg log -qr d5e + 6:d5e6808a8607 - $ hg log -qr e --config revsetalias.e="all()" + $ hg log -qr d5e --config revsetalias.d5e="all()" 0:2785f51eece5 1:d75937da8da0 2:5ed5505e9f1c 3:8528aa5637f2 4:2326846efdab 5:904fa392b941 - 6:e0cc66ef77e8 - 7:013af1973af4 + 6:d5e6808a8607 + 7:586353d483b3 8:d5d0dcbdc4d9 - 9:24286f4ae135 + 9:d2e607fcf9e4 - $ hg log -qr e: --config revsetalias.e="0" + $ hg log -qr d5e: --config revsetalias.d5e="0" 0:2785f51eece5 1:d75937da8da0 2:5ed5505e9f1c 3:8528aa5637f2 4:2326846efdab 5:904fa392b941 - 6:e0cc66ef77e8 - 7:013af1973af4 + 6:d5e6808a8607 + 7:586353d483b3 8:d5d0dcbdc4d9 - 9:24286f4ae135 + 9:d2e607fcf9e4 - $ hg log -qr :e --config revsetalias.e="9" + $ hg log -qr :d5e --config revsetalias.d5e="9" 0:2785f51eece5 1:d75937da8da0 2:5ed5505e9f1c 3:8528aa5637f2 4:2326846efdab 5:904fa392b941 - 6:e0cc66ef77e8 - 7:013af1973af4 + 6:d5e6808a8607 + 7:586353d483b3 8:d5d0dcbdc4d9 - 9:24286f4ae135 + 9:d2e607fcf9e4 - $ hg log -qr e: - 6:e0cc66ef77e8 - 7:013af1973af4 + $ hg log -qr d5e: + 6:d5e6808a8607 + 7:586353d483b3 8:d5d0dcbdc4d9 - 9:24286f4ae135 + 9:d2e607fcf9e4 - $ hg log -qr :e + $ hg log -qr :d5e 0:2785f51eece5 1:d75937da8da0 2:5ed5505e9f1c 3:8528aa5637f2 4:2326846efdab 5:904fa392b941 - 6:e0cc66ef77e8 + 6:d5e6808a8607 issue2549 - correct optimizations @@ -1471,7 +1470,7 @@ tests for concatenation of strings/symbo (check operator priority) $ echo 'cat2n2($1, $2, $3, $4) = $1 ## $2 or $3 ## $4~2' >> .hg/hgrc - $ log "cat2n2(2785f5, 1eece5, 24286f, 4ae135)" + $ log "cat2n2(2785f5, 1eece5, d2e607, fcf9e4)" 0 4 diff --git a/tests/test-template-keywords.t b/tests/test-template-keywords.t --- a/tests/test-template-keywords.t +++ b/tests/test-template-keywords.t @@ -807,13 +807,13 @@ Test files lists on merge commit: $ hg merge 10 -q $ hg ci -m 'merge' $ hg log -l1 -T '{files}\n' - a fourth + $ hg log -l1 -T '{file_mods}\n' $ hg log -l1 -T '{file_adds}\n' $ hg log -l1 -T '{file_dels}\n' - a fourth + Test file copies dict: