1. 程式人生 > >SVN版本控制系統搭建(結合http服務)

SVN版本控制系統搭建(結合http服務)

start class read 上傳 net 腳本 tab hooks 文件內容

SVN版本控制服務器搭建

Svn(subversion)是一個開源代碼管理的控制系統,用來管理和存儲開發的源代碼,基於C/S模式。可以單獨提供服務,也可以結合http服務來實現。

運行方式 運行端口 訪問方法
svn單獨服務 3690 svn://
http結合服務 80 http://

下面開始搭建svn服務

1.環境準備

(1)安裝svn 和 apache 服務,其中mod_dav_svn是用來銜接svn和apache的。

yum –y install subversion httpd mod_dav_svn

(2)查看是否註冊端口

cat /etc/services | grep
svn –color

(3)創建存放版本庫

mkdir /web

(4)創建web項目實例

svnadmin create /web/www.demonxian3.cn
svnadmin create /web/www.demonxian2.cn

(5)查看svn版本相關文件

可以在通過svnadmin創建的目錄看到會生成一些文件。

技術分享

目錄 作用
dav 提供apache和mod_dav_svn使用的目錄,這個要自己手動創建
db 存放版本控制的數據庫文件
hooks 存放hook腳本文件
locks 存放svn監控鎖定數據的目錄,用來追蹤存取文件庫的客戶端
conf
存放配置文件(用戶訪問賬號和權限等)
format 文件 存放一個整數表示當前的文件庫配置的版本

下面是conf目錄的文件內容

技術分享

文件 作用
authz 認證權限的配置
passwd 用戶密碼的配置
svnserve 服務器相關配置

2.修改配置

(1)修改svnserve服務配置

vim /web/www.demonxian3.cn/conf/svnserve.conf

下面幾個字段默認都是註釋的,需要把註釋去掉

anao-access = read #表示匿名用戶可讀 值有:read write none

auth-access = write #表示認證用戶可寫,值同上

password-db = passwd #表示指定密碼庫的配置文件

authz-db = authz #表示指定認證權限配置文件

realm = www.demonxian3.cn   #登錄提示信息

註意上面字段必須頂格,即前面不能留空格,否則會報錯

(2)修改passwd用戶密碼配置

vim /web/www.demonxian3.cn/conf/passwd

技術分享

添加三個用戶,密碼均為123456

(3) 修改authz權限配置

vim /web/www.demonxian3.cn/conf/authz

技術分享

在groups域 裏定義一個CG組,組員有demon1,dmeon2

在 根域(自己寫上的)裏定義權限,CG組只有讀權限,demon3可寫可讀,其他人無權限

3.啟動服務

svnserve -d -r /web/    #-d 以守護運行 -r 以root用戶運行 web 就是自己創建的軟件版本庫

查看端口

技術分享

svn常用的命令

import 上傳代碼
checkout 下載代碼
update 更新代碼
status 查看狀態
diff 差異檢測
log 歷史記錄
list 顯示目錄
cat 查看內容
resolve 解決沖突
switch 切換版本庫
revert 恢復
add 增加  
delete 刪除
copy 復制
move 移動

更多請參見http://blog.csdn.net/ithomer/article/details/6187464

4.svn服務簡單的使用測試

mkdir local   #創建本地開發目錄

touch local/1.html local/2.html      #創建模擬web頁面

svn import /root/local/ file:///web/www.demonxian3.cn/ -m "first edit"  #導入

svn checkout svn://192.168.1.112/www.demonxian3.cn/ download     #取出代碼

技術分享

1.取代碼時會彈出身份驗證,默認是root用戶,回車即可輸入用戶名和密碼。

2.需要註意登錄的用戶需要有讀取權限否則不能下載

3.取出代碼後會在當前生成download目錄,在裏面進行相關的代碼開發即可

下面模擬代碼開發後的更新。

touch download/3.html

echo “hello world” > 2.html

svn add 3.html                                #在svn裏同步添加新文件

svn commit –m “second edit”        #提交代碼,這裏也需要用戶驗證。

如果輸入的賬號和密碼沒有寫入的權限,會寫入失敗

下面來搭建http + svn 服務

1.查看apache是否引入svn模塊

vim /etc/httpd/conf.d/subversion.conf

如果看到兩個字段則表示引入成功

LoadModule dav_svn_module    modules/mod_dav_svn.so

LoadModule authz_svn_module modules/mod_authz_svn.so

兩個模塊的物理路徑

/etc/httpd/modules/mod_authz_svn.so

/etc/httpd/modules/mod_dav_svn.so

2.編輯subversion模塊配置文件

vim /etc/httpd/conf.d/subversion.conf #在參照末尾location標簽添加下面的內容

<Location /web>

DAV svn

SVNParentPath /web #指定svn根目錄

AuthType Basic #Basic認證方式

AuthName ”www.demonx.cn” #認證顯示提示信息

AuthUserFile /web/svn/passwd #用戶密碼文件

AuthzSVNAccessFile /web/svn/authz #用戶配置文件

Require vaild-user #要求用戶認證不許匿名

</Location>

3.創建apache訪問svn相關配置文件

mkdir /web/svn

創建用戶密碼文件並配置密碼

htpasswd –c /web/svn/passwd dem1    #參數-c表示創建文件

htpasswd /web/svn/passwd dem2

創建權限配置文件

vim /web/svn/authz #添加下面的內容

[groups]

all = dem1,dem2

[/]

dem1 = rw

[www.demonxian3.cn:/]

@all = rw

[www.demonxian2.cn:/]

dem1 = rw

dem2 = r

service httpd restart

然後使用瀏覽器訪問,會發現需要用戶認證

技術分享

技術分享

下面使用小烏龜工具來訪問svn

使用小烏龜進行代碼的上傳和下載,雖然這個是開發人員做的事,但作為運維人員多少也應該了解一點。下面是小烏龜的下載的地址

http://tortoisesvn.net/downloads.html

下載好後會在右鍵生成svn相關插件

技術分享

配置相關選項,使用svn服務訪問配置如下

技術分享

註意URL上不能把根目錄/web也填寫上去了。

技術分享

輸入用戶名和密碼,不要保存

如果使用httpd服務訪問svn版本管理器,配置如下

技術分享

技術分享

技術分享

成功把代碼down下來了,提交一樣點擊右鍵commit即可,如果有時候上交失敗如下

技術分享

很有可能你的目錄權限不夠,修改一下即可 如我的: chmod -R 777 /web

技術分享

轉載請指明出處:http://www.cnblogs.com/demonxian3/p/6910206.html

SVN版本控制系統搭建(結合http服務)