diff --git a/mercurial/copies.py b/mercurial/copies.py --- a/mercurial/copies.py +++ b/mercurial/copies.py @@ -246,7 +246,7 @@ def _committedforwardcopies(a, b, base, return cm def _changesetforwardcopies(a, b, match): - if a.rev() == node.nullrev: + if a.rev() in (node.nullrev, b.rev()): return {} repo = a.repo() diff --git a/tests/test-copies.t b/tests/test-copies.t --- a/tests/test-copies.t +++ b/tests/test-copies.t @@ -58,6 +58,17 @@ Test filtering copies by path. We do fil x -> y $ hg debugpathcopies 1 0 y +Copies not including commit changes + $ newrepo + $ echo x > x + $ hg ci -Aqm 'add x' + $ hg mv x y + $ hg debugpathcopies . . + $ hg debugpathcopies . 'wdir()' + x -> y + $ hg debugpathcopies 'wdir()' . + y -> x + Copy a file onto another file $ newrepo $ echo x > x