[Updated] [+- ] D9130: salvaged: properly deal with salvaged file during copy tracing
marmoute (Pierre-Yves David)
phabricator at mercurial-scm.org
Fri Oct 2 09:10:04 UTC 2020
marmoute updated this revision to Diff 22997.
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D9130?vs=22950&id=22997
BRANCH
default
CHANGES SINCE LAST ACTION
https://phab.mercurial-scm.org/D9130/new/
REVISION DETAIL
https://phab.mercurial-scm.org/D9130
AFFECTED FILES
mercurial/copies.py
tests/test-copies-chain-merge.t
CHANGE DETAILS
diff --git a/tests/test-copies-chain-merge.t b/tests/test-copies-chain-merge.t
--- a/tests/test-copies-chain-merge.t
+++ b/tests/test-copies-chain-merge.t
@@ -910,15 +910,15 @@
o 0 i-0 initial commit: a b h
-BROKEN: 'a' should be the the source of 'd' in the changeset centric algorithm too
+'a' is the copy source of 'd'
$ hg status --copies --rev 'desc("i-0")' --rev 'desc("mCGm-0")'
A d
- a (filelog !)
+ a (no-compatibility !)
R a
$ hg status --copies --rev 'desc("i-0")' --rev 'desc("mGCm-0")'
A d
- a (filelog !)
+ a (no-compatibility !)
R a
$ hg status --copies --rev 'desc("c-1")' --rev 'desc("mCGm-0")'
A d
@@ -973,17 +973,17 @@
o 0 i-0 initial commit: a b h
-BROKEN: 'a' should be the the source of 'd' in the changeset centric algorithm too
+'a' is the the copy source of 'd'
$ hg status --copies --rev 'desc("i-0")' --rev 'desc("mCB-revert-m-0")'
M b
A d
- a (filelog !)
+ a (no-compatibility !)
R a
$ hg status --copies --rev 'desc("i-0")' --rev 'desc("mBC-revert-m-0")'
M b
A d
- a (filelog !)
+ a (no-compatibility !)
R a
$ hg status --copies --rev 'desc("c-1")' --rev 'desc("mCB-revert-m-0")'
M b
diff --git a/mercurial/copies.py b/mercurial/copies.py
--- a/mercurial/copies.py
+++ b/mercurial/copies.py
@@ -371,11 +371,15 @@
continue
# content from "major" wins, unless it is older
# than the branch point or there is a merge
- if (
- new_tt == other_tt
- or not isancestor(new_tt, other_tt)
- or dest in changes.merged
- ):
+ if new_tt == other_tt:
+ minor[dest] = value
+ elif value[1] is None and dest in changes.salvaged:
+ pass
+ elif other[1] is None and dest in changes.salvaged:
+ minor[dest] = value
+ elif not isancestor(new_tt, other_tt):
+ minor[dest] = value
+ elif dest in changes.merged:
minor[dest] = value
To: marmoute, #hg-reviewers
Cc: mercurial-patches
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mercurial-scm.org/pipermail/mercurial-patches/attachments/20201002/f208a881/attachment-0001.html>
More information about the Mercurial-patches
mailing list