Tue, 18 Sep 2012 11:43:30 +0200 pathencode: new C module with fast encodedir() function
Adrian Buehlmann <adrian@cadifra.com> [Tue, 18 Sep 2012 11:43:30 +0200] rev 17606
pathencode: new C module with fast encodedir() function Not yet used (will be enabled in a later patch). This patch is a stripped down version of patches originally created by Bryan O'Sullivan <bryano@fb.com>
Tue, 18 Sep 2012 07:58:50 +0200 store: add multiline doctest case for encodedir()
Adrian Buehlmann <adrian@cadifra.com> [Tue, 18 Sep 2012 07:58:50 +0200] rev 17605
store: add multiline doctest case for encodedir() a followup to 64c6a0d4d4bd
Mon, 17 Sep 2012 11:00:38 +0200 store: optimize fncache._load a bit by dirdecoding the contents in one go
Adrian Buehlmann <adrian@cadifra.com> [Mon, 17 Sep 2012 11:00:38 +0200] rev 17604
store: optimize fncache._load a bit by dirdecoding the contents in one go For a netbeans clone on Windows 7 x64: Before: $ hg perffncacheload ! wall 0.124000 comb 0.124801 user 0.124801 sys 0.000000 (best of 76) After: $ hg perffncacheload ! wall 0.096000 comb 0.093601 user 0.078001 sys 0.015600 (best of 97)
Tue, 18 Sep 2012 17:00:58 +0200 wireproto: workaround for yield inside try/finally incompatible with python2.4
Thomas Arendsen Hein <thomas@intevation.de> [Tue, 18 Sep 2012 17:00:58 +0200] rev 17603
wireproto: workaround for yield inside try/finally incompatible with python2.4
Tue, 18 Sep 2012 16:19:56 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Tue, 18 Sep 2012 16:19:56 -0500] rev 17602
merge with stable
Sun, 09 Sep 2012 12:43:24 -0400 largefiles: delegate to the wrapped clone command stable
Matt Harbison <matt_harbison@yahoo.com> [Sun, 09 Sep 2012 12:43:24 -0400] rev 17601
largefiles: delegate to the wrapped clone command This allows the wrapped command's validation code to run (which is currently only to ensure 'noupdate' and 'updaterev' aren't both specified), the copy/pasted unpacking of hg.clone() args to be removed, and any future changes to the base command (however unlikely) to be inherited by largefiles. Unfortunately, the command override can't be swapped entirely for an hg.clone() override because the extra --all-largefiles arg needs to be injected. It also isn't enough to call the wrapped clone command and leave the caching code after it, because the file caching code needs access to the destination repo, which is only available from hg.clone(). An alternative would be to use the dest path in the clone command override to re-obtain a reference to the repo. A slight deviation from the regular hg.clone() function is that the repo is NOT deleted if the caching fails, but that was also the previous behavior. Maybe it should for consistency?
Sun, 09 Sep 2012 12:09:53 -0400 largefiles: don't convert dest=None to dest=hg.defaultdest() in clone command stable
Matt Harbison <matt_harbison@yahoo.com> [Sun, 09 Sep 2012 12:09:53 -0400] rev 17600
largefiles: don't convert dest=None to dest=hg.defaultdest() in clone command A status message is output if hg.clone() determines the default destination because None was provided. The previous code never passed None to hg.clone().
Sun, 09 Sep 2012 03:37:38 -0400 largefiles: restore caching of largefiles with 'clone -U --all-largefiles' stable
Matt Harbison <matt_harbison@yahoo.com> [Sun, 09 Sep 2012 03:37:38 -0400] rev 17599
largefiles: restore caching of largefiles with 'clone -U --all-largefiles' This was broken when restoring normal -u and -U functionality.
Sat, 08 Sep 2012 13:31:06 -0400 largefiles: restore normal 'clone -u' and 'clone -U' functionality stable
Matt Harbison <matt_harbison@yahoo.com> [Sat, 08 Sep 2012 13:31:06 -0400] rev 17598
largefiles: restore normal 'clone -u' and 'clone -U' functionality Previously, tip would be checked out regardless of the -u or -U parameter. I'm not sure what the 'required for successful walkchangerevs' comment meant, but it appears to reference code which has since moved to downloadlfiles() in 7d6a660ca151. Perhaps it was to force caching when the -U parameter is given? The price of this change is that -U --all-largefiles won't cache anything. That will be fixed next. Note that X + Y in the 'X largefiles updated, n removed' and 'Y additional largefiles cached' lines do not add up to the same values in these tests, but all of the largefiles have been downloaded. The reason being that several largefiles have the same content (eb7338044 is pointed to by sub/large2, large3 and sub/large4). In the 'clone -u 1' operation, this largefile is cached to populate the working directory, even without --all-largefiles. That means the file isn't downloaded again and cached in the rev where large3 and sub/large4 both point to this file. Downloading that one file in that one rev seems to be counted twice with 'clone -u 0'. (Maybe it is also being downloaded twice?)
Sat, 15 Sep 2012 22:50:34 -0400 formatter: add base implementation of data method
David M. Carr <david@carrclan.us> [Sat, 15 Sep 2012 22:50:34 -0400] rev 17597
formatter: add base implementation of data method Previously, nothing was done with the passed in values, which clearly wasn't the intention.
Tue, 18 Sep 2012 15:36:58 +0200 merge with stable
Thomas Arendsen Hein <thomas@intevation.de> [Tue, 18 Sep 2012 15:36:58 +0200] rev 17596
merge with stable
Tue, 18 Sep 2012 15:30:22 +0200 merge with main
Thomas Arendsen Hein <thomas@intevation.de> [Tue, 18 Sep 2012 15:30:22 +0200] rev 17595
merge with main
Tue, 18 Sep 2012 15:29:43 +0200 largefiles: fix trailing spaces in test-largefiles.t stable
Thomas Arendsen Hein <thomas@intevation.de> [Tue, 18 Sep 2012 15:29:43 +0200] rev 17594
largefiles: fix trailing spaces in test-largefiles.t With the default branch this will cause warnings from check-code.
Sun, 16 Sep 2012 22:43:24 +0200 test-hybridencode: add a case for direncode
Adrian Buehlmann <adrian@cadifra.com> [Sun, 16 Sep 2012 22:43:24 +0200] rev 17593
test-hybridencode: add a case for direncode
Mon, 17 Sep 2012 08:58:35 +0200 store: optimize fncache._write by direncoding the contents in one go
Adrian Buehlmann <adrian@cadifra.com> [Mon, 17 Sep 2012 08:58:35 +0200] rev 17592
store: optimize fncache._write by direncoding the contents in one go For a netbeans clone on Windows 7 x64: Before: $ hg perffncachewrite ! wall 0.210000 comb 0.218401 user 0.202801 sys 0.015600 (best of 47) After: $ hg perffncachewrite ! wall 0.104000 comb 0.109201 user 0.078000 sys 0.031200 (best of 95)
Sun, 16 Sep 2012 11:41:02 +0200 store: move encode lambda logic into fncachestore
Adrian Buehlmann <adrian@cadifra.com> [Sun, 16 Sep 2012 11:41:02 +0200] rev 17591
store: move encode lambda logic into fncachestore and define two named functions at module scope. This again also speeds up perffncacheencode a little bit.
Sun, 16 Sep 2012 11:36:14 +0200 store: eliminate one level of lambda functions on _hybridencode
Adrian Buehlmann <adrian@cadifra.com> [Sun, 16 Sep 2012 11:36:14 +0200] rev 17590
store: eliminate one level of lambda functions on _hybridencode
Sun, 16 Sep 2012 11:36:06 +0200 store: parameter path of _auxencode is now a list of strings
Adrian Buehlmann <adrian@cadifra.com> [Sun, 16 Sep 2012 11:36:06 +0200] rev 17589
store: parameter path of _auxencode is now a list of strings
Sun, 16 Sep 2012 11:36:00 +0200 store: keep an accumulated length for the shorted dirs in _hybridencode
Adrian Buehlmann <adrian@cadifra.com> [Sun, 16 Sep 2012 11:36:00 +0200] rev 17588
store: keep an accumulated length for the shorted dirs in _hybridencode so we don't have to repeatedly do '/'.join(sdirs) inside the loop
Sun, 16 Sep 2012 11:35:55 +0200 store: reorder basename assignment in _hybridencode
Adrian Buehlmann <adrian@cadifra.com> [Sun, 16 Sep 2012 11:35:55 +0200] rev 17587
store: reorder basename assignment in _hybridencode
Sat, 15 Sep 2012 21:44:08 +0200 store: remove uneeded startswith('data/') checks in encodedir() and decodedir()
Adrian Buehlmann <adrian@cadifra.com> [Sat, 15 Sep 2012 21:44:08 +0200] rev 17586
store: remove uneeded startswith('data/') checks in encodedir() and decodedir() I don't think we will ever have anything in the store that resides inside a directory that ends in .i or .d under store/ that we wouldn't want to have direncoded. The files not under data/ surely don't need direncoding, but it doesn't harm to let these few run through it. It hurts more to check whether the thousands of other files start with 'data/'. They do anyway. See also 810387f59696 (fixed with c31fe74a6633), which moved the direncoding from filelog into store
Sat, 15 Sep 2012 21:43:56 +0200 store: remove uneeded startswith('data/') check in _hybridencode()
Adrian Buehlmann <adrian@cadifra.com> [Sat, 15 Sep 2012 21:43:56 +0200] rev 17585
store: remove uneeded startswith('data/') check in _hybridencode()
Sat, 15 Sep 2012 21:43:14 +0200 store: refactor splitting off of "data/" in _hybridencode()
Adrian Buehlmann <adrian@cadifra.com> [Sat, 15 Sep 2012 21:43:14 +0200] rev 17584
store: refactor splitting off of "data/" in _hybridencode() encodefilename() already calls encodedir(). Note that encodedir() skips the encoding if the path doesn't start with "data/".
Mon, 17 Sep 2012 15:13:17 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Mon, 17 Sep 2012 15:13:17 -0500] rev 17583
merge with stable
Mon, 17 Sep 2012 15:13:03 -0500 merge with crew stable
Matt Mackall <mpm@selenic.com> [Mon, 17 Sep 2012 15:13:03 -0500] rev 17582
merge with crew
Mon, 17 Sep 2012 21:53:50 +0200 Merge with stable
Patrick Mezard <patrick@mezard.eu> [Mon, 17 Sep 2012 21:53:50 +0200] rev 17581
Merge with stable
Mon, 17 Sep 2012 21:33:16 +0200 hgweb: fix incorrect graph padding calculation (issue3626) stable
Tim Delaney <timothy.c.delaney@gmail.com> [Mon, 17 Sep 2012 21:33:16 +0200] rev 17580
hgweb: fix incorrect graph padding calculation (issue3626) hgweb has an incorrect padding calculation, causing the text to move further away from the graph the more branches there are (issue3626). This patch fixes all existing templates (gitweb, monoblue, paper and spartan). Tests updated by Patrick Mezard <patrick@mezard.eu>
Wed, 05 Sep 2012 22:42:23 -0400 largefiles: preserve the exit status of the forget command stable
Matt Harbison <matt_harbison@yahoo.com> [Wed, 05 Sep 2012 22:42:23 -0400] rev 17579
largefiles: preserve the exit status of the forget command This maintains the exit codes documented in commands.py.
Wed, 05 Sep 2012 22:31:03 -0400 largefiles: preserve the exit status of the rebase command stable
Matt Harbison <matt_harbison@yahoo.com> [Wed, 05 Sep 2012 22:31:03 -0400] rev 17578
largefiles: preserve the exit status of the rebase command
Wed, 05 Sep 2012 22:12:40 -0400 largefiles: preserve the exit status of the log command stable
Matt Harbison <matt_harbison@yahoo.com> [Wed, 05 Sep 2012 22:12:40 -0400] rev 17577
largefiles: preserve the exit status of the log command
Sun, 09 Sep 2012 20:18:08 -0400 largefiles: exit from remove with 1 on warnings stable
Matt Harbison <matt_harbison@yahoo.com> [Sun, 09 Sep 2012 20:18:08 -0400] rev 17576
largefiles: exit from remove with 1 on warnings This maintains the exit codes documented in commands.py.
Wed, 05 Sep 2012 21:26:08 -0400 largefiles: preserve exit code from outgoing command (issue3611) stable
Matt Harbison <matt_harbison@yahoo.com> [Wed, 05 Sep 2012 21:26:08 -0400] rev 17575
largefiles: preserve exit code from outgoing command (issue3611) This maintains the exit codes documented in commands.py.
Sat, 15 Sep 2012 21:43:05 +0200 store: let _auxencode() return the list of path segments
Adrian Buehlmann <adrian@cadifra.com> [Sat, 15 Sep 2012 21:43:05 +0200] rev 17574
store: let _auxencode() return the list of path segments so we can spare us splitting the path again in _hybridencode()
Sat, 15 Sep 2012 21:42:58 +0200 store: eliminate unneded last assignment to n in _auxencode()
Adrian Buehlmann <adrian@cadifra.com> [Sat, 15 Sep 2012 21:42:58 +0200] rev 17573
store: eliminate unneded last assignment to n in _auxencode() The check for period or space at the end of the string is the last one, the local variable n is thus not used anymore.
Sat, 15 Sep 2012 21:42:52 +0200 store: unindent most of the contents of the for loop in _auxencode()
Adrian Buehlmann <adrian@cadifra.com> [Sat, 15 Sep 2012 21:42:52 +0200] rev 17572
store: unindent most of the contents of the for loop in _auxencode() by refactoring for i, n in enumerate(res): if n: <main code block> to for i, n in enumerate(res): if not n: continue <main code block> (no functional change)
Sat, 15 Sep 2012 21:42:43 +0200 store: optimize _auxencode() by assigning to the list elements of the path
Adrian Buehlmann <adrian@cadifra.com> [Sat, 15 Sep 2012 21:42:43 +0200] rev 17571
store: optimize _auxencode() by assigning to the list elements of the path
Sat, 15 Sep 2012 21:41:09 +0200 store: optimze _auxencode() a bit by grouping the reserved names by length
Adrian Buehlmann <adrian@cadifra.com> [Sat, 15 Sep 2012 21:41:09 +0200] rev 17570
store: optimze _auxencode() a bit by grouping the reserved names by length This reduces perffncacheencode wall time on Windows 7 x64 for my netbeans clone here from 4.3 to 4.0 (7% faster).
Sat, 15 Sep 2012 21:41:53 +0200 store: explain "aux.foo" versus "foo.aux" in doc of _auxencode()
Adrian Buehlmann <adrian@cadifra.com> [Sat, 15 Sep 2012 21:41:53 +0200] rev 17569
store: explain "aux.foo" versus "foo.aux" in doc of _auxencode()
Sat, 15 Sep 2012 21:41:45 +0200 store: add 'com0' and 'lpt0' doctest cases for _auxencode()
Adrian Buehlmann <adrian@cadifra.com> [Sat, 15 Sep 2012 21:41:45 +0200] rev 17568
store: add 'com0' and 'lpt0' doctest cases for _auxencode() These are already covered by test-hybridencode.py, but they are so noteworthy that I think they deserve being shown right in that doctest.
Sat, 15 Sep 2012 08:38:02 +0200 wireproto: fix check-code.py breakage introduced by 6d97dd630d79
Patrick Mezard <patrick@mezard.eu> [Sat, 15 Sep 2012 08:38:02 +0200] rev 17567
wireproto: fix check-code.py breakage introduced by 6d97dd630d79
Sat, 15 Sep 2012 00:06:08 +0400 record: fix display of non-ASCII names in chunk selection
Nikolaj Sjujskij <sterkrig@myopera.com> [Sat, 15 Sep 2012 00:06:08 +0400] rev 17566
record: fix display of non-ASCII names in chunk selection b013baa3898e fixed display of non-ASCII names in file-selecting prompt, but display in chunk selection remained broken. The reason is that using '%r' in string formatting results in calling `repr` on file names, thus mangling non-ASCII ones.
Fri, 14 Sep 2012 21:05:24 +0200 tests: enable even more Windows server tests
Patrick Mezard <patrick@mezard.eu> [Fri, 14 Sep 2012 21:05:24 +0200] rev 17565
tests: enable even more Windows server tests
Fri, 14 Sep 2012 20:40:52 +0200 test-obsolete-checkheads: fix on windows
Patrick Mezard <patrick@mezard.eu> [Fri, 14 Sep 2012 20:40:52 +0200] rev 17564
test-obsolete-checkheads: fix on windows
Fri, 14 Sep 2012 12:09:44 -0700 sshserver: avoid a multi-dot attribute lookup in a hot loop
Bryan O'Sullivan <bryano@fb.com> [Fri, 14 Sep 2012 12:09:44 -0700] rev 17563
sshserver: avoid a multi-dot attribute lookup in a hot loop This improves stream_out performance by about 3%.
Fri, 14 Sep 2012 12:09:05 -0700 store: reduce string concatenation when joining
Bryan O'Sullivan <bryano@fb.com> [Fri, 14 Sep 2012 12:09:05 -0700] rev 17562
store: reduce string concatenation when joining This improves stream_out performance by a couple of percent.
Fri, 14 Sep 2012 12:08:55 -0700 scmutil: use the new faster path split
Bryan O'Sullivan <bryano@fb.com> [Fri, 14 Sep 2012 12:08:55 -0700] rev 17561
scmutil: use the new faster path split Combined with a few other patches in this series, this contributes to improving stream_out performance by 10%.
Fri, 14 Sep 2012 12:08:17 -0700 util: implement a faster os.path.split for posix systems
Bryan O'Sullivan <bryano@fb.com> [Fri, 14 Sep 2012 12:08:17 -0700] rev 17560
util: implement a faster os.path.split for posix systems This is not yet used.
Fri, 14 Sep 2012 12:07:33 -0700 scmutil: make join cheaper
Bryan O'Sullivan <bryano@fb.com> [Fri, 14 Sep 2012 12:07:33 -0700] rev 17559
scmutil: make join cheaper Combined with a few followup patches, this contributes to improving stream_out performance by 10%.
Fri, 14 Sep 2012 12:06:40 -0700 wireproto: don't format a debug string inside a hot loop
Bryan O'Sullivan <bryano@fb.com> [Fri, 14 Sep 2012 12:06:40 -0700] rev 17558
wireproto: don't format a debug string inside a hot loop This improves stream_out performance by about 5%.
Fri, 14 Sep 2012 12:05:37 -0700 wireproto: bypass filechunkiter for small files when streaming
Bryan O'Sullivan <bryano@fb.com> [Fri, 14 Sep 2012 12:05:37 -0700] rev 17557
wireproto: bypass filechunkiter for small files when streaming Merely creating and using a generator has a measurable impact, particularly since the common case for stream_out is generators that yield just once. Avoiding generators improves stream_out performance by about 7%.
Fri, 14 Sep 2012 12:05:12 -0700 wireproto: don't audit local paths during stream_out
Bryan O'Sullivan <bryano@fb.com> [Fri, 14 Sep 2012 12:05:12 -0700] rev 17556
wireproto: don't audit local paths during stream_out Auditing at this stage is both pointless (paths are already trusted by the local repo) and expensive. Skipping the audits improves stream_out performance by about 15%.
Fri, 14 Sep 2012 12:04:46 -0700 scmutil: delegate mustaudit property to the real opener
Bryan O'Sullivan <bryano@fb.com> [Fri, 14 Sep 2012 12:04:46 -0700] rev 17555
scmutil: delegate mustaudit property to the real opener This will be used by an upcoming patch.
Fri, 14 Sep 2012 12:04:35 -0700 scmutil: turn opener._audit into a property, mustaudit
Bryan O'Sullivan <bryano@fb.com> [Fri, 14 Sep 2012 12:04:35 -0700] rev 17554
scmutil: turn opener._audit into a property, mustaudit This will be used by an upcoming patch.
Fri, 14 Sep 2012 13:02:31 +0200 perf: add perffncacheencode
Adrian Buehlmann <adrian@cadifra.com> [Fri, 14 Sep 2012 13:02:31 +0200] rev 17553
perf: add perffncacheencode Examples (all done with somewhat dated clones I found on my disk): Netbeans (~120k entries in fncache): $ hg perffncacheencode ! wall 4.338000 comb 4.336828 user 4.336828 sys 0.000000 (best of 3) Openoffice (~77k entries in fncache)): $ hg perffncacheencode ! wall 1.533000 comb 1.528810 user 1.528810 sys 0.000000 (best of 7) Xen (~10k entries in fncache): $ hg perffncacheencode ! wall 0.198000 comb 0.187201 user 0.187201 sys 0.000000 (best of 51) Done on Windows 7 x64.
Thu, 13 Sep 2012 17:00:56 -0700 Merge with mpm
Bryan O'Sullivan <bryano@fb.com> [Thu, 13 Sep 2012 17:00:56 -0700] rev 17552
Merge with mpm
Sun, 26 Aug 2012 01:28:22 +0200 bookmark: take successors into account when updating (issue3561)
Pierre-Yves David <pierre-yves.david@logilab.fr> [Sun, 26 Aug 2012 01:28:22 +0200] rev 17551
bookmark: take successors into account when updating (issue3561) When we rewrite a bookmarked changeset, we want to update the bookmark on its successors. But the successors are not descendants of its precursor (by definition). This changeset alters the bookmarks logic to update bookmark location if the newer location is a successor of the old one[1]. note: valid destinations are in fact any kind of successors of any kind of descendants (recursively.) This changeset requires the enabling of the obsolete feature in some bookmark tests.
Sun, 26 Aug 2012 00:28:56 +0200 bookmarks: extract valid destination logic in a dedicated function
Pierre-Yves David <pierre-yves.david@logilab.fr> [Sun, 26 Aug 2012 00:28:56 +0200] rev 17550
bookmarks: extract valid destination logic in a dedicated function We usually update bookmarks only if the new location is descendant of the old bookmarks location. We extract this logic into a function. This is the first step to allow more complex logic using obsolescence in this validation of the bookmark movement.
Sun, 26 Aug 2012 00:27:44 +0200 checkheads: don't warn about unsynced changes that we ill obsolete
Pierre-Yves David <pierre-yves.david@logilab.fr> [Sun, 26 Aug 2012 00:27:44 +0200] rev 17549
checkheads: don't warn about unsynced changes that we ill obsolete We won't be able to pull them after this push.
Sun, 26 Aug 2012 00:25:33 +0200 checkheads: check successors for new heads in both missing and common
Pierre-Yves David <pierre-yves.david@logilab.fr> [Sun, 26 Aug 2012 00:25:33 +0200] rev 17548
checkheads: check successors for new heads in both missing and common A relevant obsolete marker may have been added -after- we previously exchanged the changeset. We have to search for remote heads that disappear by the sole fact of pushing obsolescence. This case will also happen when remote got the new version from a repository that does not propagate obsolescence markers.
Fri, 24 Aug 2012 16:52:45 +0200 checkheads: attend to phases when computing new heads with obsolete
Pierre-Yves David <pierre-yves.david@logilab.fr> [Fri, 24 Aug 2012 16:52:45 +0200] rev 17547
checkheads: attend to phases when computing new heads with obsolete Checkheads was more permissive than expected. When the remote heads are public we don't need to search for successors. None will make a public head disappear.
(0) -10000 -3000 -1000 -300 -100 -60 +60 +100 +300 +1000 +3000 +10000 +30000 tip