与多个开发人员一起使用git和svn

时间:2010-07-06 15:24:02

标签: svn git version-control git-svn

我有一个svn存储库(如果重要的话没有TLB结构)我想和git一起使用。我可以做一个git-svn克隆,在git repo中处理我的更改,并在完成后提交回svn repo。直到这一点,这一点很清楚。

我不确定如何将此工作流模型扩展到多个开发人员。我需要我的开发团队能够处理一个git repo(从svn repo克隆的那个),它应该像我们所有人的普通git repo一样。在某些时候,任何开发人员都必须能够提交回svn repo。这可能吗?感谢。

3 个答案:

答案 0 :(得分:1)

我们遇到了同样的问题而我们找不到办法,所以我们切换到完整的git。 如果只有一个repo与svn进行通信,那么事情就可以正常工作,但除此之外,这种情况变得非常混乱。发生了什么事情是git-svn分支有自己的生命

你可以试试这个 - 创建从svn回购git1和git2 - 在git 1中进行更改,然后dcommit到svn
- 把它拉到git2,做一个git svn rebase并看看发生了什么......

当你尝试在git2中拉它时,你必须创建一个从svn开始的新分支,但它不跟踪它。 所以git2基本上有2个分支svn one和git1。因此,在能够将任何东西从git2推送到svn之前,你必须将git1分支与svn分支合并(即使它们是相同的)。 (我可能错了,因为我前一段时间做过,也许有一个解决方案)

无论如何,我不得不这样做几次,因为当我们从'git-svn'切换到'git'时,我们创建了中央git-repository,然后每个人都完成了将自己的东西提交给svn。然后我从svn中挑选新东西将它们放回新的git repo中,这真的是一团糟。

因此要么只使用git,要么只有一个repo连接到svn。

答案 1 :(得分:1)

我也在考虑这个问题,我推荐的方法是

  • 使用master与svn存储库和特殊分支名称同步来跟踪其他svn分支,例如svn中的walko分支,然后在git中,它是walko-svn
  • 使用其他名称与git存储库同步。

alt text http://larrycai.files.wordpress.com/2013/02/image2.png

然后是工作方式

  • 所有设计师通过 git-svn clone ... 从svn存储库同步,使用 master branch-svn 名称
  • 所有设计师也同步到git存储库,但保留svn
  • 的分支名称
  • 所有设计师大多使用git存储库来协作开发,比如主题分支
  • 当主题分支看起来不错时,每个设计师都可以重新回到master分支,这个设计师应该提交到svn repository并在它之后(get git-svn-id ),它们也被推回到混帐存储库。 (如果设置了svn触发器,则可以自动完成此作业)
  • 然后git存储库始终与主分支上的svn repo同步

摘要

  • 使用git存储库在非svn分支上进行协作(如master)
  • 从非svn分支重新绑定到svn存储库
  • 始终保持git repo(master)与svn repo同步

查看我的博客图片http://larrycaiyu.com/blog/2010/07/10/svn-git-integration-1/

答案 2 :(得分:0)

我们的团队遇到了完全相同的问题,经过一些实验,我们设法建立了一个双向 git-Subversion网桥,用于同步我们的团队git存储库和公司Subversion存储库之间的变化。请在https://stackoverflow.com/a/12155474/258772查看我的回答,或查看https://github.com/mrts/git-svn-bridge