git-svn: importing internal externals

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]