Wed, 15 Sep 2010 11:06:22 +0200 clone: only use stream when we understand the revlog format
Sune Foldager <cryo@cyanite.org> [Wed, 15 Sep 2010 11:06:22 +0200] rev 12296
clone: only use stream when we understand the revlog format This patch fixes issues with stream cloning in the presense of parentdelta, lwcopy and similar additions that change the interpretation of the revlog format, or the format itself. Currently, the stream capability is sent like this: stream=<version of changelog> But the client doesn't actually check the version number; also, it only checks the changelog and it doesn't capture the interpretation-changes and flag-changes in parentdelta and lwcopy. This patch removes the 'stream' capability whenever we use a non-basic revlog format, to prevent old clients from receiving incorrect data. In those cases, a new capability called 'streamreqs' is added instead. Instead of a revlog version, it comes with a list of revlog-format relevant requirements, which are a subset of the repository requirements, excluding things that are not relevant for stream. New clients use this to determine whether or not they can stream. Old clients only look for the 'stream' capability, as always. New servers will still send this when serving old repositories.
Wed, 15 Sep 2010 10:44:10 +0200 localrepo: factor out requirement application and write
Sune Foldager <cryo@cyanite.org> [Wed, 15 Sep 2010 10:44:10 +0200] rev 12295
localrepo: factor out requirement application and write
Tue, 14 Sep 2010 16:21:21 -0500 merge with stable
Matt Mackall <mpm@selenic.com> [Tue, 14 Sep 2010 16:21:21 -0500] rev 12294
merge with stable
(0) -10000 -3000 -1000 -300 -100 -30 -10 -3 +3 +10 +30 +100 +300 +1000 +3000 +10000 +30000 tip