用git在svn代码库上开发
出自Linux Wiki
git在功能上比svn强大不少,但目前很多版本库仍在使用svn。得益于git-svn,我们可以把远程的svn代码库复制到本地,从而实在在本地使用git开发,并通过svn与远程代码库交互。
目录 |
初始化代码库
最简单的办法是将整个SVN代码库同步到本地(包括所有历史记录,可能会非常慢):
git svn clone SVN代码库路径
如果想只同步最近的更新,可以指定-r参数,如:
git svn clone SVN代码库路径 -r100:HEAD
会从相应的revision(此例是r100)同步到最新版本(HEAD)。[1]
同步后建议调用git gc (garbage collection)清理一下垃圾:
git gc
获取最新代码
如果想获取代码库的最新代码(对应svn update),只需:
git fetch git svn rebase
如果有冲突,处理方法与git版本库类似。
开发
开发时就如同一个普通的git,可以使用git的各种feature,如本地commit,方便地创建多个branch等。具体可参见相关资料[2]
提交代码
将代码提交到svn,就只能保持版本的线性性了,此时建议先更新本地代码库:
git fetch git svn rebase
同时也建议整理一下本地的commit
git rebase -i
都准备好后,就可以提交了:
git svn dcommit
参考
- ↑ (StackOverflow) How to git-svn clone the last n revisions from a Subversion repository?
- ↑ 如何在svn系统中使用git