Mercurial > hg-stable
changeset 35568:ebf14075a5c1
lfs: improve the error message for a missing remote blob
It seems better to print the name known to the user, not the internal file. The
previous code unconditionally set 'p.filename'. That potentially made the
attribute None, and would be printed as such in
_gitlfsremote._checkforservererror() instead of "unknown". Normally, files are
printed relative to CWD, but I don't see a way to get the repo path to make that
adjustment.
The test modified here apparently only runs within Facebook, but a print
statement confirmed the name change. I tried uploading the blob to a different
remote store (so the git server never saw it), and also killing the git server
and removing the blob directory, and removing the 'lfs.db' file. All resulted
in a message:
abort: LFS server claims required objects do not exist:
bdc26931acfb734b142a8d675f205becf27560dc461f501822de13274fe6fc8a!
So I have no idea how to make this test generally runnable.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Sun, 07 Jan 2018 15:21:16 -0500 |
parents | 07769a04bc66 |
children | 964212780daf |
files | hgext/lfs/blobstore.py hgext/lfs/wrapper.py tests/test-lfs-test-server.t |
diffstat | 3 files changed, 3 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/lfs/blobstore.py Sun Jan 07 15:01:59 2018 -0500 +++ b/hgext/lfs/blobstore.py Sun Jan 07 15:21:16 2018 -0500 @@ -240,7 +240,7 @@ filename = getattr(p, 'filename', 'unknown') raise LfsRemoteError( _(('LFS server error. Remote object ' - 'for file %s not found: %r')) % (filename, response)) + 'for "%s" not found: %r')) % (filename, response)) raise LfsRemoteError(_('LFS server error: %r') % response) def _extractobjects(self, response, pointers, action):
--- a/hgext/lfs/wrapper.py Sun Jan 07 15:01:59 2018 -0500 +++ b/hgext/lfs/wrapper.py Sun Jan 07 15:21:16 2018 -0500 @@ -60,7 +60,7 @@ oid = p.oid() store = self.opener.lfslocalblobstore if not store.has(oid): - p.filename = getattr(self, 'indexfile', None) + p.filename = self.filename self.opener.lfsremoteblobstore.readbatch([p], store) # The caller will validate the content
--- a/tests/test-lfs-test-server.t Sun Jan 07 15:01:59 2018 -0500 +++ b/tests/test-lfs-test-server.t Sun Jan 07 15:21:16 2018 -0500 @@ -185,7 +185,7 @@ $ rm -rf `hg config lfs.usercache` $ hg --config 'lfs.url=https://dewey-lfs.vip.facebook.com/lfs' clone test test2 updating to branch default - abort: LFS server error. Remote object for file data/a.i not found:(.*)! (re) + abort: LFS server error. Remote object for "a" not found:(.*)! (re) [255] $ $PYTHON $RUNTESTDIR/killdaemons.py $DAEMON_PIDS