[PATCH 6 of 7] activate the light-weight copy feature

Sune Foldager cryo at cyanite.org
Wed Sep 15 08:06:00 CDT 2010

On 15-09-2010 13:55, Matt Mackall wrote:
> On Wed, 2010-09-15 at 13:30 +0200, Sune Foldager wrote:
>> On 15-09-2010 01:01, Matt Mackall wrote:
>>> This should probably be optional/undocumented until we've sorted out the
>>> related bundle format issues.
>> Ok, but with the stream-patch, there should be no issues, as
>> changegroups are kept in the existing format and store data is
>> unpacked/repacked as needed.
> I won't consider the problem solved until the wire protocol bits are in
> place and given some testing. Until then, it's an experiment that might
> fail.

Hmm, I don't get it. We have plenty of features, like fncache, which 
affect the local store but stays transparent on the wire. This is pretty 
much the same. It works locally, and stays transparent over the wire. 
Things are unpacked and repacked as needed, a bit like fncache.

TL;DL: Lwcopy doesn't need any wire-protocol changes. Lwcopy has nothing 
to do with wire-protocol changes.

>>> Have you given any thought to what should happen when bar copies foo and
>>> we stream bar across before foo? I seem to remember there being an issue
>>> here.
>> Yes, in that case the target repo simply doesn't repack that entry into
>> an lwcopy-entry; it stays a normal, old-style copy-entry. Nothing
>> breaks. It seems like the simplest solution, as no changes are needed
>> anywhere, really (just catching an exception at the right place in the
>> repack code).
> And how about once the wire protocol bits are in place? There's an
> unsolved problem here.

What problem? There is only a problem is someone makes a new 
wire-protocol and breaks lwcopy in the process. Why would anyone do that?

*When* a new wire-protocol is designed (when is that?), it will make 
sense to make lwcopy able to copy data directly, without repack. But 
this is strictly a new feature related to the new wire-protocol, which 
may or may not be implemented. It's not related to lwcopy as it stands 
now, as I see it.


More information about the Mercurial-devel mailing list