mercurial/commands.py
changeset 1712 21dcf38e5d7d
parent 1710 c65113f3627a
child 1720 55017891051b
child 1781 284fc722c342
equal deleted inserted replaced
1711:8959700c2b19 1712:21dcf38e5d7d
   517     Add all new files and remove all missing files from the repository.
   517     Add all new files and remove all missing files from the repository.
   518 
   518 
   519     New files are ignored if they match any of the patterns in .hgignore. As
   519     New files are ignored if they match any of the patterns in .hgignore. As
   520     with add, these changes take effect at the next commit.
   520     with add, these changes take effect at the next commit.
   521     """
   521     """
       
   522     return addremove_lock(ui, repo, pats, opts)
       
   523 
       
   524 def addremove_lock(ui, repo, pats, opts, wlock=None):
   522     add, remove = [], []
   525     add, remove = [], []
   523     for src, abs, rel, exact in walk(repo, pats, opts):
   526     for src, abs, rel, exact in walk(repo, pats, opts):
   524         if src == 'f' and repo.dirstate.state(abs) == '?':
   527         if src == 'f' and repo.dirstate.state(abs) == '?':
   525             add.append(abs)
   528             add.append(abs)
   526             if ui.verbose or not exact:
   529             if ui.verbose or not exact:
   527                 ui.status(_('adding %s\n') % ((pats and rel) or abs))
   530                 ui.status(_('adding %s\n') % ((pats and rel) or abs))
   528         if repo.dirstate.state(abs) != 'r' and not os.path.exists(rel):
   531         if repo.dirstate.state(abs) != 'r' and not os.path.exists(rel):
   529             remove.append(abs)
   532             remove.append(abs)
   530             if ui.verbose or not exact:
   533             if ui.verbose or not exact:
   531                 ui.status(_('removing %s\n') % ((pats and rel) or abs))
   534                 ui.status(_('removing %s\n') % ((pats and rel) or abs))
   532     repo.add(add)
   535     repo.add(add, wlock=wlock)
   533     repo.remove(remove)
   536     repo.remove(remove, wlock=wlock)
   534 
   537 
   535 def annotate(ui, repo, *pats, **opts):
   538 def annotate(ui, repo, *pats, **opts):
   536     """show changeset information per file line
   539     """show changeset information per file line
   537 
   540 
   538     List changes in files, showing the revision id responsible for each line
   541     List changes in files, showing the revision id responsible for each line