# HG changeset patch # User Matt Harbison # Date 1542322501 18000 # Node ID 8863f08c16302c50a268bd064591d7bb6e3fe5d9 # Parent 4ec8bee15930d0b9e4b00c759bf50c92e060a572 lfs: provide more Batch API error info via a hint in the raised exception A coworker had a typo in `lfs.url`, forgot it was even set because usually the blob server is inferred, and then got a 404. It would have been easier to debug with the failing URL printed. diff -r 4ec8bee15930 -r 8863f08c1630 hgext/lfs/blobstore.py --- a/hgext/lfs/blobstore.py Thu Nov 15 17:50:14 2018 -0500 +++ b/hgext/lfs/blobstore.py Thu Nov 15 17:55:01 2018 -0500 @@ -263,16 +263,17 @@ 'objects': objects, 'operation': action, }) - batchreq = util.urlreq.request('%s/objects/batch' % self.baseurl, - data=requestdata) + url = '%s/objects/batch' % self.baseurl + batchreq = util.urlreq.request(url, data=requestdata) batchreq.add_header('Accept', 'application/vnd.git-lfs+json') batchreq.add_header('Content-Type', 'application/vnd.git-lfs+json') try: rsp = self.urlopener.open(batchreq) rawjson = rsp.read() except util.urlerr.httperror as ex: - raise LfsRemoteError(_('LFS HTTP error: %s (action=%s)') - % (ex, action)) + raise LfsRemoteError(_('LFS HTTP error: %s') % ex, + hint=_('api=%s, action=%s') + % (url, action)) try: response = json.loads(rawjson) except ValueError: diff -r 4ec8bee15930 -r 8863f08c1630 tests/test-lfs-serve-access.t --- a/tests/test-lfs-serve-access.t Thu Nov 15 17:50:14 2018 -0500 +++ b/tests/test-lfs-serve-access.t Thu Nov 15 17:55:01 2018 -0500 @@ -29,7 +29,8 @@ $ hg -R client push http://localhost:$HGPORT pushing to http://localhost:$HGPORT/ searching for changes - abort: LFS HTTP error: HTTP Error 400: no such method: .git (action=upload)! + abort: LFS HTTP error: HTTP Error 400: no such method: .git! + (api=http://localhost:$HGPORT/.git/info/lfs/objects/batch, action=upload) [255] ... so do a local push to make the data available. Remove the blob from the @@ -50,7 +51,8 @@ added 1 changesets with 1 changes to 1 files new changesets 525251863cad updating to branch default - abort: LFS HTTP error: HTTP Error 400: no such method: .git (action=download)! + abort: LFS HTTP error: HTTP Error 400: no such method: .git! + (api=http://localhost:$HGPORT/.git/info/lfs/objects/batch, action=download) [255] $ "$PYTHON" $RUNTESTDIR/killdaemons.py $DAEMON_PIDS