Sun, 08 Jul 2018 19:52:35 +0900 py3: use bytes() to byte-stringify Abort message in handleremotechangegroup()
Yuya Nishihara <yuya@tcha.org> [Sun, 08 Jul 2018 19:52:35 +0900] rev 38701
py3: use bytes() to byte-stringify Abort message in handleremotechangegroup()
Sun, 08 Jul 2018 19:44:51 +0900 py3: don't str() to byte-stringify object in test-bundle2-remote-changegroup.t
Yuya Nishihara <yuya@tcha.org> [Sun, 08 Jul 2018 19:44:51 +0900] rev 38700
py3: don't str() to byte-stringify object in test-bundle2-remote-changegroup.t
Sun, 08 Jul 2018 19:39:11 +0900 py3: byte-stringify literals in extension in test-bundle2-remote-changegroup.t
Yuya Nishihara <yuya@tcha.org> [Sun, 08 Jul 2018 19:39:11 +0900] rev 38699
py3: byte-stringify literals in extension in test-bundle2-remote-changegroup.t # skip-blame just some b''
Sun, 08 Jul 2018 19:41:00 +0900 py3: open file in binary mode in test-bundle2-remote-changegroup.t
Yuya Nishihara <yuya@tcha.org> [Sun, 08 Jul 2018 19:41:00 +0900] rev 38698
py3: open file in binary mode in test-bundle2-remote-changegroup.t
Fri, 01 Jun 2018 12:10:34 +0200 statprof: small if cleanup
Boris Feld <boris.feld@octobus.net> [Fri, 01 Jun 2018 12:10:34 +0200] rev 38697
statprof: small if cleanup Explicitly testing for None to avoid comparison bugs.
Sat, 14 Jul 2018 02:10:43 +0200 store: assert the fncache have been loaded if dirty
Boris Feld <boris.feld@octobus.net> [Sat, 14 Jul 2018 02:10:43 +0200] rev 38696
store: assert the fncache have been loaded if dirty This should catch fncache corruption as the one that existed in `perffncachewrite`.
Sat, 14 Jul 2018 02:09:47 +0200 perffncachewrite: load fncache after lock is acquired
Boris Feld <boris.feld@octobus.net> [Sat, 14 Jul 2018 02:09:47 +0200] rev 38695
perffncachewrite: load fncache after lock is acquired Without this patch, running perffncachewrite on a repository destroy its fncache. Lock Acquisition drops various caches, including the fncache one. Then writing of an non-loaded fncache result into an empty one.
Fri, 22 Jun 2018 11:02:42 +0100 perf: add a 'perf.all-timing' option to display more than best time
Boris Feld <boris.feld@octobus.net> [Fri, 22 Jun 2018 11:02:42 +0100] rev 38694
perf: add a 'perf.all-timing' option to display more than best time Minimal time is a useful information, but it is useful to have a wider view on the performance picture.
Wed, 11 Jul 2018 10:46:15 +0200 perf: document the perfmanifest command
Boris Feld <boris.feld@octobus.net> [Wed, 11 Jul 2018 10:46:15 +0200] rev 38693
perf: document the perfmanifest command
Sat, 09 Jun 2018 22:38:29 +0900 fileset: remove fullmatchctx class
Yuya Nishihara <yuya@tcha.org> [Sat, 09 Jun 2018 22:38:29 +0900] rev 38692
fileset: remove fullmatchctx class It's exactly the same as matchctx.
Sat, 09 Jun 2018 22:35:21 +0900 fileset: remove subset and unused filtering functions from matchctx
Yuya Nishihara <yuya@tcha.org> [Sat, 09 Jun 2018 22:35:21 +0900] rev 38691
fileset: remove subset and unused filtering functions from matchctx
Sat, 09 Jun 2018 22:31:51 +0900 fileset: remove callexisting flag and mctx.existing() (API)
Yuya Nishihara <yuya@tcha.org> [Sat, 09 Jun 2018 22:31:51 +0900] rev 38690
fileset: remove callexisting flag and mctx.existing() (API) They are no longer needed since any files are included as long as they are passed in to the matcher.
Sat, 09 Jun 2018 19:55:10 +0900 fileset: rewrite predicates to return matcher not closed to subset (API) (BC)
Yuya Nishihara <yuya@tcha.org> [Sat, 09 Jun 2018 19:55:10 +0900] rev 38689
fileset: rewrite predicates to return matcher not closed to subset (API) (BC) This makes fileset expression open to any input, so that we can just say "hg status 'set: not binary()'" to select text files including unknowns. With this and removal of subset computation, 'set:**' becomes as fast as 'glob:**'. Further optimization will probably be possible by narrowing the file tree to compute status for example. This also fixes 'subrepo()' to not ignore the current mctx.subset. .. bc:: The fileset expression may include untracked files by default. Use ``tracked()`` to explicitly filter out files not existing at the context revision.
Tue, 10 Jul 2018 23:49:48 +0900 highlight: use matcher API to test if file should be pygmentized
Yuya Nishihara <yuya@tcha.org> [Tue, 10 Jul 2018 23:49:48 +0900] rev 38688
highlight: use matcher API to test if file should be pygmentized Prepares for the upcoming API change. We'll no longer have to call the fileset function directly since the cost of the matcher-based fileset will become O(number of tests) from O(number of files in subset).
Sun, 10 Jun 2018 20:58:10 +0900 fileset: parse argument of size() by predicate function
Yuya Nishihara <yuya@tcha.org> [Sun, 10 Jun 2018 20:58:10 +0900] rev 38687
fileset: parse argument of size() by predicate function This change is necessary to pass in a size expression to predicatematcher. See the next patch.
Sun, 10 Jun 2018 22:19:56 +0900 fileset: add "tracked()" to explicitly select files in the revision
Yuya Nishihara <yuya@tcha.org> [Sun, 10 Jun 2018 22:19:56 +0900] rev 38686
fileset: add "tracked()" to explicitly select files in the revision I'm going to rewrite filesets to be match predicates, which means basic patterns such as '*' will no longer be "closed" to the subset constructed from the ctx. Good thing is that 'hg status "set:not binary()"' can include unknown files out of the box, and fileset computation will likely to be faster as we won't have to walk dirstate twice, for example. Bad thing is that we can't select files at a certain revision by 'set:revs(REV, **)' since '**' is "open" to any paths. So, this patch introduces "tracked()" as a replacement for the '**' in the example above.
Sat, 09 Jun 2018 18:11:49 +0900 fileset: rewrite andset() to not use mctx.narrow()
Yuya Nishihara <yuya@tcha.org> [Sat, 09 Jun 2018 18:11:49 +0900] rev 38685
fileset: rewrite andset() to not use mctx.narrow() New code is less efficient than the original, but it helps porting andset() to matcher composition. This will be cleaned up later. This effectively disables the fullmatchctx magic since mctx will never be demoted to the matchctx. The fullmatchctx class will be removed later.
Sun, 10 Jun 2018 20:02:53 +0900 fileset: add helpers to make predicatematcher and nevermatcher
Yuya Nishihara <yuya@tcha.org> [Sun, 10 Jun 2018 20:02:53 +0900] rev 38684
fileset: add helpers to make predicatematcher and nevermatcher These functions will be used to compose a tree of matchers from a fileset expression.
Sat, 14 Jul 2018 13:21:49 +0900 phases: micro-optimize newheads() to not create context objects
Yuya Nishihara <yuya@tcha.org> [Sat, 14 Jul 2018 13:21:49 +0900] rev 38683
phases: micro-optimize newheads() to not create context objects
Sat, 14 Jul 2018 13:19:18 +0900 phases: remove excessive optimization from newheads() (issue5939)
Yuya Nishihara <yuya@tcha.org> [Sat, 14 Jul 2018 13:19:18 +0900] rev 38682
phases: remove excessive optimization from newheads() (issue5939) This function is intended to compute 'heads(::heads - roots::)', but it failed because 'heads + parents(roots)' missed sibling branches of the roots. That's why the public heads slipped down from D to B in the example added by 2a227782e754 "tests: add test demonstrating phase loss when cloning": > E draft > |\Z draft > | Y draft > D | public > | X draft > C/ public > B public > A public where heads = {E, Z}, roots = {X}
Sun, 15 Jul 2018 15:48:18 +0530 rebase: remove unused variable "release" and an extra blank line
Sushil khanchi <sushilkhanchi97@gmail.com> [Sun, 15 Jul 2018 15:48:18 +0530] rev 38681
rebase: remove unused variable "release" and an extra blank line Differential Revision: https://phab.mercurial-scm.org/D3947
Sat, 14 Jul 2018 23:00:22 +0530 rebase: remove unnecessary confirm block
Sushil khanchi <sushilkhanchi97@gmail.com> [Sat, 14 Jul 2018 23:00:22 +0530] rev 38680
rebase: remove unnecessary confirm block Removed unnecessary 'if confirm:' block as that thing is now handled at 'finally'. Differential Revision: https://phab.mercurial-scm.org/D3945
Sat, 14 Jul 2018 08:59:42 +0530 rebase: in --confirm option just abort if hit a conflict
Sushil khanchi <sushilkhanchi97@gmail.com> [Sat, 14 Jul 2018 08:59:42 +0530] rev 38679
rebase: in --confirm option just abort if hit a conflict Before this patch, it was prompting the user in both cases 1) when there is no conflict 2) when there is at least one conflict. But for simplicity we can just abort if we hit a conflict and no need to prompt in that case. Differential Revision: https://phab.mercurial-scm.org/D3944
Thu, 12 Jul 2018 15:29:03 +0200 pullbundle: fix handling of gzip bundlespecs
Joerg Sonnenberger <joerg@bec.de> [Thu, 12 Jul 2018 15:29:03 +0200] rev 38678
pullbundle: fix handling of gzip bundlespecs Differential Revision: https://phab.mercurial-scm.org/D3933
Wed, 11 Jul 2018 16:44:33 -0700 tests: add test demonstrating phase loss when cloning (issue5939)
Gregory Szorc <gregory.szorc@gmail.com> [Wed, 11 Jul 2018 16:44:33 -0700] rev 38677
tests: add test demonstrating phase loss when cloning (issue5939) The added tests demonstrate that phases exchange when using the listkeys based phases exchange fails to preserve public phase in a certain scenario when a merge is a phase root. Both non-bundle2 and bundle2 prior to the binary phase data part are buggy. Differential Revision: https://phab.mercurial-scm.org/D3932
Fri, 13 Jul 2018 14:20:12 -0700 scmutil: rewrite docstring for filecache
Gregory Szorc <gregory.szorc@gmail.com> [Fri, 13 Jul 2018 14:20:12 -0700] rev 38676
scmutil: rewrite docstring for filecache The old docstring was incorrect in that it said that subsequent calls perform a stat() and refresh the object if things change. This is not how things work: __get__ populates obj.__dict__[self.sname] with the result of the decorated function and returns this value without validation on subsequent calls, if available. The correct usage of this type is kinda wonky. It would probably benefit from a refactor. But I don't have time to do that right now. But we can change the docstring so others aren't entrapped by its lies (like I was when using repofilecache in a Mozilla extension). Differential Revision: https://phab.mercurial-scm.org/D3943
Thu, 12 Jul 2018 22:35:54 +0530 rebase: correct misleading message in --confirm option
Sushil khanchi <sushilkhanchi97@gmail.com> [Thu, 12 Jul 2018 22:35:54 +0530] rev 38675
rebase: correct misleading message in --confirm option Differential Revision: https://phab.mercurial-scm.org/D3939
Thu, 12 Jul 2018 22:23:51 +0530 rebase: make sure we don't loose the return code in --confirm option
Sushil khanchi <sushilkhanchi97@gmail.com> [Thu, 12 Jul 2018 22:23:51 +0530] rev 38674
rebase: make sure we don't loose the return code in --confirm option return _dorebase() to make sure it returns 'return code'. Differential Revision: https://phab.mercurial-scm.org/D3938
Wed, 11 Jul 2018 15:12:01 -0700 rebase: use revnums (not nodes) for set of extinct revisions
Martin von Zweigbergk <martinvonz@google.com> [Wed, 11 Jul 2018 15:12:01 -0700] rev 38673
rebase: use revnums (not nodes) for set of extinct revisions There is no need to convert extinct revisions to nodeids. Differential Revision: https://phab.mercurial-scm.org/D3942
Wed, 11 Jul 2018 15:01:47 -0700 rebase: avoid converting from nodes to revnums twice
Martin von Zweigbergk <martinvonz@google.com> [Wed, 11 Jul 2018 15:01:47 -0700] rev 38672
rebase: avoid converting from nodes to revnums twice In the case where the node has successors, but none of them is an ancestor of the destination, we would iterate over the successor nodes twice, check if they're in the repo and convert them to revnums. I doubt it's a measureable cost, but it gets simpler this way too. Differential Revision: https://phab.mercurial-scm.org/D3941
(0) -30000 -10000 -3000 -1000 -300 -100 -50 -30 +30 +50 +100 +300 +1000 +3000 +10000 tip