Sat, 04 Apr 2015 11:24:48 -0700 histedit: fix preventing strips during histedit
Durham Goode <durham@fb.com> [Sat, 04 Apr 2015 11:24:48 -0700] rev 24626
histedit: fix preventing strips during histedit We were trying to prevent strips of important nodes during histedit, but the check was actually comparing the short hashes in the rules to the exact value the user typed in, so it only ever worked if the user typed a 12 character hash.
Fri, 03 Apr 2015 15:18:34 -0700 copies: pass changectx instead of manifest to _computenonoverlap
Durham Goode <durham@fb.com> [Fri, 03 Apr 2015 15:18:34 -0700] rev 24625
copies: pass changectx instead of manifest to _computenonoverlap The _computenonoverlap function takes two manifests to allow extensions to hook in and read the manifest nodes produced by the function. The remotefilelog extension actually needs the entire changectx instead (which includes the manifest) so it can prefetch the subset of files necessary for a sparse checkout (and the sparse checkout depends on which commit is being accessed, hence the need for the changectx). I have tests in the remotefilelog extension that cover this.
Mon, 06 Apr 2015 10:46:44 -0700 dirs._addpath: don't mutate Python strings after exposing them (issue4589)
Siddharth Agarwal <sid0@fb.com> [Mon, 06 Apr 2015 10:46:44 -0700] rev 24624
dirs._addpath: don't mutate Python strings after exposing them (issue4589) One of the rules of Python strings is that they're immutable. dirs._addpath breaks this assumption for performance, which is fine as long as it is done safely -- once a string is no longer internal-only it shouldn't be mutated. Unfortunately, we weren't being safe here -- we were mutating 'key' even after adding it to a dictionary. This only really affects other C code that reads strings, so it's somewhat hard to write a test for this without poking into the internal representation of the string via ctypes or similar. There is currently no C code that reads the output of the string, but there will likely be some soon as the bug indicates. There's no significant difference in performance.
Mon, 06 Apr 2015 08:23:27 -0700 parsers: check for memory allocation overflows more carefully
Bryan O'Sullivan <bryano@fb.com> [Mon, 06 Apr 2015 08:23:27 -0700] rev 24623
parsers: check for memory allocation overflows more carefully
Sat, 04 Apr 2015 11:27:15 +0200 parsers.c: avoid implicit conversion loses integer precision warning
André Sintzoff <andre.sintzoff@gmail.com> [Sat, 04 Apr 2015 11:27:15 +0200] rev 24622
parsers.c: avoid implicit conversion loses integer precision warning This warning is raised by Apple LLVM version 6.0 (clang-600.0.57) (based on LLVM 3.5svn) and was introduced in 670aaee7931c
Sat, 04 Apr 2015 21:54:12 -0700 dirstate.walk: don't report same file stat multiple times stable
Martin von Zweigbergk <martinvonz@google.com> [Sat, 04 Apr 2015 21:54:12 -0700] rev 24621
dirstate.walk: don't report same file stat multiple times dirstate.walk() generates pairs of filename and a stat-like object. After "hg mv foo Foo", it generates one pair for "foo" and one for "Foo", as it should. However, on case-insensitive file systems, when it tries to stat to get the disk state as well, it gets the same stat result for both names. This confuses at least scmutil._interestingfiles(), making it think that "foo" was forgotten rather than removed. That, in turn, makes "hg addremove" add "foo" back, resulting in both cases in the dirstate, as reported in issue4590. This change only takes care of the "if unknown" branch. A similar fix should perhaps be applied to the other branch.
(0) -10000 -3000 -1000 -300 -100 -30 -10 -6 +6 +10 +30 +100 +300 +1000 +3000 +10000 tip