您的位置:软件测试 > 开源软件测试 > 开源配置管理工具 > SVN
为什么 Git 比 SVN 好
作者:网络转载 发布时间:[ 2014/1/2 10:44:27 ] 推荐标签:配置管理 SVN Git

在版本控制系统的选型上,是选择Git还是SVN?

对于开源项目来说这不算问题。使用Git极大地提高了开发效率、扩大了开源项目的参与度、 增强了版本控制系统的安全性,选择Git早已是大势所趋。

但对于企业用户来说这个决心不太好下。部分原因是出于对Git的误解,部分原因是尚不了解 Git到底能给项目管理带来什么好处。希望本文能对您项目的版本控制系统选型提供帮助。

对SVN的迷信和对Git的误解

误解1:SVN只能检出(checkout)一个版本(revision)的代码,而Git却可以脱库!

这个误解是如此普遍,简直成了SVN在企业市场中封杀Git的尚方宝剑。其实稍微思考一下 这个谣言很难传播。既然SVN能够读取授权访问的文件的每一个版本,那么能够重组这些版本, 进而实现对版本库的完整复制。即SVN也可以脱库。

SVN脱库的工具SVN本身提供: svnsync 。这个工具主要用于SVN的版本库镜像。 例如将版本库http://host.name/svn/repo 脱库到本地的 dump 目录,命令如下:

    $ svnadmin create dump
    $ printf '#!/bin/sh exit 0 ' > dump/hooks/pre-revprop-change
    $ chmod a+x dump/hooks/pre-revprop-change
    $ svnsync init file://$(pwd)/dump http://host.name/svn/repo
    $ svnsync sync file://$(pwd)/dump

如果使用 git-svn 则为SVN“脱库”更简便。

    $ git svn clone -s http://host.name/svn/repo dump

有人认为SVN可以对目录授权,从而阻止对整个版本库进行脱库操作。 下面来看看SVN的授权究竟是否可靠。

误解2:SVN能对目录进行精细授权,而Git太不安全

SVN的目录授权对管理员来说是灾难,管理负担相当重,在分支或里程碑众多的时候很难作对。 这是因为SVN的分支和里程碑(tags)本身是一个目录(使用目录拷贝实现的)。

例如管理员为名为demo的SVN版本库授权。一个并不太复杂的主线(/trunk)授权如下:

    [demo:/trunk]
    @demo-admin = rw
    @leaders = r

    [demo:/trunk/doc]
    @demo-dev = rw
    @designers = rw

    [demo:/trunk/src/apps]
    @demo-dev = rw

    [demo:/trunk/src/common]
    @demo-dev = rw

    [demo:/trunk/src/html]
    @designers = rw

    [demo:/trunk/src/secret]
    * =
    @demo-admin = rw
    jiangxin = rw

上一页1234下一页
软件测试工具 | 联系我们 | 投诉建议 | 诚聘英才 | 申请使用列表 | 网站地图
沪ICP备07036474 2003-2017 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd