mercurial/cmdutil.py
changeset 10606 5868dd69fb03
parent 10463 5ddde896a19d
child 10607 f3ac9d6105ee
equal deleted inserted replaced
10605:3077ee5ca750 10606:5868dd69fb03
   354         # for finding renames
   354         # for finding renames
   355         elif repo.dirstate[abs] == 'r':
   355         elif repo.dirstate[abs] == 'r':
   356             removed.append(abs)
   356             removed.append(abs)
   357         elif repo.dirstate[abs] == 'a':
   357         elif repo.dirstate[abs] == 'a':
   358             added.append(abs)
   358             added.append(abs)
   359     if not dry_run:
   359     copies = {}
   360         repo.remove(deleted)
       
   361         repo.add(unknown)
       
   362     if similarity > 0:
   360     if similarity > 0:
   363         for old, new, score in findrenames(repo, added + unknown,
   361         for old, new, score in findrenames(repo, added + unknown,
   364                                            removed + deleted, similarity):
   362                                            removed + deleted, similarity):
   365             if repo.ui.verbose or not m.exact(old) or not m.exact(new):
   363             if repo.ui.verbose or not m.exact(old) or not m.exact(new):
   366                 repo.ui.status(_('recording removal of %s as rename to %s '
   364                 repo.ui.status(_('recording removal of %s as rename to %s '
   367                                  '(%d%% similar)\n') %
   365                                  '(%d%% similar)\n') %
   368                                (m.rel(old), m.rel(new), score * 100))
   366                                (m.rel(old), m.rel(new), score * 100))
   369             if not dry_run:
   367             copies[new] = old
       
   368 
       
   369     if not dry_run:
       
   370         wlock = repo.wlock()
       
   371         try:
       
   372             repo.remove(deleted)
       
   373             repo.add(unknown)
       
   374             for new, old in copies.iteritems():
   370                 repo.copy(old, new)
   375                 repo.copy(old, new)
       
   376         finally:
       
   377             wlock.release()
   371 
   378 
   372 def copy(ui, repo, pats, opts, rename=False):
   379 def copy(ui, repo, pats, opts, rename=False):
   373     # called with the repo lock held
   380     # called with the repo lock held
   374     #
   381     #
   375     # hgsep => pathname that uses "/" to separate directories
   382     # hgsep => pathname that uses "/" to separate directories