This is an archive of the discontinued Mercurial Phabricator instance.

copy: to find copy source, walk parent of revision we're marking copies in
ClosedPublic

Authored by martinvonz on May 6 2020, 3:01 PM.

Details

Summary

As shown in the previous patch, hg cp --after --at-rev . src dst
fails if src is not in .. It seems obvious that you should always
walk the *parent* of the revision you're marking copies in, but that's
not how it was done for the working copy, and I didn't think to change
it when marking copies in a non-working-copy commit.

This patch fixes that by walking the parent commit instead, but only
if we're marking copies for a non-working-copy commit. We need to
leave the working-copy code unchanged because it depends on the weird
behavior of workingctx.walk(). With these changes, there's very
little overlap between the working-copy version and the
non-working-copy version of walkpats(), but I've refrained from
cleaning that up on the stable branch.

Diff Detail

Repository
rHG Mercurial
Branch
stable
Lint
No Linters Available
Unit
No Unit Test Coverage