svn服務器搭建(一)
什麼是svn:
集中式代碼管理的核心是服務器,所有開發者在開始新一天的工作之前必須從服務器獲取代碼,然後開發,最後解決衝突,提交。所有的版本信息都放在服務器上。如果脫離了服務器,開發者基本上可以說是無法工作的。下面舉例說明:
開始新一天的工作:
1、從服務器下載項目組最新代碼。
2、進入自己的分支,進行工作,每隔一個小時向服務器自己的分支提交一次代碼(很多人都有這個習慣。因爲有時候自己對代碼改來改去,最後又想還原到前一個小時的版本,或者看看前一個小時自己修改了哪些代碼,就需要這樣做了)。
3、下班時間快到了,把自己的分支合併到服務器主分支上,一天的工作完成,並反映給服務器。
下圖就是經典的svn工作流程,從流程上看,有不少缺點,但也有優點。
缺點
1、服務器壓力太大,數據庫容量暴增。
2、如果不能連接到服務器上,基本上不可以工作,看上面第二步,如果服務器不能連接上,就不能提交,還原,對比等等。
3、不適合開源開發(開發人數非常非常多,但是Google app engine就是用svn的)。但是一般集中式管理的有非常明確的權限管理機制(例如分支訪問限制),可以實現分層管理,從而很好的解決開發人數衆多的問題。
優點
1、管理方便,邏輯明確,符合一般人思維習慣。
2、易於管理,集中式服務器更能保證安全性。
3、代碼一致性非常高。
4、適合開發人數不多的項目開發。
----------------------服務端的安裝--------------------------
1 安裝svn服務:
yum install -y subvers*
2 創建數據存儲的根目錄:
mkdir -p /opt/svn/svndata
3 創建用戶及密碼的權限目錄:
mkdir -p /opt/svn/svnpasswd
4 啓動svn服務器:
svnserve -d -r /opt/svn/svndata/
5 創建svn數據庫"che":
svnadmin create /opt/svn/svndata/che
6 複製驗證文件和密碼文件:
cp /opt/svn/svndata/che/conf/authz /opt/svn/svnpasswd/authz cp /opt/svn/svndata/che/conf/passwd /opt/svn/svnpasswd/passwd chmod 700 /opt/svn/svnpasswd/*
7 備份配置文件:
cd /opt/svn/svndata/che/conf/ cp svnserve.conf svnserve.conf_bak
8 修改svn配置文件:
vim svnserve.conf
anon-access = none auth-access = write password-db = /opt/svn/svnpasswd/passwd authz-db = /opt/svn/svnpasswd/authz
9 添加賬號:zhen 密碼:123456 帳號:xing 密碼:123456
cd /opt/svn/svnpasswd/ vim passwd
[users] zhen = 123456 xing = 654321 #提示: # 等號前是賬號 後面是密碼:
10 修改authz
#版本庫目錄格式: #[<版本庫>:/項目/目錄] #@<用戶組名> = <權限> #<用戶名> = <權限> sagroup = zhen,xing [che:/] zhen = rw xing = rw @sagroup= rw
提示:
對svn 權限的修改不必重啓SVN服務.
-----------------至此服務端配置完成-------------------
windows 客戶端:
客戶端分爲32位跟64位(這裏選擇了64位): http://tianjin.mycodes.net/201310/TortoiseSVN-1.8.2.24708-x64.zip
-----------------客戶端安裝完成-----------------------
測試部分:
在d:/svn-test/下新建立一個目錄che並創建點文件 任意
2 輸入帳號和密碼:
3 測試上傳數據:
4 新建N多文件夾,返回che目錄--右鍵--svn提交-- 點“全選”---確定
5 上傳完成:
6 完成之後的截圖:
7 更換xing賬號下載內容:
至此 簡單的svn服務已經搭建完成,後續篇章會發出來關於svn鉤子的使用方法和linux下的svn客戶端使用方法。