Skip to content
Snippets Groups Projects
Commit 0fc1ce27 authored by Matt Harbison's avatar Matt Harbison
Browse files

largefiles: fix a traceback in lfconvert if a largefile is missing (issue3519)

The largefile may be missing for various reasons, including that a remote
repository was cloned without the --all-largefiles option.  Therefore, it seems
reasonable to attempt to download the missing files and failing that, abort and
indicate the affected file and revision so the user can manually fix the
problem.
parent c284085d
No related branches found
No related tags found
No related merge requests found
......@@ -141,7 +141,17 @@
hash = fctx.data().strip()
path = lfutil.findfile(rsrc, hash)
### TODO: What if the file is not cached?
# If one file is missing, likely all files from this rev are
if path is None:
cachelfiles(ui, rsrc, ctx.node())
path = lfutil.findfile(rsrc, hash)
if path is None:
raise util.Abort(
_("missing largefile \'%s\' from revision %s")
% (f, node.hex(ctx.node())))
data = ''
fd = None
try:
......
$ USERCACHE="$TESTTMP/cache"; export USERCACHE
$ mkdir "${USERCACHE}"
$ cat >> $HGRCPATH <<EOF
> [extensions]
> largefiles =
......@@ -8,6 +10,7 @@
> minsize = 0.5
> patterns = **.other
> **.dat
> usercache=${USERCACHE}
> EOF
"lfconvert" works
......@@ -270,3 +273,14 @@
pass
$ cd ..
Avoid a traceback if a largefile isn't available (issue3519)
$ hg clone -U largefiles-repo issue3519
$ rm "${USERCACHE}"/*
$ hg lfconvert --to-normal issue3519 normalized3519
initializing destination normalized3519
abort: missing largefile 'large' from revision d4892ec57ce212905215fad1d9018f56b99202ad
[255]
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment