Mercurial > hg
comparison hgext/largefiles/lfutil.py @ 15548:f76584098c88 stable
largefiles: fix 'hg clone . ../foo' OSError abort
Operating on a non-existant file can cause both IOError and OSError,
depending on the function used: open raises IOError, os.lstat raises
OSError.
The largefiles code called dirstate.normal, which in turn calls
os.lstat, so OSError is the right exception to catch here.
author | Martin Geisler <mg@lazybytes.net> |
---|---|
date | Tue, 22 Nov 2011 17:51:43 +0100 |
parents | db8b0ee74025 |
children | e89385e4ef8d |
comparison
equal
deleted
inserted
replaced
15538:b0a88bda3381 | 15548:f76584098c88 |
---|---|
156 hash = readstandin(repo, lfile) | 156 hash = readstandin(repo, lfile) |
157 lfdirstate.normallookup(lfile) | 157 lfdirstate.normallookup(lfile) |
158 try: | 158 try: |
159 if hash == hashfile(lfile): | 159 if hash == hashfile(lfile): |
160 lfdirstate.normal(lfile) | 160 lfdirstate.normal(lfile) |
161 except IOError, err: | 161 except OSError, err: |
162 if err.errno != errno.ENOENT: | 162 if err.errno != errno.ENOENT: |
163 raise | 163 raise |
164 | 164 |
165 lfdirstate.write() | 165 lfdirstate.write() |
166 | 166 |