Mercurial > hg
changeset 46399:1d6d1a15a963
copies: simplify the conditional for _filter's case 3
The conditional is much simpler and the test are actually happier. This
clarification of the conditional will also be necessary to properly support tracing
more renames in a coming changeset.
Differential Revision: https://phab.mercurial-scm.org/D9795
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Fri, 15 Jan 2021 23:58:41 +0100 |
parents | 154ded9104f1 |
children | 7525e77b5eac |
files | mercurial/copies.py tests/test-copies.t |
diffstat | 2 files changed, 6 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/copies.py Fri Jan 15 23:49:51 2021 +0100 +++ b/mercurial/copies.py Fri Jan 15 23:58:41 2021 +0100 @@ -59,14 +59,13 @@ # Cases 1, 3, and 5 are then removed by _filter(). for k, v in list(t.items()): - # remove copies from files that didn't exist - if v not in src: # case 5 + if k == v: # case 3 del t[k] - # remove criss-crossed copies - elif k in src and v in dst: + elif v not in src: # case 5 + # remove copies from files that didn't exist del t[k] - # remove copies to files that were then removed elif k not in dst: # case 1 + # remove copies to files that were then removed del t[k]
--- a/tests/test-copies.t Fri Jan 15 23:49:51 2021 +0100 +++ b/tests/test-copies.t Fri Jan 15 23:58:41 2021 +0100 @@ -93,8 +93,8 @@ x y $ hg debugp1copies -r 1 x -> y -Incorrectly doesn't show the rename $ hg debugpathcopies 0 1 + x -> y (no-filelog !) Copy a file onto another file with same content. If metadata is stored in changeset, this does not produce a new filelog entry. The changeset's "files" entry should still list the file. @@ -111,8 +111,8 @@ x x2 $ hg debugp1copies -r 1 x -> x2 -Incorrectly doesn't show the rename $ hg debugpathcopies 0 1 + x -> x2 (no-filelog !) Rename file in a loop: x->y->z->x $ newrepo