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)
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
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).
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()
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.
Patrick Mezard <patrick@mezard.eu> [Sat, 15 Sep 2012 08:38:02 +0200] rev 17567
wireproto: fix check-code.py breakage introduced by
6d97dd630d79
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.
Patrick Mezard <patrick@mezard.eu> [Fri, 14 Sep 2012 21:05:24 +0200] rev 17565
tests: enable even more Windows server tests
Patrick Mezard <patrick@mezard.eu> [Fri, 14 Sep 2012 20:40:52 +0200] rev 17564
test-obsolete-checkheads: fix on windows
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%.
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.
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%.
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.
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%.
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%.
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%.
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%.
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.
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.
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.
Bryan O'Sullivan <bryano@fb.com> [Thu, 13 Sep 2012 17:00:56 -0700] rev 17552
Merge with mpm
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.
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.
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.
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.
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.
Pierre-Yves David <pierre-yves.david@logilab.fr> [Wed, 01 Aug 2012 19:35:05 +0200] rev 17546
test: add testing of checkheads behavior with obsolete
Expected behavior is quite complex. Explicit testing with clear
scenarios is welcome.
Matt Mackall <mpm@selenic.com> [Thu, 13 Sep 2012 14:33:10 -0500] rev 17545
merge with stable
Wagner Bruna <wbruna@softwareexpress.com.br> [Tue, 11 Sep 2012 10:59:21 -0300] rev 17544
i18n-pt_BR: synchronized with
f5e86b416e05
Wagner Bruna <wbruna@softwareexpress.com.br> [Tue, 11 Sep 2012 10:56:23 -0300] rev 17543
merge with i18n