您的位置:軟件測試 > 開源軟件測試 > 開源配置管理工具 > SVN
為什么 Git 比 SVN 好
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2014/1/2 10:44:27 ] 推薦標(biāo)簽:配置管理 SVN Git

在版本控制系統(tǒng)的選型上,是選擇Git還是SVN?

對(duì)于開源項(xiàng)目來說這不算問題。使用Git極大地提高了開發(fā)效率、擴(kuò)大了開源項(xiàng)目的參與度、 增強(qiáng)了版本控制系統(tǒng)的安全性,選擇Git早已是大勢所趨。

但對(duì)于企業(yè)用戶來說這個(gè)決心不太好下。部分原因是出于對(duì)Git的誤解,部分原因是尚不了解 Git到底能給項(xiàng)目管理帶來什么好處。希望本文能對(duì)您項(xiàng)目的版本控制系統(tǒng)選型提供幫助。

對(duì)SVN的迷信和對(duì)Git的誤解

誤解1:SVN只能檢出(checkout)一個(gè)版本(revision)的代碼,而Git卻可以脫庫!

這個(gè)誤解是如此普遍,簡直成了SVN在企業(yè)市場中封殺Git的尚方寶劍。其實(shí)稍微思考一下 這個(gè)謠言很難傳播。既然SVN能夠讀取授權(quán)訪問的文件的每一個(gè)版本,那么能夠重組這些版本, 進(jìn)而實(shí)現(xiàn)對(duì)版本庫的完整復(fù)制。即SVN也可以脫庫。

SVN脫庫的工具SVN本身提供: svnsync 。這個(gè)工具主要用于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

有人認(rèn)為SVN可以對(duì)目錄授權(quán),從而阻止對(duì)整個(gè)版本庫進(jìn)行脫庫操作。 下面來看看SVN的授權(quán)究竟是否可靠。

誤解2:SVN能對(duì)目錄進(jìn)行精細(xì)授權(quán),而Git太不安全

SVN的目錄授權(quán)對(duì)管理員來說是災(zāi)難,管理負(fù)擔(dān)相當(dāng)重,在分支或里程碑眾多的時(shí)候很難作對(duì)。 這是因?yàn)镾VN的分支和里程碑(tags)本身是一個(gè)目錄(使用目錄拷貝實(shí)現(xiàn)的)。

例如管理員為名為demo的SVN版本庫授權(quán)。一個(gè)并不太復(fù)雜的主線(/trunk)授權(quán)如下:

    [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下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd