Mon, 15 Jun 2015 16:08:22 -0700 phase: also overwrite phase's sets when replacing a phasecache
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 15 Jun 2015 16:08:22 -0700] rev 25594
phase: also overwrite phase's sets when replacing a phasecache We need to copy this new attributes around too. This fix an issue where phases data used by 'not public()' were not invalidated properly.
Mon, 15 Jun 2015 15:57:47 -0700 phase: invalidate the phase's set cache alongside the revs
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 15 Jun 2015 15:57:47 -0700] rev 25593
phase: invalidate the phase's set cache alongside the revs Invalidate was leaving set data around leading to possible bugs in revset.
Mon, 15 Jun 2015 15:52:52 -0700 phase: also copy phase's sets when copying phase cache
Pierre-Yves David <pierre-yves.david@fb.com> [Mon, 15 Jun 2015 15:52:52 -0700] rev 25592
phase: also copy phase's sets when copying phase cache We forgot to add such copy when we added the attributes.
Tue, 16 Jun 2015 16:15:15 -0400 verify: check the subrepository references in .hgsubstate
Matt Harbison <matt_harbison@yahoo.com> [Tue, 16 Jun 2015 16:15:15 -0400] rev 25591
verify: check the subrepository references in .hgsubstate While hopefully atypical, there are reasons that a subrepository revision can be lost that aren't covered by corruption of the .hgsubstate revlog. Such things can happen when a subrepo is amended, stripped or simply isn't pulled from upstream because the parent repo revision wasn't updated yet. There's no way to know if it is an error, but this will find potential problems sooner than when some random revision is updated. Until recently, convert made no attempt at rewriting the .hgsubstate file. The impetuous for this is to verify the conversion of some repositories, and this is orders of magnitude faster than a bash script from 0..tip that does an 'hg update -C $rev'. But it is equally useful to determine if everything has been pulled down before taking a thumb drive on the go. It feels somewhat wrong to leave this out of verifymod (mostly because the file is already read in there, and the final summary is printed before the subrepos are checked). But verifymod looks very low level, so importing subrepo stuff there seems more wrong.
Sun, 14 Jun 2015 22:04:17 -0400 context: override workingctx.hex() to avoid a crash
Matt Harbison <matt_harbison@yahoo.com> [Sun, 14 Jun 2015 22:04:17 -0400] rev 25590
context: override workingctx.hex() to avoid a crash Since node is None for workingctx, it can't use the base class implementation of 'hex(self.node())'. It doesn't appear that there are any current callers of this, but there will be when archive supports 'wdir()'. My first thought was to use "{p1node}+", but that would cause headaches elsewhere [1]. We should probably fix up localrepository.__getitem__ to accept this hash for consistency, as a followup. This works, if the full hash is specified: @@ -480,7 +480,7 @@ return dirstate.dirstate(self.vfs, self.ui, self.root, validate) def __getitem__(self, changeid): - if changeid is None: + if changeid is None or changeid == 'ff' * 20: return context.workingctx(self) if isinstance(changeid, slice): return [context.changectx(self, i) That differs from null, where it will accept any number of 0s, as long as it isn't ambiguous. [1] https://www.selenic.com/pipermail/mercurial-devel/2015-June/071166.html
Mon, 15 Jun 2015 16:50:31 -0400 convert: update 'intermediate-source' in the destination's extras dictionary
Matt Harbison <matt_harbison@yahoo.com> [Mon, 15 Jun 2015 16:50:31 -0400] rev 25589
convert: update 'intermediate-source' in the destination's extras dictionary
Tue, 16 Jun 2015 23:06:30 +0900 check-code: ban use of '[[ ]]' in tests
Yuya Nishihara <yuya@tcha.org> [Tue, 16 Jun 2015 23:06:30 +0900] rev 25588
check-code: ban use of '[[ ]]' in tests
Tue, 16 Jun 2015 22:47:05 +0900 test-fileset: remove bashism, use test instead of '[[ ]]'
Yuya Nishihara <yuya@tcha.org> [Tue, 16 Jun 2015 22:47:05 +0900] rev 25587
test-fileset: remove bashism, use test instead of '[[ ]]' Debian dash complains about it. $TESTTMP.sh: 213: $TESTTMP.sh: [[: not found
Wed, 03 Jun 2015 18:30:25 +0800 tests: test symbolic revision (de)reference in all hgweb styles
Anton Shestakov <engored@ya.ru> [Wed, 03 Jun 2015 18:30:25 +0800] rev 25586
tests: test symbolic revision (de)reference in all hgweb styles Right now the way revisions get specified in hgweb urls is ignored, i.e. after revision is resolved, only its node hash (or sometimes local revision number) is used for all links in the templates. So, basically, every page for "tip" revision (or any other symbolic rev id) will dereference it: lose the nice symbolic name by putting node hash/local rev number in its place. The only exception so far is archive links on some pages: /archive/tip.{bz2,gz,zip}. The fact that this dereferencing is neither convenient nor intuitive is reflected in issue2296, issue2826 and issue3594. issue3634 also mentions this. But to fix this it's first needed to demonstrate and test the way templates currently form links. The new test file is separate from other hgweb tests, since it seems big and distinct enough. And it's so big because links are formed in each template independently, so it's necessary to test them all to avoid any inconsistent behavior.
Tue, 16 Jun 2015 00:46:01 -0700 dirstate: use a presized dict for the dirstate
Siddharth Agarwal <sid0@fb.com> [Tue, 16 Jun 2015 00:46:01 -0700] rev 25585
dirstate: use a presized dict for the dirstate This uses a simple heuristic to avoid expensive resizes. On a real-world repo with around 400,000 files, perfdirstate: before: ! wall 0.155562 comb 0.160000 user 0.150000 sys 0.010000 (best of 64) after: ! wall 0.132638 comb 0.130000 user 0.120000 sys 0.010000 (best of 75) On another real-world repo with around 250,000 files: before: ! wall 0.098459 comb 0.100000 user 0.090000 sys 0.010000 (best of 100) after: ! wall 0.089084 comb 0.090000 user 0.080000 sys 0.010000 (best of 100)
(0) -10000 -3000 -1000 -300 -100 -10 +10 +100 +300 +1000 +3000 +10000 tip