Thu, 31 Jan 2019 12:49:22 -0800 blackbox: test that track=* works to log everything
Kyle Lippincott <spectral@google.com> [Thu, 31 Jan 2019 12:49:22 -0800] rev 41633
blackbox: test that track=* works to log everything Differential Revision: https://phab.mercurial-scm.org/D5784
Thu, 31 Jan 2019 11:55:02 -0800 blackbox: test that unsetting track disables blackbox logging
Kyle Lippincott <spectral@google.com> [Thu, 31 Jan 2019 11:55:02 -0800] rev 41632
blackbox: test that unsetting track disables blackbox logging Differential Revision: https://phab.mercurial-scm.org/D5783
Thu, 07 Feb 2019 10:20:57 -0800 subrepo: adjust subrepo prefix before calling subrepo.archive() (API)
Martin von Zweigbergk <martinvonz@google.com> [Thu, 07 Feb 2019 10:20:57 -0800] rev 41631
subrepo: adjust subrepo prefix before calling subrepo.archive() (API) Differential Revision: https://phab.mercurial-scm.org/D5887
Thu, 07 Feb 2019 09:52:36 -0800 subrepo: adjust subrepo prefix before calling subrepo.diff() (API)
Martin von Zweigbergk <martinvonz@google.com> [Thu, 07 Feb 2019 09:52:36 -0800] rev 41630
subrepo: adjust subrepo prefix before calling subrepo.diff() (API) Differential Revision: https://phab.mercurial-scm.org/D5886
Thu, 07 Feb 2019 10:01:55 -0800 subrepo: adjust subrepo prefix before calling subrepo.addremove() (API)
Martin von Zweigbergk <martinvonz@google.com> [Thu, 07 Feb 2019 10:01:55 -0800] rev 41629
subrepo: adjust subrepo prefix before calling subrepo.addremove() (API) Differential Revision: https://phab.mercurial-scm.org/D5885
Thu, 07 Feb 2019 09:59:27 -0800 subrepo: adjust subrepo prefix before calling subrepo.add() (API)
Martin von Zweigbergk <martinvonz@google.com> [Thu, 07 Feb 2019 09:59:27 -0800] rev 41628
subrepo: adjust subrepo prefix before calling subrepo.add() (API) Differential Revision: https://phab.mercurial-scm.org/D5884
Thu, 07 Feb 2019 09:52:22 -0800 subrepo: adjust subrepo prefix before calling subrepo.forget() (API)
Martin von Zweigbergk <martinvonz@google.com> [Thu, 07 Feb 2019 09:52:22 -0800] rev 41627
subrepo: adjust subrepo prefix before calling subrepo.forget() (API) Differential Revision: https://phab.mercurial-scm.org/D5883
Thu, 07 Feb 2019 09:40:37 -0800 subrepo: adjust subrepo prefix before calling subrepo.removefiles() (API)
Martin von Zweigbergk <martinvonz@google.com> [Thu, 07 Feb 2019 09:40:37 -0800] rev 41626
subrepo: adjust subrepo prefix before calling subrepo.removefiles() (API) That's what we do with the matcher so it seems more consistent. Differential Revision: https://phab.mercurial-scm.org/D5882
Thu, 07 Feb 2019 09:46:36 -0800 subrepo: avoid calculating subrepo prefix twice for cat() (API)
Martin von Zweigbergk <martinvonz@google.com> [Thu, 07 Feb 2019 09:46:36 -0800] rev 41625
subrepo: avoid calculating subrepo prefix twice for cat() (API) Differential Revision: https://phab.mercurial-scm.org/D5881
Thu, 07 Feb 2019 16:43:42 +0300 py3: make sure __repr__ returns str
Pulkit Goyal <pulkit@yandex-team.ru> [Thu, 07 Feb 2019 16:43:42 +0300] rev 41624
py3: make sure __repr__ returns str No test fails but I found it while debugging test-commit-interactive-curses.t failure. # skip-blame because just r'' prefix Differential Revision: https://phab.mercurial-scm.org/D5878
Thu, 07 Feb 2019 16:44:43 +0300 py3: use bytes.startswith() instead of comparing with bytes[0]
Pulkit Goyal <pulkit@yandex-team.ru> [Thu, 07 Feb 2019 16:44:43 +0300] rev 41623
py3: use bytes.startswith() instead of comparing with bytes[0] This is because bytes[0] will return the ascii value and comparison will fail. This makes test-commit-interactive-curses.t pass on Python 3. Differential Revision: https://phab.mercurial-scm.org/D5879
Fri, 08 Feb 2019 22:57:26 -0800 match: remove unused "exact" argument (API)
Martin von Zweigbergk <martinvonz@google.com> [Fri, 08 Feb 2019 22:57:26 -0800] rev 41622
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
Fri, 08 Feb 2019 23:03:42 -0800 tests: replace match.match(exact=True) by match.exact()
Martin von Zweigbergk <martinvonz@google.com> [Fri, 08 Feb 2019 23:03:42 -0800] rev 41621
tests: replace match.match(exact=True) by match.exact() Differential Revision: https://phab.mercurial-scm.org/D5918
Wed, 06 Feb 2019 22:52:49 -0800 patch: accept second matcher that applies only to copy sources (API)
Martin von Zweigbergk <martinvonz@google.com> [Wed, 06 Feb 2019 22:52:49 -0800] rev 41620
patch: accept second matcher that applies only to copy sources (API) See previous patch for motivation. Differential Revision: https://phab.mercurial-scm.org/D5893
Wed, 06 Feb 2019 17:46:20 -0800 patch: let caller pass in root-filtering matcher (API)
Martin von Zweigbergk <martinvonz@google.com> [Wed, 06 Feb 2019 17:46:20 -0800] rev 41619
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
Wed, 06 Feb 2019 17:27:43 -0800 patch: pass in context objects into diffhunks() (API)
Martin von Zweigbergk <martinvonz@google.com> [Wed, 06 Feb 2019 17:27:43 -0800] rev 41618
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
Thu, 07 Feb 2019 21:48:50 +0300 convert: handle exec bit removal while converting to svn
Nikita Slyusarev <nslus@yandex-team.com> [Thu, 07 Feb 2019 21:48:50 +0300] rev 41617
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.
Thu, 07 Feb 2019 18:57:54 +0300 convert: handle empty intial commits while converting to svn
Nikita Slyusarev <nslus@yandex-team.com> [Thu, 07 Feb 2019 18:57:54 +0300] rev 41616
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.
Mon, 21 Jan 2019 17:37:33 +0000 branchmap: encapsulate cache updating in the map itself
Martijn Pieters <mj@octobus.net> [Mon, 21 Jan 2019 17:37:33 +0000] rev 41615
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
Thu, 07 Feb 2019 11:08:54 +0100 tests: fix regression tests failing on CentOS 7 stable
Mathias De Mare <mathias.de_mare@nokia.com> [Thu, 07 Feb 2019 11:08:54 +0100] rev 41614
tests: fix regression tests failing on CentOS 7 Differential Revision: https://phab.mercurial-scm.org/D5877
Thu, 07 Feb 2019 09:12:01 +0100 packaging: modify rc detection to work with X.Yrc instead of X.Y-rc stable
Mathias De Mare <mathias.de_mare@nokia.com> [Thu, 07 Feb 2019 09:12:01 +0100] rev 41613
packaging: modify rc detection to work with X.Yrc instead of X.Y-rc rc detection on CentOS failed without this change, resulting in upgrades from 4.9rc to 4.9 not working (4.9rc was considered more recent than 4.9). Differential Revision: https://phab.mercurial-scm.org/D5876
Thu, 07 Feb 2019 21:16:25 -0800 context: replace repeated "self._repo.dirstate" by "ds" variable
Martin von Zweigbergk <martinvonz@google.com> [Thu, 07 Feb 2019 21:16:25 -0800] rev 41612
context: replace repeated "self._repo.dirstate" by "ds" variable Differential Revision: https://phab.mercurial-scm.org/D5889
Thu, 07 Feb 2019 21:48:24 -0800 context: delete unused undelete()
Martin von Zweigbergk <martinvonz@google.com> [Thu, 07 Feb 2019 21:48:24 -0800] rev 41611
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
Wed, 06 Feb 2019 22:32:50 -0800 diffordiffstat: avoid looking up contexts twice
Martin von Zweigbergk <martinvonz@google.com> [Wed, 06 Feb 2019 22:32:50 -0800] rev 41610
diffordiffstat: avoid looking up contexts twice I'm not worried about performance; this is just simpler. Differential Revision: https://phab.mercurial-scm.org/D5890
Thu, 07 Feb 2019 17:04:15 +0100 fsmonitor: rename new verbose config knob
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
Wed, 06 Feb 2019 23:41:36 -0500 tests: stabilize test-extdiff.t on Windows
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.
Wed, 06 Feb 2019 22:30:49 -0500 lfs: disable all authentication except Basic for HTTP(S) connections
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
Wed, 30 Jan 2019 16:21:30 -0800 locate: respect ui.relative-paths
Martin von Zweigbergk <martinvonz@google.com> [Wed, 30 Jan 2019 16:21:30 -0800] rev 41606
locate: respect ui.relative-paths Differential Revision: https://phab.mercurial-scm.org/D5875
Tue, 05 Feb 2019 10:30:05 -0800 revert: respect ui.relative-paths
Martin von Zweigbergk <martinvonz@google.com> [Tue, 05 Feb 2019 10:30:05 -0800] rev 41605
revert: respect ui.relative-paths Differential Revision: https://phab.mercurial-scm.org/D5874
Tue, 05 Feb 2019 09:44:22 -0800 scmutil: delete now-unused origpath() (API)
Martin von Zweigbergk <martinvonz@google.com> [Tue, 05 Feb 2019 09:44:22 -0800] rev 41604
scmutil: delete now-unused origpath() (API) It has been replaced by backuppath(). Differential Revision: https://phab.mercurial-scm.org/D5860
Tue, 05 Feb 2019 09:43:34 -0800 subrepo: migrate to scmutil.backuppath()
Martin von Zweigbergk <martinvonz@google.com> [Tue, 05 Feb 2019 09:43:34 -0800] rev 41603
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
Mon, 04 Feb 2019 21:31:18 -0800 resolve: migrate to scmutil.backuppath()
Martin von Zweigbergk <martinvonz@google.com> [Mon, 04 Feb 2019 21:31:18 -0800] rev 41602
resolve: migrate to scmutil.backuppath() Differential Revision: https://phab.mercurial-scm.org/D5858
Mon, 04 Feb 2019 21:19:05 -0800 merge: migrate to scmutil.backuppath()
Martin von Zweigbergk <martinvonz@google.com> [Mon, 04 Feb 2019 21:19:05 -0800] rev 41601
merge: migrate to scmutil.backuppath() Differential Revision: https://phab.mercurial-scm.org/D5857
Mon, 04 Feb 2019 21:14:37 -0800 filemerge: migrate to scmutil.backuppath()
Martin von Zweigbergk <martinvonz@google.com> [Mon, 04 Feb 2019 21:14:37 -0800] rev 41600
filemerge: migrate to scmutil.backuppath() Differential Revision: https://phab.mercurial-scm.org/D5856
Mon, 04 Feb 2019 21:10:17 -0800 mq: migrate to scmutil.backuppath()
Martin von Zweigbergk <martinvonz@google.com> [Mon, 04 Feb 2019 21:10:17 -0800] rev 41599
mq: migrate to scmutil.backuppath() Differential Revision: https://phab.mercurial-scm.org/D5855
Mon, 04 Feb 2019 21:00:58 -0800 largefiles: migrate to scmutil.backuppath()
Martin von Zweigbergk <martinvonz@google.com> [Mon, 04 Feb 2019 21:00:58 -0800] rev 41598
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
Tue, 05 Feb 2019 11:14:07 -0800 revert: migrate to scmutil.backuppath()
Martin von Zweigbergk <martinvonz@google.com> [Tue, 05 Feb 2019 11:14:07 -0800] rev 41597
revert: migrate to scmutil.backuppath() Differential Revision: https://phab.mercurial-scm.org/D5853
Mon, 04 Feb 2019 20:49:45 -0800 shelve: fix broken backup of conflicting untracked file
Martin von Zweigbergk <martinvonz@google.com> [Mon, 04 Feb 2019 20:49:45 -0800] rev 41596
shelve: fix broken backup of conflicting untracked file Differential Revision: https://phab.mercurial-scm.org/D5852
Mon, 04 Feb 2019 20:46:33 -0800 scmutil: introduce a new backuppath() to replace origpath()
Martin von Zweigbergk <martinvonz@google.com> [Mon, 04 Feb 2019 20:46:33 -0800] rev 41595
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
Mon, 04 Feb 2019 09:21:40 -0800 tests: demonstrate broken unshelve when backing up untracked file
Martin von Zweigbergk <martinvonz@google.com> [Mon, 04 Feb 2019 09:21:40 -0800] rev 41594
tests: demonstrate broken unshelve when backing up untracked file Differential Revision: https://phab.mercurial-scm.org/D5850
Wed, 06 Feb 2019 15:35:25 -0800 subrepo: always show relative path to .orig backup
Martin von Zweigbergk <martinvonz@google.com> [Wed, 06 Feb 2019 15:35:25 -0800] rev 41593
subrepo: always show relative path to .orig backup Same as previous commit, but for subrepo. Differential Revision: https://phab.mercurial-scm.org/D5873
Wed, 06 Feb 2019 15:26:53 -0800 mq: always show relative path to .orig backup
Martin von Zweigbergk <martinvonz@google.com> [Wed, 06 Feb 2019 15:26:53 -0800] rev 41592
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
Wed, 06 Feb 2019 14:57:08 -0800 revert: always show relative path to .orig backup
Martin von Zweigbergk <martinvonz@google.com> [Wed, 06 Feb 2019 14:57:08 -0800] rev 41591
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
Tue, 05 Feb 2019 17:02:40 -0500 py3: ensure the HTTP password manager returns strings, not bytes
Matt Harbison <matt_harbison@yahoo.com> [Tue, 05 Feb 2019 17:02:40 -0500] rev 41590
py3: ensure the HTTP password manager returns strings, not bytes The digest handler calls into the password manager on its own, and it apparently expects strings. Perhaps the Basic authentication handler didn't hit this because of its manual password fetch and format in retry_http_basic_auth(). The `pycompat.bytesurl()` on the user and password just above the first url.py diff seems unnecessary, because the password proxy in ui is converting to bytes IIUC.
Tue, 05 Feb 2019 16:47:19 -0500 tests: enable HTTP digest testing
Matt Harbison <matt_harbison@yahoo.com> [Tue, 05 Feb 2019 16:47:19 -0500] rev 41589
tests: enable HTTP digest testing I suppose we could spin the client side extension off to a *.py file if it gets more use. I was basically just looking to avoid killing the server and relaunching it just to change authentication schemes, because that doesn't always work on Windows. The test changes capture the problem with py3.
Tue, 05 Feb 2019 16:16:14 -0500 wsgiheaders: make sure __repr__() returns a string
Matt Harbison <matt_harbison@yahoo.com> [Tue, 05 Feb 2019 16:16:14 -0500] rev 41588
wsgiheaders: make sure __repr__() returns a string When printing `req.headers` on the server side to debug, it complained that '%b' needed to take a string, not bytes. Changing '%s' to '%r' caused it to complain that __repr__ didn't return a string.
Tue, 05 Feb 2019 13:32:39 -0500 tests: add code to handle HTTP digests on the server side
Matt Harbison <matt_harbison@yahoo.com> [Tue, 05 Feb 2019 13:32:39 -0500] rev 41587
tests: add code to handle HTTP digests on the server side It's not hooked up yet. Mostly this was cargoculted and simplified from some python.org code[1]. It's not trying to test the security as much as it is trying to make sure that clients are sending out the right data when challenged. (And they aren't on py3.) [1] http://svn.python.org/projects/sandbox/trunk/digestauth/digestauth.py
Tue, 05 Feb 2019 13:30:48 -0500 run-tests: allow spaces in the --view tool
Matt Harbison <matt_harbison@yahoo.com> [Tue, 05 Feb 2019 13:30:48 -0500] rev 41586
run-tests: allow spaces in the --view tool Most tools on Windows are in Program Files, and not necessarily on PATH.
(0) -30000 -10000 -3000 -1000 -300 -100 -48 +48 +100 +300 +1000 +3000 +10000 tip