2016-04-25 62 views
0

我使用的是svn2git,但我也可以使用git svn。我在SVN仓库中有以下场景。将SVN分支子文件夹迁移到Git

trunk 
brances 
    branchesA 
     branchA1 
     branchA2 
     [...] 
    branchesB 
     branchB1 
     branchB2 
     [...] 
    branchesX 
     [...] 

迁移完成后,在Git的一侧有分支机构branchesAbranchesB等..已与正确SVN分支文件夹内。例如在Git仓库:

master 
branchesA 
branchesB 
branchesX 
[...] 

如果$git checkout branchesA你会看到所有的分支状的子文件夹($ls):

branchA1 
branchA2 
branchA3 
[...] 

有没有一种方法或工具或东西,可能已经解决这个问题,一旦我迁移它,或者以某种方式将多个文件夹传递给--branches

+0

有PR可以解决这个问题,但尚未获得批准! https://github.com/nirvdrum/svn2git/pull/65 –

回答

1

不是使用git svn进行一次性转换。如果您需要不断同步并重新提交给SVN,但是一次性转换次优,则需要仔细考虑。

有pleny工具叫svn2git,但从你的问题我猜你没有使用从https://github.com/svn-all-fast-export/svn2git KDE之一。我强烈建议使用svn2git工具。这是我所知道的最好的,并且它对你的规则文件可以做的非常灵活。

您可以轻松地将其配置为您的布局以获得您想要的结果。你甚至可以保持你的分支在“子文件夹”中,就像你目前在SVN中一样。 Git中的分支将是branchesA/branchA1

如果您不是100%关于您的存储库的历史记录,svneverever from http://blog.hartwork.org/?p=763是一个很好的工具,用于调查SVN存储库在将其迁移到Git时的历史记录。

+0

我**不是**使用'git svn',我使用'svn2git'。我检查了链接,并会尝试一下。谢谢... –

+0

只是想确保你没有真正考虑它,因为你写你考虑它。是的,你使用'svn2git',但不是我提到的那个,是吗? – Vampire

+0

不幸的是,我正在学习如何使用KDE。看起来更容易设置分支布局,我只需要学习如何做到这一点... –