git and svn subrepos

Matt Joiner anacrolix at gmail.com
Tue Jan 12 00:35:04 CST 2010


Hi All,

I'd like to know the future roadmap for supporting subrepos of the
Subversion persuasion. In my/our usage of VCS, externals play a heavy role
in keeping repository and working copy sizes down, and maintaining internal
builds and versioning of thirdparty libraries and the like for use by
various projects. I've been watching
http://mercurial.selenic.com/wiki/subrepos#To_Do with great interest since
around the time of the 1.3 release.

I've made two observations with regards to the ability to support the
"svn:externals" style subrepos:

   - Firstly that svn does versioning, and "basing" on a per directory
   level, which evidently is not possible in hg. Two possible working arounds
   would be:
      - To do something akin to "chroot" when updating;
      - or maintaining all the directories that one might pick out as
      svn:external targets as different branches and selecting that branch;
      - both of which require keeping the entire hg log history locally for
      each checkout, and furthermore does not version directories at all.
   - And that secondly, external directories picked from various external
   repositories, will each require a full hg history folder in the base,
   destroying the first advantage I listed above. Working copy sizes could
   become potentially immense, or repository management very complex in trying
   to juggle library versions etc.

The above observations are of hg repos externaled from an svn working copy
(and I expect git within hg, and git within svn to be the same), the reverse
case (svn within hg) is somewhat simpler and requires some intimacy with the
Subversion bindings.

Are there any plans, or considerations being made for adding the ability to
link to svn externals from within hg, and has any discussion occurred
regarding providing features to ease the use of hg repos within svn
checkouts?

Regards,
Matt Joiner.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://selenic.com/pipermail/mercurial/attachments/20100112/eb7e2e05/attachment.htm>


More information about the Mercurial mailing list