Wed, 27 May 2015 15:49:24 -0700 record: add an operation arguments to customize recording ui
Laurent Charignon <lcharignon@fb.com> [Wed, 27 May 2015 15:49:24 -0700] rev 25310
record: add an operation arguments to customize recording ui This patch is part of a series of patches to change the recording ui to reflect the operation currently running (commit, shelve, revert ...). This patch adds a new argument to the recording function to reflect in the UI what operation we are running.
Sun, 26 Apr 2015 18:13:48 +0900 revset: reduce nesting of chained 'or' operations (issue4624)
Yuya Nishihara <yuya@tcha.org> [Sun, 26 Apr 2015 18:13:48 +0900] rev 25309
revset: reduce nesting of chained 'or' operations (issue4624) This reduces the stack depth of chained 'or' operations: - from O(n) to O(1) at the parsing, alias expansion and optimization phases - from O(n) to O(log(n)) at the evaluation phase simplifyinfixops() must be applied immediately after the parsing phase. Otherwise, alias expansion would crash by "maximum recursion depth exceeded" error. Test cases use 'x:y|y:z' instead of 'x|y' because I'm planning to optimize 'x|y' in a different way. Benchmarks: 0) 605b1d32c1c0 1) this patch revset #0: 0 + 1 + 2 + ... + 200 0) wall 0.026347 comb 0.030000 user 0.030000 sys 0.000000 (best of 101) 1) wall 0.023858 comb 0.030000 user 0.030000 sys 0.000000 (best of 112) revset #1: 0 + 1 + 2 + ... + 1000 0) maximum recursion depth exceeded 1) wall 0.483341 comb 0.480000 user 0.480000 sys 0.000000 (best of 20) revset #2: sort(0 + 1 + 2 + ... + 200) 0) wall 0.013404 comb 0.010000 user 0.010000 sys 0.000000 (best of 196) 1) wall 0.006814 comb 0.010000 user 0.010000 sys 0.000000 (best of 375) revset #3: sort(0 + 1 + 2 + ... + 1000) 0) maximum recursion depth exceeded 1) wall 0.035240 comb 0.040000 user 0.040000 sys 0.000000 (best of 100)
Sun, 24 May 2015 14:10:52 +0900 revset: add helper to build balanced addsets from chained 'or' operations
Yuya Nishihara <yuya@tcha.org> [Sun, 24 May 2015 14:10:52 +0900] rev 25308
revset: add helper to build balanced addsets from chained 'or' operations This function will be used by revset.orset() and scmutil.revrange() to reduce the stack depth from O(n) to O(log(n)). We've bikeshed the interface of this function, but we couldn't come to an agreement. So we decided to attempt to make it move forward. marmoute: - new factory function isn't necessary for balanced addsets - addset.__init__ can just recurse, should handle "len(subsets) == 2+" yuja: - want to write all "len(subsets) == 0, 1, 2, 3+" cases in the same function - no recursion in __init__ for cosmetic reason: can't return, can't call __init__ directly I've changed it to a private function so that nobody would be tempted to utilize it.
Sun, 26 Apr 2015 18:27:32 +0900 revset: comment that we can't swap 'or' operands by weight
Yuya Nishihara <yuya@tcha.org> [Sun, 26 Apr 2015 18:27:32 +0900] rev 25307
revset: comment that we can't swap 'or' operands by weight Though the original code did nothing, it tried to optimize the calculation order by weight. But we can't simply swap 'ta' and 'tb' because it would change the order of revisions. For future reference, this patch keeps the modified version of the original code as comment.
Sun, 26 Apr 2015 18:05:23 +0900 parser: add helper to reduce nesting of chained infix operations
Yuya Nishihara <yuya@tcha.org> [Sun, 26 Apr 2015 18:05:23 +0900] rev 25306
parser: add helper to reduce nesting of chained infix operations This will be used to avoid stack overflow caused by chained 'or' operations in revset.
Wed, 27 May 2015 14:28:29 -0500 convert: properly pass null ids through .hgtags (issue4678) stable
Matt Mackall <mpm@selenic.com> [Wed, 27 May 2015 14:28:29 -0500] rev 25305
convert: properly pass null ids through .hgtags (issue4678) Mercurial uses tags of null to mark deletions, but convert was silently discarding these because it had no mapping for them. Thus, it was resurrecting deleted tags.
Wed, 27 May 2015 17:28:55 -0500 commit: improve --close-branch documentation
Matt Mackall <mpm@selenic.com> [Wed, 27 May 2015 17:28:55 -0500] rev 25304
commit: improve --close-branch documentation The confusion about whether this flag closes a whole branch or just a head comes up regularly on IRC, so add some clarification.
Fri, 22 May 2015 13:06:45 -0700 patch: add 'extra' argument to makememctx
Laurent Charignon <lcharignon@fb.com> [Fri, 22 May 2015 13:06:45 -0700] rev 25303
patch: add 'extra' argument to makememctx The uncommit command in evolve needs to create memory context with given extra parameters. This patch allows us to do that instead of always giving them an empty value and having to override it afterwards.
Wed, 27 May 2015 17:41:42 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Wed, 27 May 2015 17:41:42 -0500] rev 25302
merge with stable
Wed, 27 May 2015 13:28:16 -0400 match: normpath the ignore source when expanding the 'subinclude' kind
Matt Harbison <matt_harbison@yahoo.com> [Wed, 27 May 2015 13:28:16 -0400] rev 25301
match: normpath the ignore source when expanding the 'subinclude' kind Windows was previously getting this test failure: --- e:/Projects/hg/tests/test-hgignore.t +++ e:/Projects/hg/tests/test-hgignore.t.err @@ -230,6 +230,7 @@ $ hg status ? dir1/file2 + ? dir1/subdir/subfile3 ? dir1/subdir/subfile4 ? dir2/file1 @@ -241,4 +242,4 @@ $ echo "glob:file*2" > dir1/.hgignoretwo $ hg status | grep file2 - [1] + ? dir1/file2 The problem was 'source' would be in the form "F:\test-hgignore.t\.hgignore", so when pathutil.dirname() split on '/', 'sourceroot' was empty. Therefore, 'path' ended up being relative instead of absolute.
(0) -10000 -3000 -1000 -300 -100 -10 +10 +100 +300 +1000 +3000 +10000 tip