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

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
