# HG changeset patch # User Pierre-Yves David # Date 1632933372 -7200 # Node ID 8f452fecd0a48104d666ec234be29e9ec60593d6 # Parent 304267b077de62b8191a5a7218193c3a672b5d11 dirstate-item: use item's property when computing a copies Differential Revision: https://phab.mercurial-scm.org/D11540 diff -r 304267b077de -r 8f452fecd0a4 mercurial/scmutil.py --- a/mercurial/scmutil.py Wed Sep 29 18:32:21 2021 +0200 +++ b/mercurial/scmutil.py Wed Sep 29 18:36:12 2021 +0200 @@ -1455,10 +1455,11 @@ """ origsrc = repo.dirstate.copied(src) or src if dst == origsrc: # copying back a copy? - if repo.dirstate[dst] not in b'mn' and not dryrun: + entry = repo.dirstate.get_entry(dst) + if (entry.added or not entry.tracked) and not dryrun: repo.dirstate.set_tracked(dst) else: - if repo.dirstate[origsrc] == b'a' and origsrc == src: + if repo.dirstate.get_entry(origsrc).added and origsrc == src: if not ui.quiet: ui.warn( _( @@ -1467,7 +1468,7 @@ ) % (repo.pathto(origsrc, cwd), repo.pathto(dst, cwd)) ) - if repo.dirstate[dst] in b'?r' and not dryrun: + if not repo.dirstate.get_entry(dst).tracked and not dryrun: wctx.add([dst]) elif not dryrun: wctx.copy(origsrc, dst)