centos svn 的搭建
一. SVN?簡介
???????Subversion(SVN)?是一個開源的版本控制系統(tǒng),?也就是說?Subversion?管理著隨時間改變的數(shù)據(jù)。?這些數(shù)據(jù)放置在一個中央資料檔案庫(repository)?中。?這個檔案庫很像一個普通的文件服務(wù)器,?不過它會記住每一次文件的變動。?這樣你就可以把檔案恢復(fù)到舊的版本,?或是瀏覽文件的變動歷史。
?
SVN中的一些概念?:
(1). repository(源代碼庫)
???????源代碼統(tǒng)一存放的地方
(2). Checkout?(提取)
???????當(dāng)你手上沒有源代碼的時候,你需要從repository checkout一份
(3). Commit?(提交)
???????當(dāng)你已經(jīng)修改了代碼,你就需要Commit到repository
(4). Update (更新)
???????當(dāng)你已經(jīng)Checkout了一份源代碼,?Update一下你就可以和Repository上的源代碼同步,你手上的代碼就會有最新的變更?
?
???????日常開發(fā)過程其實就是這樣的(假設(shè)你已經(jīng)Checkout并且已經(jīng)工作了幾天):Update(獲得最新的代碼) -->作出自己的修改并調(diào)試成功?--> Commit(大家就可以看到你的修改了)?。
???????如果兩個程序員同時修改了同一個文件呢,??SVN可以合并這兩個程序員的改動,實際上SVN管理源代碼是以行為單位的,就是說兩個程序員只要不是修改了同一行程序,SVN都會自動合并兩種修改。如果是同一行,SVN會提示文件Confict,?沖突,需要手動確認。
?
客戶端軟件:
???????(1)Windows下常用的客戶端軟件常用TortoiseSVN。它是一個免費的開源的客戶端。?下載地址:http://tortoisesvn.net/downloads.html
???????(2)向Myeclipse,也有一些SVN的插件。
?
Subversion提供以下主要功能:
(1)目錄版本控制
???????CVS?只能跟蹤單個文件的歷史,?不過?Subversion?實作了一個?“虛擬”?的版本控管文件系統(tǒng),?能夠依時間跟蹤整個目錄的變動。?目錄和文件都能進行版本控制。
?
(2)真實的版本歷史
???????自從CVS限制了文件的版本記錄,CVS并不支持那些可能發(fā)生在文件上,但會影響所在目錄內(nèi)容的操作,如同復(fù)制和重命名。除此之外,在CVS里你不能用擁有同樣名字但是沒有繼承老版本歷史或者根本沒有關(guān)系的文件替換一個已經(jīng)納入系統(tǒng)的文件。在Subversion中,你可以增加(add)、刪除(delete)、復(fù)制(copy)和重命名(rename),無論是文件還是目錄。所有的新加的文件都從一個新的、干凈的版本開始。
?
(3)自動提交
???????一個提交動作,不是全部更新到了檔案庫中,就是完全不更新。這允許開發(fā)人員以邏輯區(qū)間建立并提交變動,以防止當(dāng)部分提交成功時出現(xiàn)的問題。
?
(4)納入版本控管的元數(shù)據(jù)
???????每一個文件與目錄都附有一組屬性關(guān)鍵字并和屬性值相關(guān)聯(lián)。你可以創(chuàng)建,?并儲存任何你想要的Key/Value對。?屬性是隨著時間來作版本控管的,?就像文件內(nèi)容一樣。
?
(5)選擇不同的網(wǎng)絡(luò)層
???????Subversion?有抽象的檔案庫存取概念,?可以讓人很容易地實作新的網(wǎng)絡(luò)機制。?Subversion?可以作為一個擴展模塊嵌入到Apache HTTP?服務(wù)器中。這個為Subversion提供了非常先進的穩(wěn)定性和協(xié)同工作能力,除此之外還提供了許多重要功能:?舉例來說,?有身份認證,?授權(quán),?在線壓縮,?以及文件庫瀏覽等等。還有一個輕量級的獨立Subversion服務(wù)器,?使用的是自定義的通信協(xié)議,?可以很容易地通過?ssh?以?tunnel?方式使用。
?
(6)一致的數(shù)據(jù)處理方式
???????Subversion?使用二進制差異算法來異表示文件的差異,?它對文字(人類可理解的)與二進制文件(人類無法理解的)?兩類的文件都一視同仁。?這兩類的文件都同樣地以壓縮形式儲存在檔案庫中,?而且文件差異是以兩個方向在網(wǎng)絡(luò)上傳輸?shù)摹?/p>
?
(7)有效的分支(branch)與標(biāo)簽(tag)
???????在分支與標(biāo)簽上的消耗并不必一定要與項目大小成正比。?Subversion?建立分支與標(biāo)簽的方法,?就只是復(fù)制該項目,?使用的方法就類似于硬連接(hard-link)。?所以這些操作只會花費很小,?而且是固定的時間。
?
(8)Hackability
???????Subversion沒有任何的歷史包袱;?它主要是一群共用的?C?程序庫,?具有定義完善的API。這使得?Subversion?便于維護,?并且可被其它應(yīng)用程序與程序語言使用。
?
?
二.??SVN?服務(wù)器搭建
?
2.1?使用yum?安裝SVN包
?
關(guān)于YUM?服務(wù)器的配置參考:
Linux?搭建?YUM?服務(wù)器
http://blog.csdn.net/tianlesoftware/archive/2011/01/03/6113902.aspx
?
[root@singledb ~]# yum install -y subversion
Loaded plugins: rhnplugin, security
This system is not registered with RHN.
RHN support will be disabled.
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package subversion.i386 0:1.4.2-4.el5_3.1 set to be updated
--> Finished Dependency Resolution
?
Dependencies Resolved
?
====================================================================================================
?Package????????????????Arch?????????????Version????????????????????????Repository?????????????Size
====================================================================================================
Installing:
?subversion?????????????i386?????????????1.4.2-4.el5_3.1????????????????rhel-base?????????????2.3 M
?
Transaction Summary
====================================================================================================
Install??????1 Package(s)????????
Update???????0 Package(s)????????
Remove???????0 Package(s)????????
?
Total download size: 2.3 M
Downloading Packages:
subversion-1.4.2-4.el5_3.1.i386.rpm??????????????????????????????????????????| 2.3 MB?????00:00????
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
??Installing?????: subversion???????????????????????????????????????????????????????????????????1/1
?
Installed:
??subversion.i386 0:1.4.2-4.el5_3.1????????????????????????????????????????????????????????????????
?
Complete!
[root@singledb ~]#
?
驗證安裝版本:
[root@singledb ~]#?svnserve --version
svnserve, version 1.4.2 (r22196)
???compiled Aug??5 2009, 19:03:56
?
Copyright (C) 2000-2006 CollabNet.
Subversion is open source software, see?http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).
?
The following repository back-end (FS) modules are available:
?
* fs_base : Module for working with a Berkeley DB repository.
* fs_fs : Module for working with a plain file (FSFS) repository.
?
?
2.2?創(chuàng)建SVN?版本庫
[root@singledb ~]# mkdir /u02/svn
[root@singledb ~]# svnadmin create /u02/svn/davesvn??--davesvn為版本庫名稱
?
?
2.3??SVN?配置
?
創(chuàng)建版本庫后,在這個目錄下會生成3個配置文件:
[root@singledb conf]# pwd
/u02/svn/davesvn/conf
[root@singledb conf]# ls
authz??passwd??svnserve.conf
?
(1)svnserve.conf:? svn服務(wù)配置文件下。
(2)passwd:?用戶名口令文件。
(3)authz:?權(quán)限配置文件。?
?
svnserve.conf?文件,?該文件配置項分為以下5項:
注意這邊把注釋#去掉的時候。前面一定不能留空格!!!!!!?
???????anon-access:?控制非鑒權(quán)用戶訪問版本庫的權(quán)限。
???????auth-access:??控制鑒權(quán)用戶訪問版本庫的權(quán)限。
???????password-db:?指定用戶名口令文件名。
???????authz-db:指定權(quán)限配置文件名,通過該文件可以實現(xiàn)以路徑為基礎(chǔ)的訪問控制。
???????realm:指定版本庫的認證域,即在登錄時提示的認證域名稱。若兩個版本庫的認證域相同,建議使用相同的用戶名口令數(shù)據(jù)文件
?
?
Passwd?文件?:
???????我們在svnserve.conf文件里啟用這個文件。然后配置如下:
[root@singledb conf]# cat passwd
### This file is an example password file for svnserve.
### Its format is similar to that of svnserve.conf. As shown in the
### example below it contains one section labelled [users].
### The name and password for each user follow, one account per line.
?
[users]
# harry = harryssecret
# sally = sallyssecret
dave = davepwd
tianlesoftware = tianlesoftwarepwd
?
?
authz??文件?:
在網(wǎng)上找到一個很好的配置例子:
[groups]
admin = john, kate
devteam1 = john, rachel, sally
devteam2 = kate, peter, mark
docs = bob, jane, mike
training = zak
--這里把不同用戶放到不同的組里面,下面在設(shè)置目錄訪問權(quán)限的時候,用目錄來操作就可以了。
?
#?為所有庫指定默認訪問規(guī)則
#?所有人可以讀,管理員可以寫,危險分子沒有任何權(quán)限
[/]??--對應(yīng)我測試?yán)锏?#xff1a;/u02/svn?目錄
* = r
@admin = rw
dangerman =
?
#?允許開發(fā)人員可以完全訪問他們的項目版本庫
[proj1:/]
@devteam1 = rw
[proj2:/]
@devteam2 = rw
[bigproj:/]
@devteam1 = rw
@devteam2 = rw
trevor = rw
?
#?文檔編寫人員對所有的docs目錄有寫權(quán)限
[/trunk/doc]
@docs = rw
?
#?培訓(xùn)人員可以完全訪問培訓(xùn)版本庫
[TrainingRepos:/]
@training = rw
?
下面我們來配置我們的authz文件:
[root@singledb conf]# cat authz
[groups]
admin = dave
dev=tianlesoftware
[davesvn:/]
@admin = rw
@dev = rw
[root@singledb conf]#
?
?
2.4?啟動和停止SVN服務(wù)
(1)啟動SVN服務(wù):
[root@singledb conf]#?svnserve -d -r /u02/svn
???????-d表示后臺運行
???????-r?指定根目錄是?/u02/svn
[root@singledb conf]#?ps -ef | grep svn
root??????4592?????1??0 18:04 ?????????00:00:00 svnserve -d -r /u02/svn
root??????4594??3709??0 18:04 pts/1????00:00:00 grep svn
(2)停止SVN服務(wù):
ps -aux |grep svn
kill -9?進程殺掉
?
?
三.?客戶端連接SVN?服務(wù)器
?
3.1?安裝TortoiseSVN?客戶端
???????下載地址在第一節(jié)已說明。
?
3.2?找到自己項目的目錄,右擊,進行SVN?操作
?
(1)新建測試目錄svn,進入后右鍵,點checkout:
?
??
?
SVN?服務(wù)器的IP地址和版本庫名稱。
?
?
?????
?
新建個文件svn.txt.?把這個文件上傳到SVN服務(wù)器(add):
?
??
?
轉(zhuǎn)載于:https://www.cnblogs.com/itfat/p/7267872.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的centos svn 的搭建的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java IO(二)——RandomAc
- 下一篇: 点击跳转到QQ聊天界面