mercurial/localrepo.py
changeset 1447 508a3f559553
parent 1427 0980d77f5e9a
child 1448 182879d71922
equal deleted inserted replaced
1446:4babaa52badf 1447:508a3f559553
   552                 self.dirstate.forget([f])
   552                 self.dirstate.forget([f])
   553             elif f not in self.dirstate:
   553             elif f not in self.dirstate:
   554                 self.ui.warn(_("%s not tracked!\n") % f)
   554                 self.ui.warn(_("%s not tracked!\n") % f)
   555             else:
   555             else:
   556                 self.dirstate.update([f], "r")
   556                 self.dirstate.update([f], "r")
       
   557 
       
   558     def undelete(self, list):
       
   559         pl = self.dirstate.parents()
       
   560         if pl[1] != nullid:
       
   561             self.ui.warn("aborting: outstanding uncommitted merges\n")
       
   562             return 1
       
   563         p = pl[0]
       
   564         mn = self.changelog.read(p)[0]
       
   565         mf = self.manifest.readflags(mn)
       
   566         m = self.manifest.read(mn)
       
   567         for f in list:
       
   568             if self.dirstate.state(f) not in  "r":
       
   569                 self.ui.warn("%s not removed!\n" % f)
       
   570             else:
       
   571                 t = self.file(f).read(m[f])
       
   572                 try:
       
   573                     self.wwrite(f, t)
       
   574                 except IOError, e:
       
   575                     if e.errno != errno.ENOENT:
       
   576                         raise
       
   577                     os.makedirs(os.path.dirname(self.wjoin(f)))
       
   578                     self.wwrite(f, t)
       
   579                 util.set_exec(self.wjoin(f), mf[f])
       
   580                 self.dirstate.update([f], "n")
   557 
   581 
   558     def copy(self, source, dest):
   582     def copy(self, source, dest):
   559         p = self.wjoin(dest)
   583         p = self.wjoin(dest)
   560         if not os.path.exists(p):
   584         if not os.path.exists(p):
   561             self.ui.warn(_("%s does not exist!\n") % dest)
   585             self.ui.warn(_("%s does not exist!\n") % dest)