Boris Feld <boris.feld@octobus.net> [Thu, 07 Feb 2019 17:04:15 +0100] rev 41609
fsmonitor: rename new verbose config knob
The config knob was introduced in this release cycle under the old extension
name, rename it before it is part of a release.
Differential Revision: https://phab.mercurial-scm.org/D5880
Matt Harbison <matt_harbison@yahoo.com> [Wed, 06 Feb 2019 23:41:36 -0500] rev 41608
tests: stabilize test-extdiff.t on Windows
The test harness only wanted to drop the (windows !) lines, which also means the
actual output matched the (no-windows !) lines. So drop those annotations too.
I suspect if the output of the affected tests was actually collected on Windows,
things were quoted because TEMPDIR contained a `~` in MSYS. Typically that
happens when the username is 9 (8?) or more characters. I explicitly set TEMP
and TMP to something short like "C:\temp" to avoid this, because otherwise there
are a bunch of failures like this in other tests.
Matt Harbison <matt_harbison@yahoo.com> [Wed, 06 Feb 2019 22:30:49 -0500] rev 41607
lfs: disable all authentication except Basic for HTTP(S) connections
I ran into a problem pushing to an old Apache server- the normal outgoing
traffic occurred, the Batch API request and response occurred, and then things
suddenly halted. 5 minutes later, a 500 was returned, and the server log had a
timeout reading 32K from `self._req.bodyfh` in hgweb.request.sendresponse().
Watching in WireShark, the Batch API got a 401, retried properly, then proceeded
to PUT the blob (without authentication headers). This got a 401, but the
client never retried with authentication. Worse, the blob was sent over the
wire in the failed attempt.
This kills digests for both the Batch API and the Transfer API. While in theory
we could have the Batch API provide external URLs to a place that supports Basic
Authentication, the LFS spec actually calls out using Basic Authentication[1].
It's not clear to me if they've been able to shoehorn in other methods. But
let's keep it simple until somebody needs it.
If we only had to support python2, we could just not add the handler for digest
authentication. However in python3, AbstractBasicAuthHandler raises ValueError
if it sees a scheme other than Basic. So we need to intercept all other schemes
before it gets to that point.
# no-check-commit because of urllib2.OpenerDirector foo_bar calling conventions
[1] https://github.com/git-lfs/git-lfs/blob/master/docs/api/authentication.md