[PATCH V2] generaldelta: initialize basecache properly

Tim Delaney timothy.c.delaney at gmail.com
Sat Sep 21 15:00:51 CDT 2013


On 22 September 2013 05:36, Sean Farley <sean.michael.farley at gmail.com>wrote:

>
> timothy.c.delaney at gmail.com writes:
>
> > On 22 September 2013 05:08, Sean Farley <sean.michael.farley at gmail.com
> >wrote:
> >
> >>
> >> timothy.c.delaney at gmail.com writes:
> >>
> >> > Is there a reason generaldelta is still undocumented and/or not yet
> the
> >> > default format? It's been in since Mercurial 1.9 and I only found out
> >> about
> >> > it thanks to this patch.
> >>
> >> Mostly, because the bundle code needed to be updated to handle
> >> exchanging generaldelta (and other things, like bookmarked heads) over
> >> the wire. I believe this finally made some decent progress at the last
> >> sprint but still isn't done yet.
> >>
> >
> > So given that we don't use bookmarks, is there any reason I shouldn't
> > convert my central repo to use generaldelta to gain the existing
> benefits?
> > Is it just that some things are less optimised than they could be, or is
> > there the potential for data loss/corruption?
>
> Sure, you could enable it but as Wojciech's patch showed there was a
> potential for generaldelta to be bigger than the original repo. Since
> bundle 2.0 isn't quite ready to handle generaldelta, you'll only benefit
> from it locally (i.e. it'll do a conversion on-the-fly when someone
> clones it).
>
> For what it's worth, I've had it enabled for a while now and haven't any
> trouble.
>

Thanks Sean,

I actually tried it with Wojciech's patch (just that one patch applied on
top of 2.7.1) and it made zero difference on my repo.

Just to be clear - pulling from a remote generaldelta repo (e.g. over ssh)
to a local generaldelta repo will currently have the same effect as pulling
from a non-generaldelta repo to a generaldelta repo - you get parent deltas
in the local repo, but not the benefit of reordering that you get with a
local clone. Is that correct? If so, it's still a win for me in terms of
manifest size.

There's a code freeze on the SVN repo coming up this week so it sounds like
I should take the opportunity to change my central repo to use generaldelta
(it'll probably take a couple of days to do - sitting on an Amazon micro
instance). I'll see immediate benefits in terms of disk space there and it
sets me up for the future wire protocol improvements.

Do you think it would be worthwhile documenting generaldelta in it's
current state (noting the limitations)? Maybe with a release that contains
Wojciech's patch.

Cheers,

Tim Delaney
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://selenic.com/pipermail/mercurial-devel/attachments/20130922/38ca7557/attachment.html>


More information about the Mercurial-devel mailing list