Thu, 14 Feb 2019 22:46:18 -0800 copies: filter out copies when target is not in destination manifest
Martin von Zweigbergk <martinvonz@google.com> [Thu, 14 Feb 2019 22:46:18 -0800] rev 41754
copies: filter out copies when target is not in destination manifest When chaining a series of commits that copied a file with a series that removed the destination file, we would still include the copy in the result. Similar to the previous patch, I have checked that `hg status --copies` is not affected by this bug, but I wouldn't be surprised if some commands are. Differential Revision: https://phab.mercurial-scm.org/D5989
Tue, 19 Feb 2019 10:45:22 -0800 copies: make _backwardrenames() filter out copies by destination
Martin von Zweigbergk <martinvonz@google.com> [Tue, 19 Feb 2019 10:45:22 -0800] rev 41753
copies: make _backwardrenames() filter out copies by destination As shown by the test case, _backwardrenames() doesn't filter by the matcher. It doesn't show up in `hg status --copies` because that only prints files changed between the two commits. I wouldn't be surprised if some other command that replies on pathcopies() was broken before this patch, but I haven't bothered to check other commands. Differential Revision: https://phab.mercurial-scm.org/D5988
Tue, 19 Feb 2019 10:31:06 -0800 copies: respect narrowmatcher in "parent -> working dir" case
Martin von Zweigbergk <martinvonz@google.com> [Tue, 19 Feb 2019 10:31:06 -0800] rev 41752
copies: respect narrowmatcher in "parent -> working dir" case I don't know when this case happens and we don't seem to have tests for it, but let's fix it anyway since I happened to notice it. Differential Revision: https://phab.mercurial-scm.org/D5987
Wed, 20 Feb 2019 15:39:01 -0800 tests: add tests of pathcopies()
Martin von Zweigbergk <martinvonz@google.com> [Wed, 20 Feb 2019 15:39:01 -0800] rev 41751
tests: add tests of pathcopies() I'm working on support for storing copy metadata in the changeset instead of in the filelog. When storing it in the changeset, it will obviously be efficient to get the copy metadata for all files in a single changeset, but it will be more expensive to get the copy metadata all revisions of a single file. Some algorithms will then need to be optimized differently. The first method I'm going to rewrite is pathcopies(). This commit adds many tests for pathcopies(), so we can run the tests with both old and new versions of the code, as well as with metadata stored in filelog or in changeset (later). They use the debugpathcopies command I recently added (with no tests when it was added). They show a few bugs and few cases of slightly weird behavior. I'll fix the bugs in the next few commits. Differential Revision: https://phab.mercurial-scm.org/D5986
(0) -30000 -10000 -3000 -1000 -300 -100 -30 -10 -4 +4 +10 +30 +100 +300 +1000 +3000 +10000 tip