Svn(subversion)是一個開源代碼管理的控制系統,用來管理和存儲開發的源代碼,基於C/S模式。能夠單獨提供服務,也能夠結合http服務來實現。html
運行方式 | 運行端口 | 訪問方法 |
svn單獨服務 | 3690 | svn:// |
http結合服務 | 80 | http:// |
下面開始搭建svn服務web
(1)安裝svn 和 apache 服務,其中mod_dav_svn是用來銜接svn和apache的。數據庫
yum –y install subversion httpd mod_dav_svn
(2)查看是否註冊端口apache
cat /etc/services | grep svn –color
(3)建立存放版本庫vim
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目錄的文件內容svn
文件 | 做用 |
authz | 認證權限的配置 |
passwd | 用戶密碼的配置 |
svnserve | 服務器相關配置 |
(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可寫可讀,其餘人無權限
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
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 服務
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
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