我正在尝试将我的svn存储库切换为git。它是一个旧的存储库,之前的维护者之一为每个新版本移动了主干。例如,以前的存储库位于:
现在,我们当前的主干位于:
当我签出SVN第二个存储库时,我有完整的历史记录,包括复制之前的历史记录。但是,当我git-svn第二个存储库时,我没有旧的历史记录(来自release_1,...)。第一次提交是release_{N-1}
到release_N/trunk
的副本。
以下是我的尝试:
由于这不起作用,我尝试了别的东西。我们假设'复制提交'是K,我试过:
这次git-svn找不到任何提交。
你知道是否有一个神奇的技巧来拥有完整的历史?
答案 0 :(得分:1)
这是我对这个问题的理解:
您的历史分布在几个svn分支(这些分支恰好都称为主干)。
移动到git时,您会想要所有这些历史记录。
我认为以下内容可以解决您的问题:
git svn init my_project.git
git config svn-remote.svn.url svn+ssh://svn.mycompany.com/project
git config svn-remote.svn.fetch release_N/trunk:refs/remotes/trunk
git config svn-remote.svn.branches */trunk:refs/remotes/*
git config svn.authorsfile my-authors-file
git svn fetch
这会将release_N分支创建为trunk,将剩余的版本创建为git存储库中的不同分支。
据我所知,你不能让一个git svn分支指向多个url,这就是我认为你试图做的。