mercurial/commands.py
changeset 874 d4cb383e7de7
parent 871 c2e77581bc84
parent 873 4480e035d838
child 878 781266a78fe1
equal deleted inserted replaced
871:c2e77581bc84 874:d4cb383e7de7
   391 def addremove(ui, repo, *pats, **opts):
   391 def addremove(ui, repo, *pats, **opts):
   392     """add all new files, delete all missing files"""
   392     """add all new files, delete all missing files"""
   393     q = dict(zip(pats, pats))
   393     q = dict(zip(pats, pats))
   394     add, remove = [], []
   394     add, remove = [], []
   395     for src, abs, rel in walk(repo, pats, opts):
   395     for src, abs, rel in walk(repo, pats, opts):
   396         if src == 'f':
   396         if src == 'f' and repo.dirstate.state(abs) == '?':
   397             if repo.dirstate.state(abs) == '?':
   397             add.append(abs)
   398                 add.append(abs)
   398             if rel not in q: ui.status('adding ', rel, '\n')
   399                 if rel not in q: ui.status('adding ', rel, '\n')
   399         if repo.dirstate.state(abs) != 'r' and not os.path.exists(rel):
   400         elif repo.dirstate.state(abs) != 'r' and not os.path.exists(rel):
       
   401             remove.append(abs)
   400             remove.append(abs)
   402             if rel not in q: ui.status('removing ', rel, '\n')
   401             if rel not in q: ui.status('removing ', rel, '\n')
   403     repo.add(add)
   402     repo.add(add)
   404     repo.remove(remove)
   403     repo.remove(remove)
   405 
   404 
   630 
   629 
   631     if len(revs) > 2:
   630     if len(revs) > 2:
   632         raise util.Abort("too many revisions to diff")
   631         raise util.Abort("too many revisions to diff")
   633 
   632 
   634     files = []
   633     files = []
   635     roots, match, results = makewalk(repo, pats, opts)
   634     match = util.always
   636     for src, abs, rel in results:
   635     if pats:
   637         files.append(abs)
   636         roots, match, results = makewalk(repo, pats, opts)
       
   637         for src, abs, rel in results:
       
   638             files.append(abs)
   638     dodiff(sys.stdout, ui, repo, files, *revs, **{'match': match})
   639     dodiff(sys.stdout, ui, repo, files, *revs, **{'match': match})
   639 
   640 
   640 def doexport(ui, repo, changeset, seqno, total, revwidth, opts):
   641 def doexport(ui, repo, changeset, seqno, total, revwidth, opts):
   641     node = repo.lookup(changeset)
   642     node = repo.lookup(changeset)
   642     prev, other = repo.changelog.parents(node)
   643     prev, other = repo.changelog.parents(node)