[PATCH 00 of 14] shallow clone patches and status

Vishakh H vsh426 at gmail.com
Fri Jul 16 02:15:08 CDT 2010


This patch series enables creation of shallow clones with truncated revlogs.

All shallow clones contain the complete changelog, but for manifests
and filelogs we keep only the nodes needed in shallow clone. If any
parent nodes in the revlogs are missing we create a punched entry
for the missing node with nullrevs for parents.

Shallow clones are created with shallowroot stored in .hg/shallow file.
All revlogs in shallow clone are created with REVLOGSHALLOW flag, and
can be identified as shallow. Thus on subsequent interactions with full
clone the shallow one can mention its shallowroot and get only the manifest
and file nodes of missing descendants of shallowroot.

Comparing sizes of repos with empty working dir:

Repo	 Full	Shallow at/near tip
hg	 28M	9M
linux2.6 1.4G	290M


More information about the Mercurial-devel mailing list