Bryan O'Sullivan <bryano@fb.com> [Wed, 11 Jul 2012 15:36:00 -0700] rev 17137
localrepo: make requirements and openerreqs mutable by subclasses
This is necessary for extensions that need to modify a repo's
requirements.
Bryan O'Sullivan <bryano@fb.com> [Wed, 11 Jul 2012 15:34:01 -0700] rev 17136
test-clone: load extensions before doing anything
This makes it possible to run this test using
"--extra-config-opt=extensions.myext=" and have the extension be
loaded as intended.
Bryan O'Sullivan <bryano@fb.com> [Wed, 11 Jul 2012 15:34:32 -0700] rev 17135
test-clone: load extensions before doing anything
This makes it possible to run this test using
"--extra-config-opt=extensions.myext=" and have the extension be
loaded as intended.
Friedrich Kastner-Masilko <kastner_masilko@at.festo.com> [Wed, 11 Jul 2012 12:38:42 +0200] rev 17134
revlog: fix for generaldelta distance calculation
The decision whether or not to store a full snapshot instead of a delta is done
based on the distance value calculated in _addrevision.builddelta(rev).
This calculation traditionally used the fact of deltas only using the previous
revision as base. Generaldelta mechanism is changing this, yet the calculation
still assumes that current-offset minus chainbase-offset equals chain-length.
This appears to be wrong.
This patch corrects the calculation by means of using the chainlength function
if Generaldelta is used.
Bryan O'Sullivan <bryano@fb.com> [Wed, 11 Jul 2012 15:05:06 -0700] rev 17133
Merge
Bryan O'Sullivan <bryano@fb.com> [Wed, 11 Jul 2012 15:03:10 -0700] rev 17132
tests: reduce spurious failures when run with generaldelta
Quite a few tests fail in noisy but meaningless ways when the test suite
is run with generaldelta enabled:
./run-tests.py --extra-config-opt=format.generaldelta=1
This reduces the amount of noise introduced by the debugindex command,
the main source of differences. In my environment, when testing with
generaldelta enabled, this change reduces the number of completely
failing tests from 21 to 8.
Augie Fackler <raf@durin42.com> [Fri, 06 Jul 2012 12:17:53 -0500] rev 17131
histedit: add extension docstring from external README
Made a couple of tweaks to try and fit better with the hg docstring
style and fix up some ReST errors in the README.
Augie Fackler <raf@durin42.com> [Fri, 06 Jul 2012 11:39:02 -0500] rev 17130
histedit: don't crash if the result of fixing up a fold is empty
Augie Fackler <raf@durin42.com> [Fri, 06 Jul 2012 11:06:57 -0500] rev 17129
histedit: replace hexshort lambda with node.short
Bryan O'Sullivan <bryano@fb.com> [Mon, 25 Jun 2012 13:56:13 -0700] rev 17128
revlog: make compress a method
This allows an extension to optionally use a new compression type based
on the options applied by the repo to the revlog's opener.
(decompress doesn't need the same treatment, as it can be replaced using
extensions.wrapfunction, and can figure out which compression algorithm
is in use based on the first byte of the compressed payload.)
Na'Tosha Bard <natosha@unity3d.com> [Sun, 24 Jun 2012 20:36:22 +0200] rev 17127
largefiles: batch statlfile requests when pushing a largefiles repo (issue3386)
This implements a part of issue 3386. It batches the request for the status of
all largefiles in the revisions that are about to be pushed into a single
request, instead of doing N separate requests.
In a real world test case, this change was verified to save 1,116 round-trips to
the server. It only requires a client-side change; it is backwards-compatible
with an older version of the server.
Pierre-Yves David <pierre-yves.david@ens-lyon.org> [Wed, 04 Jul 2012 02:21:04 +0200] rev 17126
obsolete: write obsolete marker inside a transaction
Marker are now written as soon as possible but within a transaction. Using a
transaction ensure a proper behavior on error and rollback compatibility.
Flush logic are not necessary anymore and are dropped from lock release.
With this changeset, the obsstore is open, written and closed for every single
added marker. This is expected to be highly inefficient and batched write should
be implemented "quickly".
Another issue is that every flush of the file will invalidate the obsstore
filecache and trigger a full re instantiation of the repo.obsstore attribute
(including, reading and parsing entry). This is also expected to be highly
inefficient and proper filecache operation should be implemented "quickly" too.
A side benefit of the filecache issue is that repo.obsstore object is properly
invalidated on transaction abortion.