Martin von Zweigbergk <martinvonz@google.com> [Wed, 26 Jun 2019 05:20:02 -0700] rev 42527
copies: document how 'copies' dict instances are reused
We avoid copying these instances as much as we can, so it's not
obvious what's safe to do with them. This patch tries to explain what
is safe and what is not.
Differential Revision: https://phab.mercurial-scm.org/D6578
Martin von Zweigbergk <martinvonz@google.com> [Thu, 20 Jun 2019 10:58:14 -0700] rev 42526
copies: simplify merging of copy dicts on merge commits
After we removed some filtering in 35d674a3d5db (copies: don't filter
out copy targets created on other side of merge commit, 2019-04-18),
we will always include all entries from "copies1", so we can simplify
the code based on that.
Differential Revision: https://phab.mercurial-scm.org/D6561
Martin von Zweigbergk <martinvonz@google.com> [Thu, 20 Jun 2019 10:42:16 -0700] rev 42525
copies: remove a redundant matcher filtering in _changesetforwardcopies()
We filter before pushing items on the queue, so we don't need to
filter after popping.
Differential Revision: https://phab.mercurial-scm.org/D6560
Martin von Zweigbergk <martinvonz@google.com> [Thu, 20 Jun 2019 10:51:23 -0700] rev 42524
copies: delete obsolete comment in _changesetforwardcopies()
IIRC, the comment applied to the filtering we did before 35d674a3d5db
(copies: don't filter out copy targets created on other side of merge
commit, 2019-04-18).
Differential Revision: https://phab.mercurial-scm.org/D6559
Augie Fackler <augie@google.com> [Mon, 24 Jun 2019 14:28:21 -0400] rev 42523
merge with stable
Martin von Zweigbergk <martinvonz@google.com> [Wed, 19 Jun 2019 23:14:10 -0700] rev 42522
copies: avoid reusing the same variable for two different copy dicts
"childcopies" is initally the copies the current changeset to one of
its children and then we reassign it with the copies from the start of
the chain to the child. Let's use different names for these two
things.
Differential Revision: https://phab.mercurial-scm.org/D6564
Martin von Zweigbergk <martinvonz@google.com> [Fri, 21 Jun 2019 09:33:57 -0700] rev 42521
drawdag: don't crash when writing copy info to changesets
When writing copies to the changeset, localrepo.commitctx() will call
ctx.p1copies() and ctx.p2copies(). These crashed on simplecommitctx
because they ended up trying to access the manifest. drawdag doesn't
support copies at all, so we can simply override the methods to return
empty dicts.
Differential Revision: https://phab.mercurial-scm.org/D6565
Martin von Zweigbergk <martinvonz@google.com> [Fri, 21 Jun 2019 23:35:04 -0700] rev 42520
merge with stable
Martin von Zweigbergk <martinvonz@google.com> [Wed, 19 Jun 2019 10:19:32 -0700] rev 42519
log: pass getcopies() function instead of getrenamed() to displayer (API)
This reduces the duplication between the two displayer functions (and
between them and scmutil.getcopiesfn()). It's still more code than two
patches ago, but there's less duplication.
Differential Revision: https://phab.mercurial-scm.org/D6546
Martin von Zweigbergk <martinvonz@google.com> [Wed, 19 Jun 2019 09:59:45 -0700] rev 42518
copies: create helper for getting all copies for changeset
There are a few places where we get all the copies for a changeset (at
least the {file_copies} template and in two places in `hg log
--copies` code). These places currently call scmutil.getrenamedfn() to
get a caching "getrenamed" function. They all use it in a similar
way. We will be able to reuse more code by having a function for
getting all the copies for a changeset. This patch introduces such a
function. It uses it in the {file_copies} template to show that it
works. It relies on the existing scmutil.getrenamedfn() for caching in
the filelog-centric case.
Differential Revision: https://phab.mercurial-scm.org/D6545