#619584 git svn: handle svn:externals somehow

#619584#5
Date:
2011-03-25 11:19:07 UTC
From:
To:
When cloning a rather large repository of mine with
  git svn clone svn+ssh://josef@svn.ggzgamingzone.org/svn ggz-trunk
  (public variant: svn://svn.ggzgamingzone.org/svn)
I only get two m4/ggz directories in trunk:
  ./trunk/playground/irc/m4/ggz
  ./trunk/base-libs/m4/ggz
However, there are more which are also found with git-svn show-externals:
  /utils/m4/ggz
  /txt-client/m4/ggz
etc.

To me it looks like a bug that git-svn doesn't clone these externalised
directories in all places.

#619584#10
Date:
2011-03-27 06:30:21 UTC
From:
To:
Hi Josef,

Josef Spillner wrote:

git svn doesn't actually do anything special with svn:externals at all;
the idea of the "git svn show-externals" command is that the user might
come up with something to do with them, perhaps using a wrapper script.
For example, something like
http://algorithm.com.au/blog/files/git-svn-svn-externals.php might work
well for you.

Now this doesn't mean some future version of "git svn" should not
support externals.  But a generic solution would have to answer some
questions:

 - does the user prefer to clone the repos referred to using svn or
   "git svn"?  If using "git svn", with what parameters?

 - should the git history include the history of the subprojects,
   or should they be automatically ignored in .git/info/exclude?

 - does it make sense to be able to opt out of cloning some subset
   of the subprojects?

 - what should "git svn rebase" and "git svn dcommit" do with the
   subproject state?

Please feel free to present your answers in the form of a patch to
git-svn.perl and submit to git@vger.kernel.org, cc-ing me and Eric
Wong <normalperson@yhbt.net>. :) [1]  If you just want to experiment
and do not have a one-size-fits-all solution yet, no problem with that
--- a script for contrib/ or even some documentation on how to work
with externals would be welcome as well.

Sorry I cannot offer more.

Thanks for writing,
Jonathan

[1] Documentation/SubmittingPatches has more hints.