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.
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.
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.
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.
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.
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.
Matt Mackall <mpm@selenic.com> [Wed, 27 May 2015 17:41:42 -0500] rev 25302
merge with stable
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.
Pierre-Yves David <pierre-yves.david@fb.com> [Sat, 23 May 2015 21:18:47 -0700] rev 25300
repair: forbid strip from inside a transaction
Stripping inside a transaction will (at best) crash or (at worst)
result in very unexpected results. We explicitly forbid it early.
Matt Harbison <matt_harbison@yahoo.com> [Wed, 27 May 2015 12:14:10 -0400] rev 25299
test-treemanifest: add globs for Windows