hgext/mq.py
changeset 4332 4e5e1638b165
parent 4242 e1cdf5f6386e
child 4334 1cc5fc1d0994
child 4338 7ae02bce8de2
equal deleted inserted replaced
4331:ce52deed83bc 4332:4e5e1638b165
   455 
   455 
   456             (patcherr, files, fuzz) = self.patch(repo, pf)
   456             (patcherr, files, fuzz) = self.patch(repo, pf)
   457             patcherr = not patcherr
   457             patcherr = not patcherr
   458 
   458 
   459             if merge and files:
   459             if merge and files:
   460                 # Mark as merged and update dirstate parent info
   460                 # Mark as removed/merged and update dirstate parent info
   461                 repo.dirstate.update(repo.dirstate.filterfiles(files.keys()), 'm')
   461                 removed = []
       
   462                 merged = []
       
   463                 for f in files:
       
   464                     if os.path.exists(repo.dirstate.wjoin(f)):
       
   465                         merged.append(f)
       
   466                     else:
       
   467                         removed.append(f)
       
   468                 repo.dirstate.update(repo.dirstate.filterfiles(removed), 'r')
       
   469                 repo.dirstate.update(repo.dirstate.filterfiles(merged), 'm')
   462                 p1, p2 = repo.dirstate.parents()
   470                 p1, p2 = repo.dirstate.parents()
   463                 repo.dirstate.setparents(p1, merge)
   471                 repo.dirstate.setparents(p1, merge)
   464             files = patch.updatedir(self.ui, repo, files, wlock=wlock)
   472             files = patch.updatedir(self.ui, repo, files, wlock=wlock)
   465             n = repo.commit(files, message, user, date, force=1, lock=lock,
   473             n = repo.commit(files, message, user, date, force=1, lock=lock,
   466                             wlock=wlock)
   474                             wlock=wlock)