From patchwork Tue Aug 20 16:29:24 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: D6751: test: show invalid copies when turning off copies-in-changeset From: phabricator X-Patchwork-Id: 41363 Message-Id: To: Phabricator Cc: mercurial-devel@mercurial-scm.org Date: Tue, 20 Aug 2019 16:29:24 +0000 martinvonz created this revision. Herald added a subscriber: mercurial-devel. Herald added a reviewer: hg-reviewers. REVISION SUMMARY If you turn on copies in changesets and write a commit with a copy, then turn it off and amend the commit while undoing the copy, the invalid copy information will remain. The read path doesn't crash in invalid copy data, but it seems better to not produce the invalid data. REPOSITORY rHG Mercurial REVISION DETAIL https://phab.mercurial-scm.org/D6751 AFFECTED FILES tests/test-copies-in-changeset.t CHANGE DETAILS To: martinvonz, #hg-reviewers Cc: mercurial-devel diff --git a/tests/test-copies-in-changeset.t b/tests/test-copies-in-changeset.t --- a/tests/test-copies-in-changeset.t +++ b/tests/test-copies-in-changeset.t @@ -133,6 +133,20 @@ a -> j $ hg showcopies --config experimental.copies.read-from=filelog-only a -> j +Existing copy information in the changeset gets removed on amend and writing +copy information on to the filelog + $ hg ci --amend -m 'copy a to j, v2' \ + > --config experimental.copies.write-to=filelog-only + saved backup bundle to $TESTTMP/repo/.hg/strip-backup/dd7bb9581359-a6e6b6d2-amend.hg + $ hg changesetcopies + files: j + filesadded: 0 + filesremoved: + + p1copies: 0\x00a (esc) + p2copies: + $ hg showcopies --config experimental.copies.read-from=filelog-only + a -> j The entries should be written to extras even if they're empty (so the client won't have to fall back to reading from filelogs) $ echo x >> j