Show More
@@ -36,11 +36,7 b' def reporemove(repo, list, unlink=False)' | |||||
36 | try: |
|
36 | try: | |
37 | if unlink: |
|
37 | if unlink: | |
38 | for f in list: |
|
38 | for f in list: | |
39 | try: |
|
39 | util.unlinkpath(repo.wjoin(f), ignoremissing=True) | |
40 | util.unlinkpath(repo.wjoin(f)) |
|
|||
41 | except OSError, inst: |
|
|||
42 | if inst.errno != errno.ENOENT: |
|
|||
43 | raise |
|
|||
44 | repo[None].forget(list) |
|
40 | repo[None].forget(list) | |
45 | finally: |
|
41 | finally: | |
46 | wlock.release() |
|
42 | wlock.release() |
@@ -1329,11 +1329,7 b' class queue(object):' | |||||
1329 | # created while patching |
|
1329 | # created while patching | |
1330 | for f in all_files: |
|
1330 | for f in all_files: | |
1331 | if f not in repo.dirstate: |
|
1331 | if f not in repo.dirstate: | |
1332 | try: |
|
1332 | util.unlinkpath(repo.wjoin(f), ignoremissing=True) | |
1333 | util.unlinkpath(repo.wjoin(f)) |
|
|||
1334 | except OSError, inst: |
|
|||
1335 | if inst.errno != errno.ENOENT: |
|
|||
1336 | raise |
|
|||
1337 | self.ui.warn(_('done\n')) |
|
1333 | self.ui.warn(_('done\n')) | |
1338 | raise |
|
1334 | raise | |
1339 |
|
1335 | |||
@@ -1442,11 +1438,7 b' class queue(object):' | |||||
1442 | self.backup(repo, tobackup) |
|
1438 | self.backup(repo, tobackup) | |
1443 |
|
1439 | |||
1444 | for f in a: |
|
1440 | for f in a: | |
1445 | try: |
|
1441 | util.unlinkpath(repo.wjoin(f), ignoremissing=True) | |
1446 | util.unlinkpath(repo.wjoin(f)) |
|
|||
1447 | except OSError, e: |
|
|||
1448 | if e.errno != errno.ENOENT: |
|
|||
1449 | raise |
|
|||
1450 | repo.dirstate.drop(f) |
|
1442 | repo.dirstate.drop(f) | |
1451 | for f in m + r: |
|
1443 | for f in m + r: | |
1452 | fctx = ctx[f] |
|
1444 | fctx = ctx[f] |
@@ -4957,11 +4957,7 b' def remove(ui, repo, *pats, **opts):' | |||||
4957 | for f in list: |
|
4957 | for f in list: | |
4958 | if f in added: |
|
4958 | if f in added: | |
4959 | continue # we never unlink added files on remove |
|
4959 | continue # we never unlink added files on remove | |
4960 | try: |
|
4960 | util.unlinkpath(repo.wjoin(f), ignoremissing=True) | |
4961 | util.unlinkpath(repo.wjoin(f)) |
|
|||
4962 | except OSError, inst: |
|
|||
4963 | if inst.errno != errno.ENOENT: |
|
|||
4964 | raise |
|
|||
4965 | repo[None].forget(list) |
|
4961 | repo[None].forget(list) | |
4966 | finally: |
|
4962 | finally: | |
4967 | wlock.release() |
|
4963 | wlock.release() |
@@ -382,11 +382,10 b' def applyupdates(repo, action, wctx, mct' | |||||
382 | if f == '.hgsubstate': # subrepo states need updating |
|
382 | if f == '.hgsubstate': # subrepo states need updating | |
383 | subrepo.submerge(repo, wctx, mctx, wctx, overwrite) |
|
383 | subrepo.submerge(repo, wctx, mctx, wctx, overwrite) | |
384 | try: |
|
384 | try: | |
385 | util.unlinkpath(repo.wjoin(f)) |
|
385 | util.unlinkpath(repo.wjoin(f), ignoremissing=True) | |
386 | except OSError, inst: |
|
386 | except OSError, inst: | |
387 | if inst.errno != errno.ENOENT: |
|
387 | repo.ui.warn(_("update failed to remove %s: %s!\n") % | |
388 | repo.ui.warn(_("update failed to remove %s: %s!\n") % |
|
388 | (f, inst.strerror)) | |
389 | (f, inst.strerror)) |
|
|||
390 | removed += 1 |
|
389 | removed += 1 | |
391 | elif m == "m": # merge |
|
390 | elif m == "m": # merge | |
392 | if f == '.hgsubstate': # subrepo states need updating |
|
391 | if f == '.hgsubstate': # subrepo states need updating |
@@ -439,11 +439,7 b' class fsbackend(abstractbackend):' | |||||
439 | util.setflags(self._join(fname), False, True) |
|
439 | util.setflags(self._join(fname), False, True) | |
440 |
|
440 | |||
441 | def unlink(self, fname): |
|
441 | def unlink(self, fname): | |
442 | try: |
|
442 | util.unlinkpath(self._join(fname), ignoremissing=True) | |
443 | util.unlinkpath(self._join(fname)) |
|
|||
444 | except OSError, inst: |
|
|||
445 | if inst.errno != errno.ENOENT: |
|
|||
446 | raise |
|
|||
447 |
|
443 | |||
448 | def writerej(self, fname, failed, total, lines): |
|
444 | def writerej(self, fname, failed, total, lines): | |
449 | fname = fname + ".rej" |
|
445 | fname = fname + ".rej" |
@@ -443,9 +443,13 b' def termwidth():' | |||||
443 | def makedir(path, notindexed): |
|
443 | def makedir(path, notindexed): | |
444 | os.mkdir(path) |
|
444 | os.mkdir(path) | |
445 |
|
445 | |||
446 | def unlinkpath(f): |
|
446 | def unlinkpath(f, ignoremissing=False): | |
447 | """unlink and remove the directory if it is empty""" |
|
447 | """unlink and remove the directory if it is empty""" | |
448 | os.unlink(f) |
|
448 | try: | |
|
449 | os.unlink(f) | |||
|
450 | except OSError, e: | |||
|
451 | if not (ignoremissing and e.errno == errno.ENOENT): | |||
|
452 | raise | |||
449 | # try removing directories that might now be empty |
|
453 | # try removing directories that might now be empty | |
450 | try: |
|
454 | try: | |
451 | os.removedirs(os.path.dirname(f)) |
|
455 | os.removedirs(os.path.dirname(f)) |
@@ -275,9 +275,13 b' def _removedirs(name):' | |||||
275 | break |
|
275 | break | |
276 | head, tail = os.path.split(head) |
|
276 | head, tail = os.path.split(head) | |
277 |
|
277 | |||
278 | def unlinkpath(f): |
|
278 | def unlinkpath(f, ignoremissing=False): | |
279 | """unlink and remove the directory if it is empty""" |
|
279 | """unlink and remove the directory if it is empty""" | |
280 | unlink(f) |
|
280 | try: | |
|
281 | unlink(f) | |||
|
282 | except OSError, e: | |||
|
283 | if not (ignoremissing and e.errno == errno.ENOENT): | |||
|
284 | raise | |||
281 | # try removing directories that might now be empty |
|
285 | # try removing directories that might now be empty | |
282 | try: |
|
286 | try: | |
283 | _removedirs(os.path.dirname(f)) |
|
287 | _removedirs(os.path.dirname(f)) |
General Comments 0
You need to be logged in to leave comments.
Login now