git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: John Koleszar <john.koleszar@on2.com>
To: "git@vger.kernel.org" <git@vger.kernel.org>
Subject: git-svn: importing internal externals
Date: Wed, 27 May 2009 12:51:29 -0400	[thread overview]
Message-ID: <1243443089.3192.43.camel@cp-jk-linux.corp.on2.com> (raw)

Hi,

I'm working on a one-off import of an SVN repo that makes use of
"internal" svn:externals; i.e. all URLs refer to different spots in the
same repo, potentially with peg revisions. The SVN repo holds a number
of projects, and my plan is to import them into individual git repos,
incorporating the history from any svn:external linked sub-projects.

My current strategy is to let git-svn fetch the project as it normally
would, then fix up the history on each branch by parsing the
unhandled.log with a filter-branch script. I'm currently using an index
filter, which works reasonably well, but has the undesired effect of
squashing commits on the subproject into commits on the parent project.
So if the subproject is modified in rA and rC, and the project in rB and
rD, my modified history shows only rB and rD, with rA squashed into rB
and rC squashed into rD, when I'd really like to see all 4 commits.

I have a git-svn clone of the whole repo available, and I use that to
pull out the missing external objects when recreating history. Maybe a
better idea would be to resolve the externals with my index filter on
this whole super-repo, where the history is properly linear, then
somehow filter the now-populated projects from that. I had originally
set aside this idea because I wanted git-svn to do its automagic
branch/tag extraction, and while I think I could get a git repo with the
svn layout, I'm unsure how to turn that into proper git branches and
tags.

Can anyone offer any suggestions on how to achieve this? I'm still new
to git, so nothing is jumping out at me. I'd be happy to share my filter
script (about 100 lines) if someone wants to see it.

Thanks!

John

             reply	other threads:[~2009-05-27 16:51 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-27 16:51 John Koleszar [this message]
2009-05-28 11:25 ` git-svn: importing internal externals Yann Dirson
2009-05-29 21:05   ` John Koleszar
2009-06-10 21:58   ` Yann Dirson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1243443089.3192.43.camel@cp-jk-linux.corp.on2.com \
    --to=john.koleszar@on2.com \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).