On disk bundle in a general delta world

Matt Mackall mpm at selenic.com
Mon Aug 31 17:52:26 CDT 2015


On Fri, 2015-08-28 at 17:16 -0700, Pierre-Yves David wrote:
> Hi there,
> 
> We are getting clsoe to be able to use general delta for new clone. 
> However, there is a significant issue that remains: on disk bundle.
> 
> #1: Why
> 
> Bundle create on disk (from hg bundle, and strip's backup ( and hg 
> incoming -i)) are still bundle1 only, and therefore unable to use 
> general delta.
> 
> This mean that stripping could spend a significant amount of time 
> recomputing delta to put them back into a last-delta format.
> 
> We have the ability to create bundle2 bundle on strip (and hg bundle?) 
> but it is turned of by default as the bundle2 bundle are incompatible 
> with older version of Mercurial.
> 
> #2: When
> 
> It makes no doubt that we want to move to on disk bundle2 at some point. 
> Because it is able to store much more information  regarding, phases, 
> bookmarks, obsmarkers, etc.
> 
> But this change will be backward compatibility breaking. When do we want 
> to perform the following event (in regards with each other).
> 
> a)  general delta on in `hg init`
> b)  bundle2 on strip
> c) bundle2 on `hg incoming -b B`
> d)  bundle2 on `hg bundle`

I think b, c, and d should be tied to whether the repo has generaldelta
enabled.

Which means we can't enable it until unbundle with v2 support is fairly
widely deployed.

> 
> #3: Naming
> 
> Should we change the naming scheme for the bundle. Thing are currently 
> call `.hg` should we move to `.hg2`? And given that there will likely be 
> gradual improvement in the bundle2 format, incompatible with older 
> version. Should we do .hg20 -> .hg21 .hg22 (or .hg2a, etc)
> 
> #4: Ui
> 
> We probably want to be able to control the type of bundle created 
> (especially from `hg bundle`, what kind of UI do we want there)

Probably a modifier on the existing bundle --type flag.

-- 
Mathematics is the supreme nostalgia of our time.



More information about the Mercurial-devel mailing list