Sun, 28 May 2017 23:54:31 +0900 match: define exactmatcher.matchfn statically
Yuya Nishihara <yuya@tcha.org> [Sun, 28 May 2017 23:54:31 +0900] rev 32576
match: define exactmatcher.matchfn statically This should eliminate the reference cycle, self.matchfn -> self.exact -> self.
Sun, 28 May 2017 23:51:30 +0900 match: remove override of prefix() from differencematcher
Yuya Nishihara <yuya@tcha.org> [Sun, 28 May 2017 23:51:30 +0900] rev 32575
match: remove override of prefix() from differencematcher It's exactly the same as basematcher.prefix().
Sat, 27 May 2017 18:52:46 +0900 cat: do not start pager if output will be written to file
Yuya Nishihara <yuya@tcha.org> [Sat, 27 May 2017 18:52:46 +0900] rev 32574
cat: do not start pager if output will be written to file
Sat, 27 May 2017 18:50:05 +0900 cat: pass filename template as explicit argument
Yuya Nishihara <yuya@tcha.org> [Sat, 27 May 2017 18:50:05 +0900] rev 32573
cat: pass filename template as explicit argument I'll move the handling of the '-' filename to commands.cat().
Thu, 25 May 2017 21:28:08 +0900 cmdutil: extract function checking if pattern should be taken as stdin/out
Yuya Nishihara <yuya@tcha.org> [Thu, 25 May 2017 21:28:08 +0900] rev 32572
cmdutil: extract function checking if pattern should be taken as stdin/out This will be used in commands.cat().
Thu, 25 May 2017 21:25:49 +0900 cmdutil: drop deprecated hack to pass file object to makefileobj() (API)
Yuya Nishihara <yuya@tcha.org> [Thu, 25 May 2017 21:25:49 +0900] rev 32571
cmdutil: drop deprecated hack to pass file object to makefileobj() (API) All callers pass a string 'pat' or None.
Mon, 29 May 2017 21:57:51 +0900 encoding: make sure "wide" variable never be referenced from other modules
Yuya Nishihara <yuya@tcha.org> [Mon, 29 May 2017 21:57:51 +0900] rev 32570
encoding: make sure "wide" variable never be referenced from other modules Better to not expose (maybe-) unicode objects.
Sun, 28 May 2017 21:29:58 -0400 manifest: use itertools.chain() instead of + for Python 3 compat
Augie Fackler <raf@durin42.com> [Sun, 28 May 2017 21:29:58 -0400] rev 32569
manifest: use itertools.chain() instead of + for Python 3 compat This is all pure-Python code, so I'm not too worried about perf here, but we can come back and fix it should it be a problem. With this change, the manifest code passes most unit tests on Python 3 (once the tests are corrected with many b prefixes. I've got a little more to sort out there and then I'll mail that change too.
Sun, 28 May 2017 21:29:15 -0400 manifest: fix some pure-Python parser bits to work on Python 3
Augie Fackler <raf@durin42.com> [Sun, 28 May 2017 21:29:15 -0400] rev 32568
manifest: fix some pure-Python parser bits to work on Python 3
Sun, 28 May 2017 18:08:36 -0400 tests: make test-manifest finish importing in Python 3
Augie Fackler <raf@durin42.com> [Sun, 28 May 2017 18:08:36 -0400] rev 32567
tests: make test-manifest finish importing in Python 3 The test is still broken, but now it executes.
Sun, 28 May 2017 18:08:14 -0400 tests: drop assertIn polyfill now that we're 2.7-only
Augie Fackler <raf@durin42.com> [Sun, 28 May 2017 18:08:14 -0400] rev 32566
tests: drop assertIn polyfill now that we're 2.7-only
Sun, 28 May 2017 11:13:10 -0700 perf: benchmark command for revlog indexes
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 28 May 2017 11:13:10 -0700] rev 32565
perf: benchmark command for revlog indexes We didn't have explicit microbenchmark coverage for loading revlog indexes. That seems like a useful thing to have, so let's add it. We currently measure the low-level nodemap APIs. There is room to hook in at the actual revlog layer. This could be done as a follow-up. The hackiest thing about this patch is specifying revlog paths. Other commands have arguments that allow resolution of changelog, manifest, and filelog. I needed to hook in at a lower level of the revlog API than what the existing helper functions to resolve revlogs allowed. I was too lazy to write some new APIs. This could be done as a follow-up easily enough. Example output for `hg perfrevlogindex 00changelog.i` on my Firefox repo (404418 revisions): ! revlog constructor ! wall 0.003106 comb 0.000000 user 0.000000 sys 0.000000 (best of 912) ! read ! wall 0.003077 comb 0.000000 user 0.000000 sys 0.000000 (best of 924) ! create index object ! wall 0.000000 comb 0.000000 user 0.000000 sys 0.000000 (best of 1803994) ! retrieve index entry for rev 0 ! wall 0.000193 comb 0.000000 user 0.000000 sys 0.000000 (best of 14037) ! look up missing node ! wall 0.003313 comb 0.000000 user 0.000000 sys 0.000000 (best of 865) ! look up node at rev 0 ! wall 0.003295 comb 0.010000 user 0.010000 sys 0.000000 (best of 858) ! look up node at 1/4 len ! wall 0.002598 comb 0.010000 user 0.010000 sys 0.000000 (best of 1103) ! look up node at 1/2 len ! wall 0.001909 comb 0.000000 user 0.000000 sys 0.000000 (best of 1507) ! look up node at 3/4 len ! wall 0.001213 comb 0.000000 user 0.000000 sys 0.000000 (best of 2275) ! look up node at tip ! wall 0.000453 comb 0.000000 user 0.000000 sys 0.000000 (best of 5697) ! look up all nodes (forward) ! wall 0.094615 comb 0.100000 user 0.100000 sys 0.000000 (best of 100) ! look up all nodes (reverse) ! wall 0.045889 comb 0.050000 user 0.050000 sys 0.000000 (best of 100) ! retrieve all index entries (forward) ! wall 0.078398 comb 0.080000 user 0.060000 sys 0.020000 (best of 100) ! retrieve all index entries (reverse) ! wall 0.079376 comb 0.080000 user 0.070000 sys 0.010000 (best of 100)
Sun, 28 May 2017 10:56:28 -0700 perf: rename perfrevlog to perfrevlogrevisions
Gregory Szorc <gregory.szorc@gmail.com> [Sun, 28 May 2017 10:56:28 -0700] rev 32564
perf: rename perfrevlog to perfrevlogrevisions We have a couple of commands beginning with "perfrevlog." The actual "perfrevlog" command actually measures resolving the fulltext of multiple revisions. So let's rename it to reflect what it actually does.
Sun, 28 May 2017 15:43:26 -0400 server: use pycompat to get argv
Augie Fackler <raf@durin42.com> [Sun, 28 May 2017 15:43:26 -0400] rev 32563
server: use pycompat to get argv
Sun, 28 May 2017 13:27:29 -0400 encoding: make wide character class list a sysstr
Augie Fackler <raf@durin42.com> [Sun, 28 May 2017 13:27:29 -0400] rev 32562
encoding: make wide character class list a sysstr That's what east_asian_width returns, so just match it.
Sun, 28 May 2017 14:02:14 -0400 cmdutil: use sorted(dict) instead of x = dict.keys(); x.sort()
Augie Fackler <raf@durin42.com> [Sun, 28 May 2017 14:02:14 -0400] rev 32561
cmdutil: use sorted(dict) instead of x = dict.keys(); x.sort() The former both does less work and has the virtue of working on Python 3.
Sun, 28 May 2017 16:17:43 -0400 util: look for empty-sysstr instead of empty-bytesstr in textwrap code
Augie Fackler <raf@durin42.com> [Sun, 28 May 2017 16:17:43 -0400] rev 32560
util: look for empty-sysstr instead of empty-bytesstr in textwrap code Fixes behavior on Python 3.
Sun, 28 May 2017 15:47:43 -0400 minirst: look for column delimiters using slices instead of indicies
Augie Fackler <raf@durin42.com> [Sun, 28 May 2017 15:47:43 -0400] rev 32559
minirst: look for column delimiters using slices instead of indicies This works on both Python 2 and 3.
Sun, 28 May 2017 13:36:02 -0400 minirst: grab a byte, not an int, for the underline style
Augie Fackler <raf@durin42.com> [Sun, 28 May 2017 13:36:02 -0400] rev 32558
minirst: grab a byte, not an int, for the underline style
Sun, 28 May 2017 13:41:42 -0400 minirst: use bytes.strip instead of str.strip
Augie Fackler <raf@durin42.com> [Sun, 28 May 2017 13:41:42 -0400] rev 32557
minirst: use bytes.strip instead of str.strip
Mon, 29 May 2017 16:21:15 +0530 py3: use pycompat.bytestr so that we don't get ascii values
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 29 May 2017 16:21:15 +0530] rev 32556
py3: use pycompat.bytestr so that we don't get ascii values This fixes `hg files 'set:(**.py)'` which makes test-check-py3-compat.t able to run on Python 3. So if you now do `python3 ./run-tests.py test-check-py3-compat`, the test will actually run.
Mon, 29 May 2017 16:08:37 +0530 py3: update test-check-py3-compat.t
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 29 May 2017 16:08:37 +0530] rev 32555
py3: update test-check-py3-compat.t
Sun, 28 May 2017 15:45:47 -0400 loader: pywatchman appears to already be py3 compatible
Augie Fackler <raf@durin42.com> [Sun, 28 May 2017 15:45:47 -0400] rev 32554
loader: pywatchman appears to already be py3 compatible Our loader was doing some confusing things in pywatchman, but it looks like we shouldn't be using it there anyway.
Sun, 28 May 2017 17:02:24 -0400 py3: update test expectations for py3-commands test
Augie Fackler <raf@durin42.com> [Sun, 28 May 2017 17:02:24 -0400] rev 32553
py3: update test expectations for py3-commands test
Thu, 25 May 2017 17:20:43 -0700 context: do not cache manifestctx
Jun Wu <quark@fb.com> [Thu, 25 May 2017 17:20:43 -0700] rev 32552
context: do not cache manifestctx This will make sure when ctx.repo.manifestlog changes, a correct new manifestctx is returned. repo.manifestlog takes care of caching so the manifestctx won't be reconstructed every time.
Thu, 25 May 2017 17:06:32 -0700 test-context: add a case demonstrating manifest caching problem
Jun Wu <quark@fb.com> [Thu, 25 May 2017 17:06:32 -0700] rev 32551
test-context: add a case demonstrating manifest caching problem This issue was discovered when testing absorb on Windows. What happens are: 1. ctx.p1().manifestctx gets cached. let's call ctx.p1().manifestctx._revlog() "mrevlog1" 2. repo.manifestlog gets invalidated. let's call repo.manifestlog._revlog "mrevlog2" 3. repo.commitctx(ctx) commitctx uses ctx.p1().manifestctx and writes to "mrevlog1" 4. repo[n].manifest() cannot find the manifest node in "mrevlog2" This patch adds a test case to reproduce the issue.
Thu, 25 May 2017 16:50:46 +0200 debugbundle: display the content of obsmarkers parts
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 25 May 2017 16:50:46 +0200] rev 32550
debugbundle: display the content of obsmarkers parts We parse and display the markers in the part when possible.
Sun, 28 May 2017 11:50:43 -0700 bundle: add an experimental knob to include obsmarkers in bundle
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 28 May 2017 11:50:43 -0700] rev 32549
bundle: add an experimental knob to include obsmarkers in bundle The "hg bundle" command is a good place to test if the inclusion of obsmarkers within a bundle is working well (part exists, content is correct etc). So we add a way to have them included. Ideally, this would be controlled by a change around bundlespec (bundlespec "v3" + arguments). However, my main goal is to have obsmarkers included in bundle created by the 'hg strip' command, not the 'hg bundle' so for now I'm avoiding the detour through bundlespec rework territory. Better debug output for obsmarkers in 'debugbundle' will be added in later changesets. The 'test-obsolete-bundle-strip.t' test will also get updated in a later changeset to keep the current changeset smaller.
Sun, 28 May 2017 11:48:18 -0700 bundle2: move function building obsmarker-part in the bundle2 module
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 28 May 2017 11:48:18 -0700] rev 32548
bundle2: move function building obsmarker-part in the bundle2 module We move it next to similar part building functions. We will need it for the "writenewbundle" logic. This will allow us to easily include obsmarkers in on-disk bundle, a necessary step before having `hg strip` also operate on markers. (Yes, the bundle2 module was already too large, but there any many interdependencies between its components so it is non-trivial to split, this is a quest for another adventure.)
Tue, 02 May 2017 21:45:48 +0900 policy: remove unused policynoc and policynocffi constants
Yuya Nishihara <yuya@tcha.org> [Tue, 02 May 2017 21:45:48 +0900] rev 32547
policy: remove unused policynoc and policynocffi constants
(0) -30000 -10000 -3000 -1000 -300 -100 -50 -30 +30 +50 +100 +300 +1000 +3000 +10000 tip