我需要将一个SVN仓库克隆到Git。这个SVN仓库的结构就像是一个仓库中包含了多个仓库:
SVNRepo
|____ProjectA
| |___branches
| |___tags
| |___trunk
| file
|____ProjectB
| |___branches
| |___tags
| |___trunk
file
我需要克隆存储库,以便最终得到一个单独的git存储库,没有svn特定的文件夹(分支,标签,主干)。我最初将SVN repo转储然后拆分为每个项目的单独repo,并使用带有--stdlayout命令的git svn clone迁移到git。这起初有效,但是由我们的团队否决了并带来了自己的问题。
我尝试了带有--stdlayout命令的git svn clone,但那行不通。我最终获得了一个空的git repo,其中只有2个提交(而非数百个)和没有实际文件。没有错误,所以我不知道发生了什么。
尝试不带--stdlayout的git svn clone在某种程度上可以工作,因为我获得了一个包含所有文件和历史记录的单个git repo。但是,我仍然有所有的分支,标签和主干文件夹,我想要删除它们。
我考虑过转储SVN repo并使用sed编辑二进制文件,但那似乎是很多工作。我想象有人遇到过这个问题并解决了它,但找不到任何有效的方法。
git svn init
调用中指定它们,那么是的,您可以向存储库提供“基本”URL,然后为_单独_分支(使用--trunk),_分组_分支(使用--branches)和标记提供多个位置。因此,在您的情况下,它应该看起来像:git svn init -T ProjectA/trunk -B ProjectA/branches -t ProjectA/tags -T ProjectB/trunk -b ProjectB/branches -t ProjectB/tags。但现在我在想...它们是同一个项目吗?因为如果不是,那么您应该考虑为每个项目创建一个单独的存储库。 - eftshift0