Thu, 04 Feb 2016 15:38:04 -0800 obsolete: fix n^2 marker computation behavior
Durham Goode <durham@fb.com> [Thu, 04 Feb 2016 15:38:04 -0800] rev 27984
obsolete: fix n^2 marker computation behavior Previously, if you ran obsolete.createmarkers with a bunch of markers that did not have successors (like when you do a prune), it encountered a n^2 computation behavior because the loop would read the changelog (to get ctx.parents()), then add a marker, in a loop. Adding a marker invalidated the computehidden cache, and reading the changelog recomputed it. This resulted in pruning 150 commits taking 150+ seconds in a large repo. The fix is to break the reading part of the loop to be separate from the writing part.
Wed, 03 Feb 2016 17:44:11 -0800 memctx: fix memctx manifest file hashes
Durham Goode <durham@fb.com> [Wed, 03 Feb 2016 17:44:11 -0800] rev 27983
memctx: fix memctx manifest file hashes When memctx is asked for a manifest, it constructs one by merging the p1 manifest, and the changes that are on top. For the changes on top, it was previously using p1.node() as the file entries parent, which actually returns the commit node that the p1 linkrev points at! Which is entirely incorrect. The fix is to use p1.filenode() instead, which returns the parent file node as desired. I don't know how to execute this or make it have a visible effect, so I'm not sure how to test it. It was noticed because asking for the linkrev is an expensive operation when using the remotefilelog extension and this was causing performance regressions with commit.
Fri, 29 Jan 2016 14:53:44 -0500 schemes: add debugexpandscheme command, resolving a scheme to canonical form
Jason R. Coombs <jaraco@jaraco.com> [Fri, 29 Jan 2016 14:53:44 -0500] rev 27982
schemes: add debugexpandscheme command, resolving a scheme to canonical form
(0) -10000 -3000 -1000 -300 -100 -30 -10 -3 +3 +10 +30 +100 +300 +1000 +3000 +10000 tip