使用Subversion進(jìn)行版本控制。
?
1.6版本
?
編譯自SVN版本 38063
?
作者:
?
Ben Collins-Sussman
Brian W. Fitzpatrick
C. Michael Pilato
?
第一章 什么是Subversion
?
1. Subversion是否是適合你的工具
?
如果你是一個(gè)管理者想要使用Subversion,首先你必須要問(wèn)自己,“Subversion是否是適合你的工具”,雖然Subversion是一個(gè)很炫的東西,但他并不是萬(wàn)能的。
?
如果你想要存取舊文件,抑或檢查一段時(shí)間內(nèi)文件的變化,那Subversion就是你想要的那個(gè)工具了。如果你正讓一個(gè)團(tuán)隊(duì)進(jìn)行協(xié)作開(kāi)發(fā),而且想監(jiān)控成員對(duì)代碼的更改,Subversion也再適合不過(guò)了。
?
Subversion讓團(tuán)隊(duì)合作更加緊密,代碼更加安全,當(dāng)然我們還是需要一個(gè)小小的代價(jià)就是設(shè)置一個(gè)管理者,管理Subversion。
?
2. Subversion的歷史
?
在千禧年開(kāi)始不久,CollabNet公司開(kāi)始尋找開(kāi)發(fā)者來(lái)開(kāi)發(fā)一個(gè)CVS的代替品。盡管CVS是CollabNet公司最早使用的版本控制工具,CollabNet一開(kāi)始就發(fā)現(xiàn)了CVS存在的很多缺陷與不足帶來(lái)的局限。CollabNet公司原本希望可以找到一個(gè)更好的版本控制工具,但是CVS逐漸成為了開(kāi)源世界版本控制器的標(biāo)準(zhǔn),因?yàn)槟莻€(gè)時(shí)間找不到比CVS更好的開(kāi)源版本控制工具了。于是CollabNet公司開(kāi)始計(jì)劃開(kāi)發(fā)出一個(gè)新的版本控制工具,它既可以繼承CVS的理念,而且比CVS更加完善。
?
2000年2月,他們聯(lián)系了Karl Fogel,《 Open Source Development with CVS》 的作者,詢(xún)問(wèn)他是否愿意加入這個(gè)新項(xiàng)目中。這個(gè)時(shí)間,正好Karl Fogel正在與好友Jim Blandy討論設(shè)計(jì)一個(gè)新的版本控制器。1995年,他們成立了Cyclic Software公司,這是一個(gè)提供CVS服務(wù)的公司,盡管他們后來(lái)賣(mài)掉了這個(gè)公司,但他們?nèi)匀皇褂煤芏郈VS的工作,而CVS的缺陷讓他們思考使用一個(gè)新的方法去管理他們的數(shù)據(jù)。于是他們開(kāi)始思考一個(gè)新的版本控制器,最早就只有一個(gè)“Subversion”的名稱(chēng)而已。得到CollabNet的邀請(qǐng)后,Karl馬上答應(yīng)加入到這個(gè)項(xiàng)目中,而Jim因?yàn)榧尤隦edHat,而無(wú)暇投入到Subversion項(xiàng)目中。于是CollabNet聘請(qǐng)了Karl 和 Ben Collins-Sussman,2000年5月,Subversion進(jìn)入詳細(xì)設(shè)計(jì)階段。
?
Subversion開(kāi)始后,受到了開(kāi)源社區(qū)的關(guān)注,一開(kāi)始Subversion像CVS一樣有很多的缺陷,但一年后,Subversion已經(jīng)開(kāi)始逐漸成為CVS的替代品。
?
3. SVN架構(gòu)圖
?
?
Subversion, 安裝后分為很多個(gè)組件. 下面簡(jiǎn)單介紹一個(gè)組件。不要強(qiáng)記這件組件,下面還會(huì)有很多篇章詳細(xì)的介紹各組件的作用與使用方法。
?
?
svn
??? 客戶(hù)端命令行程序
svnversion
??? 報(bào)告客戶(hù)端狀態(tài)的程序
svnlook
??? 查看版本庫(kù)的工具
svnadmin
??? 新建,調(diào)整或修理版本庫(kù)的工具
mod_dav_svn
??? Apache Http Server的插件
svnserve
??? SVN的服務(wù)器程序
svndumpfilter
??? 過(guò)濾SVN垃圾的工具
svnsync
??? 兩個(gè)版本庫(kù)之間映射的工具
?
第二章 SVN的基本概念
?
????? 這一章,是對(duì)SVN一個(gè)簡(jiǎn)介,如果你剛剛使用版本控制器,這章對(duì)你來(lái)說(shuō)就非常有用了。我們會(huì)從版本控制器的一般概念開(kāi)始講起,從而引申出Subversion背后的一些理念,同時(shí)講一個(gè)SVN的基本使用。
?
???? 盡管這里面的例子描述代碼開(kāi)發(fā)者怎樣共享代碼,但記得SVN的作用不僅于此。
?
1. 版本庫(kù)(Repository)
?
Subversion 是一種信息共享的中心系統(tǒng),而他的核心就是版本庫(kù)。版本庫(kù)是存儲(chǔ)代碼的地方,SVN的版本以樹(shù)形文件的形式來(lái)存儲(chǔ)信息,所有的客戶(hù)端連接到版本庫(kù)后,在權(quán)限允許的范圍內(nèi)瀏覽版本庫(kù)中的內(nèi)容,通過(guò)修改版本庫(kù),其修改的內(nèi)容可以被其他客戶(hù)端所共享。
?
下面是客戶(hù)端與版本庫(kù)交互的示意圖:
?
?
到這里,我們發(fā)現(xiàn)這是一個(gè)典型的文件服務(wù)器,但版本庫(kù)的作用并不只是這樣。因?yàn)榘姹編?kù)可以保存文件更新的歷史,比如我們可以詢(xún)問(wèn)版本庫(kù),“星期三的時(shí)候這個(gè)文件夾里面包含了哪些文件”。還有“誰(shuí)修改了這些文件,做了哪些修改”等。這個(gè)功能同時(shí)也是版本庫(kù)的核心。
?
?
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元

