SVN安裝部署方案(一)

svn介紹

       SubversionSVN)是一個開源的,跨平臺的版本控制系統,由CollabNet公司成立於2000年;Subversion作爲新一代的版本管理系統,以其目錄版本化、原子提交、版本化的元數據、更加有效的分支和標籤等特性,至今已被衆多的互聯網企業使用來管理網站、論壇的代碼文件;Subversion最獨特的地方,便是可以通過Apache的擴展模塊與ApacheHTTP服務相結合,實現更安全的特性與管理,其次用戶還可以通過HTTP協議去訪問版本庫,還可以通過SSL協議傳輸加密,保證數據的安全性;SubversionApache軟件基金會的發展的一個項目,並且也是一個豐富的開發人員和用戶社區的一部分。

 

常見的版本控制軟件

1CVS,逐漸被SVN取代,是CVX重寫版和改寫版

2SVNSubversion

3GitGit是一個開源的分佈式版本控制系統,用以有效、高速的處理從很小到非常大的項目版本管理。Git Linus Torvalds 爲了幫助管理 Linux 內核開發而開發的一個開放源碼的版本控制軟件

 

svn的服務器常見有3種運行訪問方式

1、獨立服務器(例如:svn://IP/sadoc); 

2、藉助apache(例如:http://IP/sadoc);

   1)單獨安裝Apache+svn  (不建議)

   2csvn是一個單獨的整合的軟件,帶web界面管理的svn軟件。

3、本地直接訪問(例如:file://IP/sadoc)

 

客戶端訪問方式

   Subversion可以通過多種方式訪問--本地磁盤訪問,或各種各樣不同的網絡協議,但一個版本庫的地址永遠都是一個URL,URL方案反映了訪問方法

file://直接版本訪問(本地磁盤或者網絡磁盤)

http://通過WebDAV協議訪問支持SubversionApache服務器

https://http://相似,但是用的SSL加密

svn://通過未認證的TCP/IP自定義協議訪問svnserver服務器

svn+ssh://通過認證並加密的TCP/IP自定義協議訪問svnserver服務器

 

SVN數據格式

Subversion存儲版本數據方式2種:BDB(一種事務安全型表類型)FSFS(一種不需要數據庫的存儲系統)。因爲BDB方式在服務器中斷時,有可能鎖住數據,所以還是FSFS方式更安全一點;那麼在創建Subversion版本控制倉庫的時候,可以指定存儲版本數據爲FSFS方式;

 

優缺點

集中式代碼管理的核心是服務器,所有開發者在開始新一天的工作之前必須從服務器獲取代碼,然後開發,最後解決衝突,提交。所有的版本信息都放在服務器上。如果脫離了服務器,開發者基本上可以說是無法工作的。下面舉例說明:

開始新一天的工作:

1、從服務器下載項目組最新代碼

2、進入自己的分支,進行工作,每隔一小時向服務器上自己的分支持提交一次代碼(很多人都有這個習慣。因爲有時候自己對自己代碼改來改去,最後又想還原到前一個小時的版本,或者看看前一個小時自己修改了哪些代碼,就需要這樣做了)。

3、下班時間快到了,把自己的分支合併到服務器的主分支上,一天的工作完成,並反映給服務器

這就是經典的svn工作流程,從流程上看,有缺點,也有優點。


缺點:

1、服務器壓太大,svn數據庫容量暴增

2、如果不能連接到服務器上,基本上不可以工作,看上面第二步,如果服務器不能連接上,就不能提交,還原,對比等

3、不適合開源開發(開發人數非常非常多,但是Googleapp engine就是用SVN的)。但一般集中式管理的有非常明確權限管理機制(例如分支訪問限制),可以實現分層管理,從而很好解決開發人數衆多問題

 

優點:

1、管理方便,邏輯明確,符合一般人思維習慣

2、易於管理,集中式服務器更能保證安全性

3、代碼一致性非常高

4、適合開發人數不多的項目開發

 

svn服務端搭建部署

1. 系統環境:

[root@YII~]# cat /etc/redhat-release

CentOSLinux release 7.2.1511 (Core)

[root@YII~]# uname -rm

3.10.0-327.el7.x86_64x86_64

 

2. yum安裝subversion

[root@YII~]# yum install subversion -y

 

3. 檢測是否安裝成功

[root@YII~]# rpm -qa subversion

subversion-1.7.14-10.el7.x86_64

 

4. 配置並啓動SVN

建立svn版本庫數據存儲根目錄(svndata)及用戶,密碼權限目錄(svnpasswd)

[root@YII~]# mkdir -p /application/svndata     

[root@YII~]# mkdir -p /application/svnpasswd    

 

5. 啓動SVN服務指定服務的SVN根目錄

 

[root@YII~]# svnserve -d -r /application/svndata/

 

6. 查看SVN進程:

[root@YII~]# ps -ef|grep svn

root       2579     1  0 09:32 ?        00:00:00 svnserve -d -r/application/svndata/

root       2586  2487  0 09:35 pts/0    00:00:00 grep --color=auto svn

 

7. 查看SVN端口:

[root@YII~]# netstat -lntup|grep 3690

tcp        0     0 0.0.0.0:3690           0.0.0.0:*               LISTEN      2579/svnserve

 

到此,SVN服務端安裝完畢,以下爲服務端的配置:

 

  1. 建立項目版本庫

創建一個新的subsersion項目test.com,其實類似test.com這樣的項目可以創建多個每個項目對應不同的代碼,以此爲例:

[root@YII~]# svnadmin create /application/svndata/test.com

[root@YII~]# ls -ld /application/svndata/test.com/

drwxr-xr-x6 root root 80 Apr  9 09:53/application/svndata/test.com/

 

2. 調整SVN配置文件及權限文件

配置允許用戶hejp讀寫:

[root@YII~]# cd /application/svndata/test.com/conf/

[root@YIIconf]# cp svnserve.conf svnserve.conf.ori

修改配置文件

sed -i ’s/#anon-access = read / anon-access = none /’ svnserve.conf

sed -i ’s/#auth-access = write / auth-access = write /’ svnserve.conf

sed -i ’s%#password-db = passwd % password-db = /application/svnpasswd/passwd%’svnserve.conf

sed -i ’s%#authz-db  =  authz % authz-db  = /application/svnpasswd/authz%’ svnserve.conf

 

檢查:

[root@YIIconf]# diff svnserve.conf svnserve.conf.ori

19,20c19,20

<  anon-access = none

<  auth-access = write

---

> #anon-access = read

> #auth-access = write

27c27

<  password-db = /application/svnpasswd/passwd

---

> #password-db = passwd

34c34

<  authz-db = /application/svnpasswd/authz

---

> #authz-db = authz

 

3. 把密碼認證文件模板考到相關目錄,並設置只有root才能看。

[root@YIIconf]# cp passwd  authz/application/svnpasswd/

[root@YIIconf]# cd /application/svnpasswd/

[[root@YIIsvnpasswd]# chmod 700 authz passwd

[root@YIIsvnpasswd]# ll

total 8

-rwx------1 root root 1080 Apr  9 10:20 authz

-rwx------1 root root  309 Apr  9 10:20 passwd

 

4. 編輯passwd添加用戶ningmi:

[users]

# harry= harryssecret

# sally= sallyssecret

hejp = 888888

hejianping= 111111

提示:

1)等號前爲SVN賬號,等號後爲SVN密碼,密碼是明文,注意密碼權限。

2 )更改svnserve.conf時,需要重啓svn,更改authz,passwd文件時不需要重啓。

Kill–USR1 `cat /application/svndata/svn.pid`

Svnserve–d –r /application/svndata/ --pid-file=/application/svndata/svn.pid

 

5. 配置authz文件:

#[repository:/baz/fuz]

# @harry_and_sally= rw

# * = r

 [test.com:/]

hejp = wr     #讀寫權限

hejianping = r  #只讀權限

 

[<項目庫>:/項目/目錄]

@<用戶組名> = <權限>

<用戶名> = <權限>

 

6. 重啓服務:

[root@YIIsvnpasswd]# pkill svnserve

[root@YIIsvnpasswd]# ps -ef|grep svn

root       2916  2487  0 10:47 pts/0    00:00:00 grep --color=auto svn

[root@YIIsvnpasswd]# svnserve -d -r /application/svndata/

[root@YIIsvnpasswd]# ps -ef|grep svn                    

root       2918     1  0 10:47 ?        00:00:00 svnserve -d -r/application/svndata/

root       2920  2487  0 10:47 pts/0    00:00:00 grep --color=auto svn

 

至此服務端設置完成。


svn客戶端安裝

                                          

1.下載和安裝svn windows 客戶端

wKiom1cKQsnTFodIAABqwmNeLUU789.png

   

wKioL1cKbB3TwyHyAAEqtX9jDJQ232.png


2. 新建文件夾svn 右擊svncheckout設置設置取出數據

wKioL1cKQ32SmhcoAAHmneRCErs323.jpg


4,設置svn地址:svn://ip/項目名

wKioL1cKbB7xsmSOAAFUc1u9Zc4059.jpg


5,輸入賬號密碼

wKiom1cKa22TsMTfAAGMK3edSWo060.jpg

 

6,見到這個頁面就代表取出數據成功了

wKioL1cKbCDAIqUVAAELZXm8xWQ994.jpg

 

至此客戶端安裝完成。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章