2.10 代理SVN提交实现移动式办公

使用像SVN一样的集中式版本控制系统,要求使用者和版本控制服务器之间要有网络连接,如果因为出差在外或在家办公访问不到版本控制服务器就无法提交。Git属于分布式版本控制系统,不存在这样的问题。

当版本控制服务器无法实现从SVN到Git的迁移时,仍然可以使用Git进行工作。在这种情况下,Git作为客户端来操作SVN服务器,实现在移动办公状态下的版本提交(当然是在本地Git库中提交)。当能够连通SVN服务器时,一次性将移动办公状态下的本地提交同步到SVN服务器。整个过程对于SVN来说是透明的,没有人知道你是使用Git在进行提交。

使用Git来操作SVN版本控制服务器的一般工作流程为:

(1)访问SVN服务器,将SVN版本库克隆为一个本地的Git库,一个货真价实的Git库,不过其中包含针对SVN的扩展。


$git svn clone<svn_repos_url>


(2)使用Git命令操作本地克隆的版本库,例如提交就使用git commit命令。

(3)当能够通过网络连接到SVN服务器,并想将本地提交同步到SVN服务器时,先获取SVN服务器上最新的提交,然后执行变基操作,最后再将本地提交推送给SVN服务器。


$git svn fetch

$git svn rebase

$git svn dcommit


本书第4篇第26章会详细介绍这一话题。