Mercurial > hg
changeset 18299:a7a88a458a4c
largefiles: fix revert removing a largefile from a merge
Before revert could fail with:
abort: .hglf/large@33fdd332ec64: not found in manifest!
The LookupError will now be caught and handled correctly.
author | Mads Kiilerich <madski@unity3d.com> |
---|---|
date | Fri, 11 Jan 2013 16:30:29 +0100 |
parents | 3598c585e464 |
children | 745bc16ccef2 |
files | hgext/largefiles/lfutil.py tests/test-largefiles.t |
diffstat | 2 files changed, 9 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/largefiles/lfutil.py Fri Jan 11 16:30:29 2013 +0100 +++ b/hgext/largefiles/lfutil.py Fri Jan 11 16:30:29 2013 +0100 @@ -142,8 +142,11 @@ s = lfdirstate.status(match, [], False, False, False) unsure, modified, added, removed, missing, unknown, ignored, clean = s for lfile in unsure: - if repo[rev][standin(lfile)].data().strip() != \ - hashfile(repo.wjoin(lfile)): + try: + fctx = repo[rev][standin(lfile)] + except LookupError: + fctx = None + if not fctx or fctx.data().strip() != hashfile(repo.wjoin(lfile)): modified.append(lfile) else: clean.append(lfile)
--- a/tests/test-largefiles.t Fri Jan 11 16:30:29 2013 +0100 +++ b/tests/test-largefiles.t Fri Jan 11 16:30:29 2013 +0100 @@ -1220,6 +1220,10 @@ $ hg status M large +- revert should be able to revert files introduced in a pending merge + $ hg revert --all -r . + removing .hglf/large + Test that a normal file and a largefile with the same name and path cannot coexist.