如何使用git-svn将更改从trunk更改为svn中的分支?

时间:2011-09-02 01:14:35

标签: git git-svn

我看到有人建议使用git-svn进行合并并将其提交回svn。

我正在寻找一个好的分步指南。

  • 值得这么麻烦,还是应该用svn来做呢。
  • 人们会看到我使用过git吗?是否有关于svn合并的元数据?
  • 我可以选择中继和1分支的克隆吗?
  • 我是否需要完整克隆,还是可以从分支的位置导入它?

3 个答案:

答案 0 :(得分:10)

我已经使用了这篇文章中的说明取得了很大的成功。 http://justaddwater.dk/2009/03/09/using-git-for-svn-repositories-workflow/

我使用git在分支之间合并然后将它们提交到svn repo。这不遵循svn的合并过程,因此这对其他用户来说可能是个问题。 svn:merge属性未设置

git-svn在svn repo中没有留下您使用git-svn的任何证据。

答案 1 :(得分:3)

  

值得麻烦还是我应该使用svn来实现它。

我认为这取决于您希望在SVN中保留多少信息。如果你使用git进行合并,我相信SVN不会知道更改的来源,换句话说,它看起来像SVN主干和分支仍然是分开的。

  

人们会看到我使用过git吗?是否有任何有关该数据的元数据   合并在svn?

不,它看起来就像是对主干的新提交。

  

我可以选择中继和1分支的克隆吗?

如果你的意思是将你的git-svn克隆到一个新的git repo中,那么是的。只需克隆git-svn并删除无关的分支,或者在克隆之前直接在git-svn repo中执行此操作。

以下是convert an SVN repo to a git one的帖子。我认为大部分都适用于这种情况。

  

我是否需要完整克隆,或者我可以从中导入它   分支是什么?

Git克隆通常是完整克隆,除非您使用--depth选项。如果你想丢弃以前的历史记录,你可以随时将所有提交压缩成旧的提交,或者只删除.git目录并初始化一个新的回购。

答案 2 :(得分:1)

我已经阅读了一些人建议这一点,但我认为只有在你使用GIT和SVN同一代码(使用git的本地仓库和使用svn的托管仓库)时才应该使用它。我建议你坚持使用VCS并获得适当的合并工具,如BeyondCompare或Kaleidoscope

可以在

找到关于git-svn的小教程

http://flavio.castelli.name/howto_use_git_with_svn