--- a/hgext/purge.py Fri Apr 10 21:20:28 2009 +0200
+++ b/hgext/purge.py Sat Apr 11 00:13:18 2009 +0200
@@ -73,11 +73,15 @@
ui.write('%s%s' % (name, eol))
def removefile(path):
- # read-only files cannot be unlinked under Windows
- s = os.stat(path)
- if (s.st_dev & stat.S_IWRITE) == 0:
- os.chmod(path, s.st_mode | stat.S_IWRITE)
- os.remove(path)
+ try:
+ os.remove(path)
+ except OSError:
+ # read-only files cannot be unlinked under Windows
+ s = os.stat(path)
+ if (s.st_mode & stat.S_IWRITE) != 0:
+ raise
+ os.chmod(path, stat.S_IMODE(s.st_mode) | stat.S_IWRITE)
+ os.remove(path)
directories = []
match = cmdutil.match(repo, dirs, opts)