Mercurial > hg-stable
changeset 35430:e54f02ec6a05
copies: group wdir-handling in one place
I think this makes it both easier to follow and shorter.
Differential Revision: https://phab.mercurial-scm.org/D1698
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Thu, 14 Dec 2017 00:25:03 -0800 |
parents | 8801cdcea01f |
children | 702e6d2642e7 |
files | mercurial/copies.py |
diffstat | 1 files changed, 6 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/copies.py Thu Dec 14 00:18:38 2017 -0800 +++ b/mercurial/copies.py Thu Dec 14 00:25:03 2017 -0800 @@ -195,21 +195,15 @@ """find {dst@b: src@a} copy mapping where a is an ancestor of b""" # check for working copy - w = None if b.rev() is None: - w = b - b = w.p1() - if a == b: + if a == b.p1(): # short-circuit to avoid issues with merge states - return _dirstatecopies(w, match) + return _dirstatecopies(b, match) - cm = _committedforwardcopies(a, b, match) - - # combine copies from dirstate if necessary - if w is not None: - cm = _chain(a, w, cm, _dirstatecopies(w, match)) - - return cm + cm = _committedforwardcopies(a, b.p1(), match) + # combine copies from dirstate if necessary + return _chain(a, b, cm, _dirstatecopies(b, match)) + return _committedforwardcopies(a, b, match) def _backwardrenames(a, b): if a._repo.ui.config('experimental', 'copytrace') == 'off':