Mercurial > public > mercurial-scm > hg
comparison mercurial/copies.py @ 42592:a48f6f18dc6d
copies: remove most early returns from pathcopies() and _forwardcopies()
I want to split up _chainandfilter() more so the call to _filter()
consistently happens at the end of pathcopies(). This prepares for
that change.
Differential Revision: https://phab.mercurial-scm.org/D6601
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Tue, 25 Jun 2019 13:33:49 -0700 |
parents | bcb4b5c5964b |
children | 11ceb1b8fd74 |
comparison
equal
deleted
inserted
replaced
42591:bcb4b5c5964b | 42592:a48f6f18dc6d |
---|---|
324 match = a.repo().narrowmatch(match) | 324 match = a.repo().narrowmatch(match) |
325 # check for working copy | 325 # check for working copy |
326 if b.rev() is None: | 326 if b.rev() is None: |
327 cm = _committedforwardcopies(a, b.p1(), match) | 327 cm = _committedforwardcopies(a, b.p1(), match) |
328 # combine copies from dirstate if necessary | 328 # combine copies from dirstate if necessary |
329 return _chainandfilter(a, b, cm, _dirstatecopies(b._repo, match)) | 329 copies = _chainandfilter(a, b, cm, _dirstatecopies(b._repo, match)) |
330 return _committedforwardcopies(a, b, match) | 330 else: |
331 copies = _committedforwardcopies(a, b, match) | |
332 return copies | |
331 | 333 |
332 def _backwardrenames(a, b, match): | 334 def _backwardrenames(a, b, match): |
333 if a._repo.ui.config('experimental', 'copytrace') == 'off': | 335 if a._repo.ui.config('experimental', 'copytrace') == 'off': |
334 return {} | 336 return {} |
335 | 337 |
364 if debug: | 366 if debug: |
365 repo.ui.debug('debug.copies: search mode: forward\n') | 367 repo.ui.debug('debug.copies: search mode: forward\n') |
366 if y.rev() is None and x == y.p1(): | 368 if y.rev() is None and x == y.p1(): |
367 # short-circuit to avoid issues with merge states | 369 # short-circuit to avoid issues with merge states |
368 return _dirstatecopies(repo, match) | 370 return _dirstatecopies(repo, match) |
369 return _forwardcopies(x, y, match=match) | 371 copies = _forwardcopies(x, y, match=match) |
370 if a == y: | 372 elif a == y: |
371 if debug: | 373 if debug: |
372 repo.ui.debug('debug.copies: search mode: backward\n') | 374 repo.ui.debug('debug.copies: search mode: backward\n') |
373 return _backwardrenames(x, y, match=match) | 375 copies = _backwardrenames(x, y, match=match) |
374 if debug: | 376 else: |
375 repo.ui.debug('debug.copies: search mode: combined\n') | 377 if debug: |
376 return _chainandfilter(x, y, _backwardrenames(x, a, match=match), | 378 repo.ui.debug('debug.copies: search mode: combined\n') |
377 _forwardcopies(a, y, match=match)) | 379 copies = _chainandfilter(x, y, _backwardrenames(x, a, match=match), |
380 _forwardcopies(a, y, match=match)) | |
381 return copies | |
378 | 382 |
379 def mergecopies(repo, c1, c2, base): | 383 def mergecopies(repo, c1, c2, base): |
380 """ | 384 """ |
381 Finds moves and copies between context c1 and c2 that are relevant for | 385 Finds moves and copies between context c1 and c2 that are relevant for |
382 merging. 'base' will be used as the merge base. | 386 merging. 'base' will be used as the merge base. |