comparison mercurial/cmdutil.py @ 48114:304267b077de

dirstate-item: use item's property instead of `state` in copy Differential Revision: https://phab.mercurial-scm.org/D11539
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Wed, 29 Sep 2021 18:32:21 +0200
parents 571dd808c6c8
children e8d6261513b9
comparison
equal deleted inserted replaced
48113:78e66649cdb3 48114:304267b077de
1640 abspath, absname = abstarget.rsplit(b'/', 1) 1640 abspath, absname = abstarget.rsplit(b'/', 1)
1641 abstarget = repo.dirstate.normalize(abspath) + b'/' + absname 1641 abstarget = repo.dirstate.normalize(abspath) + b'/' + absname
1642 reltarget = repo.pathto(abstarget, cwd) 1642 reltarget = repo.pathto(abstarget, cwd)
1643 target = repo.wjoin(abstarget) 1643 target = repo.wjoin(abstarget)
1644 src = repo.wjoin(abssrc) 1644 src = repo.wjoin(abssrc)
1645 state = repo.dirstate[abstarget] 1645 entry = repo.dirstate.get_entry(abstarget)
1646
1647 already_commited = entry.tracked and not entry.added
1646 1648
1647 scmutil.checkportable(ui, abstarget) 1649 scmutil.checkportable(ui, abstarget)
1648 1650
1649 # check for collisions 1651 # check for collisions
1650 prevsrc = targets.get(abstarget) 1652 prevsrc = targets.get(abstarget)
1670 ui.warn(_(b"%s: can't copy - same file\n") % reltarget) 1672 ui.warn(_(b"%s: can't copy - same file\n") % reltarget)
1671 return True # report a failure 1673 return True # report a failure
1672 exists = False 1674 exists = False
1673 samefile = True 1675 samefile = True
1674 1676
1675 if not after and exists or after and state in b'mn': 1677 if not after and exists or after and already_commited:
1676 if not opts[b'force']: 1678 if not opts[b'force']:
1677 if state in b'mn': 1679 if already_commited:
1678 msg = _(b'%s: not overwriting - file already committed\n') 1680 msg = _(b'%s: not overwriting - file already committed\n')
1679 if after: 1681 if after:
1680 flags = b'--after --force' 1682 flags = b'--after --force'
1681 else: 1683 else:
1682 flags = b'--force' 1684 flags = b'--force'