comparison mercurial/localrepo.py @ 1415:c6e6ca96a033

refactor some unlink/remove code and make sure we prune empty dir
author Benoit Boissinot <benoit.boissinot@ens-lyon.org>
date Wed, 19 Oct 2005 00:10:52 -0700
parents 9d2c2e6b32b5
children 0980d77f5e9a
comparison
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)