diff -r bcb4b5c5964b -r a48f6f18dc6d mercurial/copies.py --- a/mercurial/copies.py Fri Jun 28 09:01:45 2019 -0700 +++ b/mercurial/copies.py Tue Jun 25 13:33:49 2019 -0700 @@ -326,8 +326,10 @@ if b.rev() is None: cm = _committedforwardcopies(a, b.p1(), match) # combine copies from dirstate if necessary - return _chainandfilter(a, b, cm, _dirstatecopies(b._repo, match)) - return _committedforwardcopies(a, b, match) + copies = _chainandfilter(a, b, cm, _dirstatecopies(b._repo, match)) + else: + copies = _committedforwardcopies(a, b, match) + return copies def _backwardrenames(a, b, match): if a._repo.ui.config('experimental', 'copytrace') == 'off': @@ -366,15 +368,17 @@ if y.rev() is None and x == y.p1(): # short-circuit to avoid issues with merge states return _dirstatecopies(repo, match) - return _forwardcopies(x, y, match=match) - if a == y: + copies = _forwardcopies(x, y, match=match) + elif a == y: if debug: repo.ui.debug('debug.copies: search mode: backward\n') - return _backwardrenames(x, y, match=match) - if debug: - repo.ui.debug('debug.copies: search mode: combined\n') - return _chainandfilter(x, y, _backwardrenames(x, a, match=match), - _forwardcopies(a, y, match=match)) + copies = _backwardrenames(x, y, match=match) + else: + if debug: + repo.ui.debug('debug.copies: search mode: combined\n') + copies = _chainandfilter(x, y, _backwardrenames(x, a, match=match), + _forwardcopies(a, y, match=match)) + return copies def mergecopies(repo, c1, c2, base): """