问题是很多项目都基于Subversion。所以问题是如何将git与Subversion一起使用。不要完全替换svn,并使用git。
我能想到的最简单的方法是根据你已经检出的Subversion分支代码创建git。然后使用git在本地控制。修改后,提交到本地git服务器,然后使用Subversion检出远程服务器。 Subversion就像包含git的容器一样。
顺便说一下,我正在使用xcode 3.x进行编码,之前尝试使用xcode 4,但很失望。 (Xcode 4现已问世,但尚未重试)您怎么看?或者更好的选择?
由于
答案 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部分:
为了简化并与功能较弱的系统(SVN)进行互操作,建议所有
git svn
用户clone
,fetch
和dcommit
直接来自SVN服务器,并避免git存储库和分支之间的所有git clone / pull / merge / push操作 在git分支和用户之间交换代码的推荐方法是gitformat-patch
和git am
,或者只是'dcommit'ing到SVN存储库。不建议您从计划
git merge
的分支机构上运行git pull
或dcommit
。
Subversion不以任何合理或有用的方式表示合并;因此使用Subversion的用户无法看到您所做的任何合并。此外,如果您从作为SVN分支镜像的git分支合并或拉出,dcommit
可能会提交错误的分支。
所以你可以通过Git采用任何合并和publication工作流程,只要你离开SVN分支机构就可以独自镜像(在合并或重组方面)。