hgext/mq.py
changeset 3699 4bafcf7aeb32
parent 3698 a9090b264250
child 3700 4c158de5f245
equal deleted inserted replaced
3698:a9090b264250 3699:4bafcf7aeb32
   913             for f in r:
   913             for f in r:
   914                 getfile(f, mmap[f])
   914                 getfile(f, mmap[f])
   915                 util.set_exec(repo.wjoin(f), mmap.execf(f))
   915                 util.set_exec(repo.wjoin(f), mmap.execf(f))
   916             repo.dirstate.update(m + r, 'n')
   916             repo.dirstate.update(m + r, 'n')
   917             for f in a:
   917             for f in a:
   918                 try: os.unlink(repo.wjoin(f))
   918                 try:
   919                 except: raise
   919                     os.unlink(repo.wjoin(f))
       
   920                 except OSError, e:
       
   921                     if e.errno != errno.ENOENT:
       
   922                         raise
   920                 try: os.removedirs(os.path.dirname(repo.wjoin(f)))
   923                 try: os.removedirs(os.path.dirname(repo.wjoin(f)))
   921                 except: pass
   924                 except: pass
   922             if a:
   925             if a:
   923                 repo.dirstate.forget(a)
   926                 repo.dirstate.forget(a)
   924             repo.dirstate.setparents(qp, revlog.nullid)
   927             repo.dirstate.setparents(qp, revlog.nullid)
  1059             self.applied[-1] = statusentry(revlog.hex(n), patchfn)
  1062             self.applied[-1] = statusentry(revlog.hex(n), patchfn)
  1060             self.applied_dirty = 1
  1063             self.applied_dirty = 1
  1061         else:
  1064         else:
  1062             self.printdiff(repo, patchparent, fp=patchf)
  1065             self.printdiff(repo, patchparent, fp=patchf)
  1063             patchf.close()
  1066             patchf.close()
       
  1067             added = repo.status()[1]
       
  1068             for a in added:
       
  1069                 f = repo.wjoin(a)
       
  1070                 try:
       
  1071                     os.unlink(f)
       
  1072                 except OSError, e:
       
  1073                     if e.errno != errno.ENOENT:
       
  1074                         raise
       
  1075                 try: os.removedirs(os.path.dirname(f))
       
  1076                 except: pass
       
  1077             # forget the file copies in the dirstate
       
  1078             # push should readd the files later on
       
  1079             repo.dirstate.forget(added)
  1064             self.pop(repo, force=True, wlock=wlock)
  1080             self.pop(repo, force=True, wlock=wlock)
  1065             self.push(repo, force=True, wlock=wlock)
  1081             self.push(repo, force=True, wlock=wlock)
  1066 
  1082 
  1067     def init(self, repo, create=False):
  1083     def init(self, repo, create=False):
  1068         if os.path.isdir(self.path):
  1084         if os.path.isdir(self.path):