[GSoC] Introduction - Shallow partial clone

Peter Arrenbrecht peter.arrenbrecht at gmail.com
Fri Mar 28 07:55:21 CDT 2008

On Thu, Mar 27, 2008 at 8:51 AM, Eric M. Hopper <hopper at omnifarious.org> wrote:
> On Thu, 2008-03-27 at 00:54 +0200, altanis at ceid.upatras.gr wrote:
>  > Concerning partial cloning, I see that another applicant is already
>  > interested in "horizontal" limits (ie cloning of the full history of
>  > certain directories within the repository). However, I find "vertical"
>  > limiting to be equally interesting (which is ironic, as the Audacious
>  > repo, which I downloaded to test hg, took about half an hour to download,
>  > and I really wished there was a way to download only the latest snapshots
>  > :) ).
>  This is a really tricky problem.
>  Narrow clones can be done without getting into the inner data structures
>  that make Mercurial go.  Mostly narrow clones are an exercise in playing
>  games with the dirstate and being able to manage its relationship with
>  the manifest.
>  But shallow clones require understanding revlogs really well.  It also
>  requires understanding how the revlogs of individual files relate to the
>  revlogs for the changelog and manifest.
>  I don't know who among us understands those best aside from Matt.  Chris
>  Mason did the work for the new version of the revlog data structure and
>  was the person who wrote the MQ extension.  I did the work
>  (pre-revlog-ng) that allows MQ to strip out revisions or allows cloning
>  and other operations to pull all changes for a specific revision instead
>  of everything the other repository has.
>  I haven't been following Mercurial really closely for the past year or
>  so so someone else may have done some significant revlog work and could
>  help you.

While I haven't done any significant revlog work myself yet, I feel
the overall design is very elegant and not too hard to grasp. So I
feel confident someone with enough time for concentrated work on their
hands (such as a SoC student) could get into it reasonably quickly.
And I believe it would be very rewarding work. Also the core
developers are quite responsive and mpm, the original author of hg,
has even signed up as a SoC mentor.

 So I would like to encourage you to give it a try.


More information about the Mercurial-devel mailing list