使用 Git 与 Subversion 仓库协作的深入指南
1. 提交到 SVN 仓库的初步尝试
当你执行git svn dcommit命令时,会看到如下输出:
$ git svn dcommit Committing to http://svn.collab.net/repos/svn/branches/1.5.x ... Authentication realm: <http://svn.collab.net:80> Subversion Committers Password for 'bob':如果你拥有中央 SVN 源代码仓库的提交权限(全球只有少数人有此权限),在提示处输入密码后,git svn就会开始工作。但问题也随之而来,你试图提交的版本并非最新版本,这会让情况变得复杂。
2. 提交前的获取操作
SVN 采用线性、顺序的历史视图。如果你的本地副本版本比 SVN 仓库旧,并且你已经在旧版本上进行了提交,那么就无法将其直接提交回服务器,因为 SVN 无法在项目历史的早期点创建新分支。
不过,Git 提交总会创建一个历史分叉,此时有两种选择:
1. 有意分叉历史:你希望保留历史的两个部分,将它们合并后提交到 SVN。
2. 无意分叉历史:最好将其线性化后再提交。
这类似于git merge和git rebase的选择。好消息是 Git 提供了这两