# HG changeset patch # User Mads Kiilerich # Date 1362055518 -3600 # Node ID 4846f2115927b359c7017857a67e02caf6f8b05b # Parent 431b246cfb128d3962f90cd88f623992a82648a5 largefiles: don't let update leave wrong largefiles in wd if fetch fails Situations where a largefile for some reason wasn't available sometimes caused wrong largefile content and state. It has mostly been seen when interrupting download of largefiles ... and when introducing programming errors. Instead we now make sure to delete the old and wrong largefile. A missing file is a well-known error condition and much more reasonable way to handle the situation. diff -r 431b246cfb12 -r 4846f2115927 hgext/largefiles/lfcommands.py --- a/hgext/largefiles/lfcommands.py Thu Feb 28 13:45:18 2013 +0100 +++ b/hgext/largefiles/lfcommands.py Thu Feb 28 13:45:18 2013 +0100 @@ -501,6 +501,8 @@ # use normallookup() to allocate entry in largefiles dirstate, # because lack of it misleads lfilesrepo.status() into # recognition that such cache missing files are REMOVED. + if lfile not in repo[None]: # not switched to normal file + util.unlinkpath(abslfile, ignoremissing=True) lfdirstate.normallookup(lfile) return None # don't try to set the mode else: