[GSoC] Introduction - Shallow partial clone
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