Is it possible to do a partial clone of a mercurial repository as either a subrepository or a guestrepo?
description:
given a repo at https://blah/hg/foo/
named foo
and another repo named cat
, I'd like to create a guestrepo in cat
from a certain directory under foo
, eg. from c
in foo:/a/b/c/
.
To my best knowledge c
is not available as a stand-alone repository. Read-only access to foo
is assumed.
My intent is to have cat:/d/e/c/
, the guest location, update if foo:/a/b/c/
changes. This is considered to be similar behavior to svn:externals
in svn
.
GuestrepoExtension:
I started out with trying the GuestrepoExtension:
.hggrmapping
:
c = https://blah/hg/foo
.hgguestrepo
:
/d/e/c/ = ??? ???
The problem is I don't know how to reference the sub-directory given that I don't need the whole foo
repository, only this directory and it's contents from it.
According to https://www.mercurial-scm.org/wiki/PartialClone partial cloning / cloning of subdirectories is not implemented in mercurial (referred Bug 105 is already closed since 2012). This is why,
Subrepository:
Currently I resorted to using a subrepository since coincidentally the c
directory exists in an svn mirror.
.hgsub:
/d/e/c = [svn]https://dog/svn/a/b/c/
This has the drawback that I don't want to rely on external version control, ie. svn
, repository and tool availability.
Could this be handled somehow purely in mercurial?