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