与svn一起使用git的好习惯

时间:2011-03-14 03:45:54

标签: xcode svn git git-svn xcode4

几年前Subversion很受欢迎,现在git越来越受欢迎,越来越多的人想用git取代Subversion。

问题是很多项目都基于Subversion。所以问题是如何将git与Subversion一起使用。不要完全替换svn,并使用git。

我能想到的最简单的方法是根据你已经检出的Subversion分支代码创建git。然后使用git在本地控制。修改后,提交到本地git服务器,然后使用Subversion检出远程服务器。 Subversion就像包含git的容器一样。

顺便说一下,我正在使用xcode 3.x进行编码,之前尝试使用xcode 4,但很失望。 (Xcode 4现已问世,但尚未重试)

您怎么看?或者更好的选择?

由于

2 个答案:

答案 0 :(得分:6)

我在这里创建了一个关于如何使用git-svn的方法和截屏的集合:

http://www.tfnico.com/presentations/git-and-subversion

其中你会找到一个git-svn镜像设置。理解和设置需要付出一些努力,但它已经为我工作了近一年,拥有相当大的SVN存储库。

更新:一个简单而有价值的做法是始终使用--prefix选项初始化git-svn克隆。我explained why here

答案 1 :(得分:5)

  

Subversion就像包含git

的容器一样

请务必阅读 git-svn 附带的CAVEATS部分:

CAVEATS

  

为了简化并与功能较弱的系统(SVN)进行互操作,建议所有git svn用户clonefetchdcommit直接来自SVN服务器,并避免git存储库和分支之间的所有git clone / pull / merge / push操作   在git分支和用户之间交换代码的推荐方法是git format-patchgit am,或者只是'dcommit'ing到SVN存储库。

     

不建议您从计划git merge的分支机构上运行git pulldcommit
  Subversion不以任何合理或有用的方式表示合并;因此使用Subversion的用户无法看到您所做的任何合并。此外,如果您从作为SVN分支镜像的git分支合并或拉出,dcommit可能会提交错误的分支。

所以你可以通过Git采用任何合并和publication工作流程,只要你离开SVN分支机构就可以独自镜像(在合并或重组方面)。