Mercurial > public > mercurial-scm > hg-stable
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) |