Wed, 18 Mar 2015 15:59:45 -0700 manifest: avoid intersectfiles for matches > 100 files
Durham Goode <durham@fb.com> [Wed, 18 Mar 2015 15:59:45 -0700] rev 24396
manifest: avoid intersectfiles for matches > 100 files Previously we tried to avoid manifest.intersectfiles for exact matches with less than 100 files. However, when the left side of the "or" is false, the right side gets evaluated, of course, and the evaluation of "util.all(fn in self for fn in files)" is both costly in itself, and likely to be true, causing intersectfiles() to be called after all. Fix this by moving the check for less than 100 files outside of the "or" expression, thereby also making it apply for a non-exact matcher, should one be passed in.
Thu, 19 Mar 2015 17:40:19 +0100 convert: optimize convert of files that are unmodified from p2 in merges
Mads Kiilerich <madski@unity3d.com> [Thu, 19 Mar 2015 17:40:19 +0100] rev 24395
convert: optimize convert of files that are unmodified from p2 in merges Conversion of a merge starts with p1 and re-adds the files that were changed in the merge or came unmodified from p2. Files that are unmodified from p1 will thus not be touched and take no time. Files that are unmodified from p2 would be retrieved and rehashed. They would end up getting the same hash as in p2 and end up reusing the filelog entry and look like the p1 case ... but it was slow. Instead, make getchanges also return 'files that are unmodified from p2' so the sink can reuse the existing p2 entry instead of calling getfile. Reuse of filelog entries can make a big difference when files are big and with long revlong chains so they take time to retrieve and hash, or when using an expensive custom getfile function (think http://mercurial.selenic.com/wiki/ConvertExtension#Customization with a code reformatter). This in combination with changes to reuse filectx entries in localrepo._filecommit make 'unchanged from p2' almost as fast as 'unchanged from p1'. This is so far only implemented for the combination of hg source and hg sink. This is a refactoring/optimization. It is covered by existing tests and show no changes - which is a good thing.
Thu, 19 Mar 2015 17:36:17 +0100 localrepo: reuse commit of parent filectx entries without rehashing
Mads Kiilerich <madski@unity3d.com> [Thu, 19 Mar 2015 17:36:17 +0100] rev 24394
localrepo: reuse commit of parent filectx entries without rehashing It is currently only amend and debugbuilddag that will pass a filectx to localrepo._filecommit. Amend will usually not hit the case where a the filectx is a parent that just can be reused. Future convert changes will use it more.
Thu, 19 Mar 2015 13:00:44 -0700 obsolete: avoid infinite loop from obs-cycle in divergence (issue4126)
Pierre-Yves David <pierre-yves.david@fb.com> [Thu, 19 Mar 2015 13:00:44 -0700] rev 24393
obsolete: avoid infinite loop from obs-cycle in divergence (issue4126) As for other currently in place cycle detection, arbitrarily cut the first obsolescence link that create a cycle avoiding the infinite loop. This will have to be made more deterministic in the future but we do not really care right now.
Thu, 19 Mar 2015 15:21:08 -0500 tests: avoid deprecation warning
Matt Mackall <mpm@selenic.com> [Thu, 19 Mar 2015 15:21:08 -0500] rev 24392
tests: avoid deprecation warning
Thu, 19 Mar 2015 09:12:21 -0700 walkchangerevs: make followfilter a top-level class
Martin von Zweigbergk <martinvonz@google.com> [Thu, 19 Mar 2015 09:12:21 -0700] rev 24391
walkchangerevs: make followfilter a top-level class The class only depends on the 'repo' variable in the closure, so let's move the class out of the function and make it explicit that that (the repo) is all it needs.
Thu, 19 Mar 2015 10:18:05 -0700 patch._applydiff: resolve prefix with respect to the cwd
Siddharth Agarwal <sid0@fb.com> [Thu, 19 Mar 2015 10:18:05 -0700] rev 24390
patch._applydiff: resolve prefix with respect to the cwd This has several advantages compared to resolving it relative to the root: - '--prefix .' works as expected. - consistent with upcoming 'hg diff' option to produce relative patches (I made sure to put in the (glob) annotations this time!)
Fri, 20 Mar 2015 00:22:37 +0900 test-revert-interactive: eliminate bashism in wildcard pattern
Yuya Nishihara <yuya@tcha.org> [Fri, 20 Mar 2015 00:22:37 +0900] rev 24389
test-revert-interactive: eliminate bashism in wildcard pattern The test failed with Debian dash.
(0) -10000 -3000 -1000 -300 -100 -30 -10 -8 +8 +10 +30 +100 +300 +1000 +3000 +10000 tip