如何正确管理SVN存储库的多个Git克隆?

时间:2013-11-18 17:04:35

标签: git svn

我工作的其中一个项目使用SVN存储库来管理其代码。我想在我的所有机器上使用Git进行版本控制,并且能够在GitHub上托管存储库的副本。我有一个图形描述了我想要设置或合并的东西,但我还不能发布它。

我已经设法使用git svn clone将SVN中继克隆到我的机器上,然后可以使用Git在本地分支,但是当我尝试将我的开发分支中的更改合并到主服务器中以便我我git svn dcommit他们收到了以下错误:

  

无法从HEAD历史记录中确定上游SVN信息

然后我尝试撤消合并git svn rebase并收到此错误:

  

无法确定上游svn信息工作树历史记录

显然我做错了什么,但我似乎找不到任何有关如何纠正这些错误的信息。同样,我在这个主题上找到的帖子没有提供关于如何避免将来再次陷入同样情况的建议。

所以,这就是我设法做错了。在尝试桥接SVN repo和我的本地Git克隆时,还有一些我根本没做过的事情。第一个是跟踪SVN仓库中存在的众多分支中的一个。那里的大多数分支我都不在乎,所以我想避免与所有分支同步的开销。告诉Git跟踪单个SVN分支的正确方法是什么?如果在完成git svn clone之后将新分支添加到SVN回购中,我是否可以开始跟踪它?

最后,我希望能够在GitHub上托管我的Git仓库副本,然后使用它来同步我的机器之间的开发工作。在我第一次尝试这个时,似乎没有任何SVN相关信息被推送到GitHub存储库。当我将来自GitHub的repo克隆到新机器然后尝试运行git svn rebase时,它失败了。有没有办法让Git正确推送/克隆必要的SVN信息,或者在克隆Git存储库后,我是否必须在每台机器上重新添加SVN引用和元数据?

提前感谢大家的帮助。

1 个答案:

答案 0 :(得分:0)

你没有。你努力让他们转向git。 git-svn git仍然无法很好地处理svn:mergeinfo。它不会像替换它那样更新属性。 (这不是对git的打击 - 使这项工作在很大程度上是浪费的努力)

你最好的选择就是吸收它并使用svn,直到它们变得更加美味。它比以前更好,但使用git-svn可能会在svn汤中为团队其他成员吐出。