Martin von Zweigbergk <martinvonz@google.com> [Fri, 08 Feb 2019 22:57:26 -0800] rev 41633
match: remove unused "exact" argument (API)
It seems that all callers use match.exact() instead of match.match(exact=True).
Differential Revision: https://phab.mercurial-scm.org/D5919
Martin von Zweigbergk <martinvonz@google.com> [Fri, 08 Feb 2019 23:03:42 -0800] rev 41632
tests: replace match.match(exact=True) by match.exact()
Differential Revision: https://phab.mercurial-scm.org/D5918
Martin von Zweigbergk <martinvonz@google.com> [Wed, 06 Feb 2019 22:52:49 -0800] rev 41631
patch: accept second matcher that applies only to copy sources (API)
See previous patch for motivation.
Differential Revision: https://phab.mercurial-scm.org/D5893
Martin von Zweigbergk <martinvonz@google.com> [Wed, 06 Feb 2019 17:46:20 -0800] rev 41630
patch: let caller pass in root-filtering matcher (API)
The --root option to `hg diff` does two things:
* Shows paths relative to the given root
* Filters paths by the given root, including copy sources
The root argument is passed through down to patch.diff(). I feel like
we can make patch.diff() more generic by not passing down the root
argument, but instead pass:
* A function for taking a repo-relative path and printing it. I want
to reuse this for showing cwd-relative paths later. This is the
actual motivation for this patch.
* A matcher that's already been filtered by the root argument
* A second matcher that filters the copy sources
This is one step towards that.
Differential Revision: https://phab.mercurial-scm.org/D5892
Martin von Zweigbergk <martinvonz@google.com> [Wed, 06 Feb 2019 17:27:43 -0800] rev 41629
patch: pass in context objects into diffhunks() (API)
It's a pretty low-level function and having the contexts in
patch.diff() makes future patches easier.
Differential Revision: https://phab.mercurial-scm.org/D5891
Nikita Slyusarev <nslus@yandex-team.com> [Thu, 07 Feb 2019 21:48:50 +0300] rev 41628
convert: handle exec bit removal while converting to svn
Subversion `putcommit` method checks original file's executablity to decide
if executable property should be removed from svn. It is checked right after
writing file contents.
Content writing is implemented using `vfs.write` and vfs seems to remove exec
bit, at least in some cases. This leads to executability checks being
ineffective. If cset contains only this ignored exec bit removal, conversion
stops with an error, because it fails to to compose svn commit properly.
This fix moves exec bit checking so that it's performed before dumping file
contents.
Added test to check executable bit removal.
Nikita Slyusarev <nslus@yandex-team.com> [Thu, 07 Feb 2019 18:57:54 +0300] rev 41627
convert: handle empty intial commits while converting to svn
Svn commit generation code skips empty commits, returning the parent.
Skipping the root commit must return None instead.
Added test to check skipping of empty commits.
Martijn Pieters <mj@octobus.net> [Mon, 21 Jan 2019 17:37:33 +0000] rev 41626
branchmap: encapsulate cache updating in the map itself
Rather than have a repository update the cache, move handling of cache updates
into the branchmap module, in the form of a custom mapping class.
This makes later performance improvements easier to handle too.
Differential Revision: https://phab.mercurial-scm.org/D5638
Martin von Zweigbergk <martinvonz@google.com> [Thu, 07 Feb 2019 21:16:25 -0800] rev 41625
context: replace repeated "self._repo.dirstate" by "ds" variable
Differential Revision: https://phab.mercurial-scm.org/D5889
Martin von Zweigbergk <martinvonz@google.com> [Thu, 07 Feb 2019 21:48:24 -0800] rev 41624
context: delete unused undelete()
Maybe it's been unused since c8e2a5ea7062 (mq: avoid data loss upon
qfold + qmv (issue3058), 2011-10-20), maybe not.
Differential Revision: https://phab.mercurial-scm.org/D5888
Martin von Zweigbergk <martinvonz@google.com> [Wed, 06 Feb 2019 22:32:50 -0800] rev 41623
diffordiffstat: avoid looking up contexts twice
I'm not worried about performance; this is just simpler.
Differential Revision: https://phab.mercurial-scm.org/D5890
Boris Feld <boris.feld@octobus.net> [Thu, 07 Feb 2019 17:04:15 +0100] rev 41622
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 41621
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 41620
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
Martin von Zweigbergk <martinvonz@google.com> [Wed, 30 Jan 2019 16:21:30 -0800] rev 41619
locate: respect ui.relative-paths
Differential Revision: https://phab.mercurial-scm.org/D5875
Martin von Zweigbergk <martinvonz@google.com> [Tue, 05 Feb 2019 10:30:05 -0800] rev 41618
revert: respect ui.relative-paths
Differential Revision: https://phab.mercurial-scm.org/D5874
Martin von Zweigbergk <martinvonz@google.com> [Tue, 05 Feb 2019 09:44:22 -0800] rev 41617
scmutil: delete now-unused origpath() (API)
It has been replaced by backuppath().
Differential Revision: https://phab.mercurial-scm.org/D5860
Martin von Zweigbergk <martinvonz@google.com> [Tue, 05 Feb 2019 09:43:34 -0800] rev 41616
subrepo: migrate to scmutil.backuppath()
This has a test impact. It seems to me to be for the better.
Differential Revision: https://phab.mercurial-scm.org/D5859
Martin von Zweigbergk <martinvonz@google.com> [Mon, 04 Feb 2019 21:31:18 -0800] rev 41615
resolve: migrate to scmutil.backuppath()
Differential Revision: https://phab.mercurial-scm.org/D5858
Martin von Zweigbergk <martinvonz@google.com> [Mon, 04 Feb 2019 21:19:05 -0800] rev 41614
merge: migrate to scmutil.backuppath()
Differential Revision: https://phab.mercurial-scm.org/D5857
Martin von Zweigbergk <martinvonz@google.com> [Mon, 04 Feb 2019 21:14:37 -0800] rev 41613
filemerge: migrate to scmutil.backuppath()
Differential Revision: https://phab.mercurial-scm.org/D5856
Martin von Zweigbergk <martinvonz@google.com> [Mon, 04 Feb 2019 21:10:17 -0800] rev 41612
mq: migrate to scmutil.backuppath()
Differential Revision: https://phab.mercurial-scm.org/D5855
Martin von Zweigbergk <martinvonz@google.com> [Mon, 04 Feb 2019 21:00:58 -0800] rev 41611
largefiles: migrate to scmutil.backuppath()
It seems unnecessary to convert the paths here back to repo-relative
paths, but I'll leave that for someone else to clean up.
Differential Revision: https://phab.mercurial-scm.org/D5854
Martin von Zweigbergk <martinvonz@google.com> [Tue, 05 Feb 2019 11:14:07 -0800] rev 41610
revert: migrate to scmutil.backuppath()
Differential Revision: https://phab.mercurial-scm.org/D5853
Martin von Zweigbergk <martinvonz@google.com> [Mon, 04 Feb 2019 20:49:45 -0800] rev 41609
shelve: fix broken backup of conflicting untracked file
Differential Revision: https://phab.mercurial-scm.org/D5852
Martin von Zweigbergk <martinvonz@google.com> [Mon, 04 Feb 2019 20:46:33 -0800] rev 41608
scmutil: introduce a new backuppath() to replace origpath()
Unlike most functions in our codebase, origpath() takes a path that is
relative to cwd. This commit introduces a replacement for
origpath(). The new function takes a path that is relative to the repo
root. There is a lot of duplication between the two, but I intend to
remove origpath() within the next few commits, so it won't be a
maintenance burden.
origpath() is also a little weird in that it returns either a a
cwd-relative path or an absolute path. It needs to be able to return a
path outside the repo, so it makes sense that it can return an
absolute path. However, it would be simpler to always return an
absolute path. The new function does that.
Differential Revision: https://phab.mercurial-scm.org/D5851
Martin von Zweigbergk <martinvonz@google.com> [Mon, 04 Feb 2019 09:21:40 -0800] rev 41607
tests: demonstrate broken unshelve when backing up untracked file
Differential Revision: https://phab.mercurial-scm.org/D5850
Martin von Zweigbergk <martinvonz@google.com> [Wed, 06 Feb 2019 15:35:25 -0800] rev 41606
subrepo: always show relative path to .orig backup
Same as previous commit, but for subrepo.
Differential Revision: https://phab.mercurial-scm.org/D5873
Martin von Zweigbergk <martinvonz@google.com> [Wed, 06 Feb 2019 15:26:53 -0800] rev 41605
mq: always show relative path to .orig backup
Same as previous commit, but for mq (I would have folded them, but
test-check-commit doesn't like "revert/mq" as a topic and I couldn't
think of a better one).
Differential Revision: https://phab.mercurial-scm.org/D5872
Martin von Zweigbergk <martinvonz@google.com> [Wed, 06 Feb 2019 14:57:08 -0800] rev 41604
revert: always show relative path to .orig backup
This helps make some future patches easier when I replace origpath()
by another function that works with repo-relative paths (origpath()
works with cwd-relative paths).
Always showing a relative path seems a little more user-friendly and
is more consistent between configured ui.origbackuppath and not. OTOH,
it's annoying if ui.origbackuppath is far outside the repo. This is
just --verbose output, so I don't think it's worth spending much time
on (I've already wasted too many hours on it).
Differential Revision: https://phab.mercurial-scm.org/D5871