hgext/mq.py
changeset 4341 f4a1eac52d43
parent 4243 815ad65cfca9
parent 4332 4e5e1638b165
child 4339 077aafddd35f
equal deleted inserted replaced
4325:aa26759c6fb3 4341:f4a1eac52d43
   469 
   469 
   470             (patcherr, files, fuzz) = self.patch(repo, pf)
   470             (patcherr, files, fuzz) = self.patch(repo, pf)
   471             patcherr = not patcherr
   471             patcherr = not patcherr
   472 
   472 
   473             if merge and files:
   473             if merge and files:
   474                 # Mark as merged and update dirstate parent info
   474                 # Mark as removed/merged and update dirstate parent info
   475                 repo.dirstate.update(repo.dirstate.filterfiles(files.keys()), 'm')
   475                 removed = []
       
   476                 merged = []
       
   477                 for f in files:
       
   478                     if os.path.exists(repo.dirstate.wjoin(f)):
       
   479                         merged.append(f)
       
   480                     else:
       
   481                         removed.append(f)
       
   482                 repo.dirstate.update(repo.dirstate.filterfiles(removed), 'r')
       
   483                 repo.dirstate.update(repo.dirstate.filterfiles(merged), 'm')
   476                 p1, p2 = repo.dirstate.parents()
   484                 p1, p2 = repo.dirstate.parents()
   477                 repo.dirstate.setparents(p1, merge)
   485                 repo.dirstate.setparents(p1, merge)
   478             files = patch.updatedir(self.ui, repo, files, wlock=wlock)
   486             files = patch.updatedir(self.ui, repo, files, wlock=wlock)
   479             n = repo.commit(files, message, user, date, force=1, lock=lock,
   487             n = repo.commit(files, message, user, date, force=1, lock=lock,
   480                             wlock=wlock)
   488                             wlock=wlock)