mercurial/localrepo.py
changeset 1415 c6e6ca96a033
parent 1402 9d2c2e6b32b5
child 1427 0980d77f5e9a
equal deleted inserted replaced
1414:32fde51910c0 1415:c6e6ca96a033
   534             if self.dirstate.state(f) not in 'ai':
   534             if self.dirstate.state(f) not in 'ai':
   535                 self.ui.warn(_("%s not added!\n") % f)
   535                 self.ui.warn(_("%s not added!\n") % f)
   536             else:
   536             else:
   537                 self.dirstate.forget([f])
   537                 self.dirstate.forget([f])
   538 
   538 
   539     def remove(self, list):
   539     def remove(self, list, unlink=False):
       
   540         if unlink:
       
   541             for f in list:
       
   542                 try:
       
   543                     util.unlink(self.wjoin(f))
       
   544                 except OSError, inst:
       
   545                     if inst.errno != errno.ENOENT: raise
   540         for f in list:
   546         for f in list:
   541             p = self.wjoin(f)
   547             p = self.wjoin(f)
   542             if os.path.exists(p):
   548             if os.path.exists(p):
   543                 self.ui.warn(_("%s still exists!\n") % f)
   549                 self.ui.warn(_("%s still exists!\n") % f)
   544             elif self.dirstate.state(f) == 'a':
   550             elif self.dirstate.state(f) == 'a':
  1262 
  1268 
  1263         remove.sort()
  1269         remove.sort()
  1264         for f in remove:
  1270         for f in remove:
  1265             self.ui.note(_("removing %s\n") % f)
  1271             self.ui.note(_("removing %s\n") % f)
  1266             try:
  1272             try:
  1267                 os.unlink(self.wjoin(f))
  1273                 util.unlink(self.wjoin(f))
  1268             except OSError, inst:
  1274             except OSError, inst:
  1269                 if inst.errno != errno.ENOENT:
  1275                 if inst.errno != errno.ENOENT:
  1270                     self.ui.warn(_("update failed to remove %s: %s!\n") %
  1276                     self.ui.warn(_("update failed to remove %s: %s!\n") %
  1271                                  (f, inst.strerror))
  1277                                  (f, inst.strerror))
  1272             # try removing directories that might now be empty
       
  1273             try: os.removedirs(os.path.dirname(self.wjoin(f)))
       
  1274             except: pass
       
  1275         if moddirstate:
  1278         if moddirstate:
  1276             if branch_merge:
  1279             if branch_merge:
  1277                 self.dirstate.update(remove, 'r')
  1280                 self.dirstate.update(remove, 'r')
  1278             else:
  1281             else:
  1279                 self.dirstate.forget(remove)
  1282                 self.dirstate.forget(remove)