Mercurial > hg
changeset 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 | b0a88bda3381 |
children | 1fd126cd2d91 b2fd4746414a |
files | hgext/largefiles/lfutil.py tests/test-largefiles.t |
diffstat | 2 files changed, 3 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/largefiles/lfutil.py Sun Nov 20 23:09:32 2011 +0100 +++ b/hgext/largefiles/lfutil.py Tue Nov 22 17:51:43 2011 +0100 @@ -158,7 +158,7 @@ try: if hash == hashfile(lfile): lfdirstate.normal(lfile) - except IOError, err: + except OSError, err: if err.errno != errno.ENOENT: raise
--- a/tests/test-largefiles.t Sun Nov 20 23:09:32 2011 +0100 +++ b/tests/test-largefiles.t Tue Nov 22 17:51:43 2011 +0100 @@ -252,13 +252,12 @@ Clone a largefiles repo. - $ cd .. - $ hg clone a b + $ hg clone . ../b updating to branch default 5 files updated, 0 files merged, 0 files removed, 0 files unresolved getting changed largefiles 3 largefiles updated, 0 removed - $ cd b + $ cd ../b $ hg log --template '{rev}:{node|short} {desc|firstline}\n' 7:daea875e9014 add/edit more largefiles 6:4355d653f84f edit files yet again