搭建SVN服務

SVN

版本管理工具管理着隨時間改變的各種數據

像普通文件服務器或者ftp服務器,但是,SVN會備份並記錄每個文件每一次的修改記錄
Subversion
官網:
http://subversion.tigris.org/


http://subversion.apache.org/

 
svn
客戶端: http://tortoisesvn.net/

 
svn
中文網站: http://www.iusesvn.com/

  
中文常見問題解答FAQ:http://subversion.apache.org/faq.zh.html

    
官方手冊:IMG_261http://svnbook.red-bean.com/ 中英都有

 

常見的版本管理軟件工具:

Vss cvs SVN git

Git斷網時可以本地管理,當網絡好時再自動同步,gitlinuse開發的,和linux系統親密度更好

SVN斷網時則不能管理

 

Svn訪問方式:

1,獨立服務器訪問 

訪問地址如:svn://svn.etiantian.org/sadoc  <===通過tcp/ip自定義協議訪問svnserve服務器
2,藉助apachehttp服務

訪問地址如:http://svn.etiantian.org/sadoc  <===通過WebDAV協議訪問支持Subversion的Apache服務器

a.單獨安裝apache+svn(不要用,配置麻煩,不易維護)

b.CSVN(apache+svn)是一個單獨的整合的軟件,帶web界面管理的svn軟件(網上資料很多)

3.本地直接訪問

訪問地址如:file:///application/svndata/sadoc  <===直接通過本地磁盤或者網絡磁盤訪問版本庫

 SVN工作原理

Snv相當於一個特殊的數據庫,因爲它要管理數據,所以它上面的數據是不能直觀看到的

svn存儲版本數據有2種方式:BDB(一種事務安全型表類型)和FSFS(一種不需要數據庫的存儲系統,是SVN默認安裝格式)。因爲BDB方式在服務器中斷時,有可能鎖住數據,所以還是FSFS方式更安全一點


SVN的服務器端安裝(單獨服務器形式):

[root@db02 ~]# yum -y install subversion
[root@db02 ~]# rpm -qa subversion
subversion-1.6.11-15.el6_7.x86_64
[root@db02 ~]# mkdir -p /application/svndata  <===總的svn數據目錄
[root@db02 ~]# mkdir -p /application/svnpasswd  <===總的用戶,密碼,權限管理目錄

[root@db02 ~]# svnserve -d  -r /application/svndata/  <===後臺指定服務的根目錄

[root@db02 ~]# lsof -i :3690
COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
svnserve 27495 root    3u  IPv4 914026      0t0  TCP *:svn (LISTEN)

 

SVN參數:

[root@linux ~]# svnserve --help

用法: svnserve [-d | -i | -t | -X] [options]

 

有效選項:

  -d [--daemon]            : 後臺模式

  -i [--inetd]             : inetd 模式

  -t [--tunnel]            : 隧道模式

  -X [--listen-once]       : 監聽一次方式(調試用)

  -r [--root] ARG          : 服務的根目錄

  -R [--read-only]         : 強制只讀;覆蓋版本庫配置文件

  --config-file ARG        : 從文件 ARG 讀取配置

  --listen-port ARG        : 監聽端口

                             [方式: daemon, listen-once]

  --listen-host ARG        : 監聽主機名稱或IP地址

                             [方式: daemon, listen-once]

  -T [--threads]           : 使用線程代替進程 [方式: daemon]

  --foreground             : 在前臺運行(調試用)

                             [方式: daemon]

  --log-file ARG           : svnserve 日誌文件

  --pid-file ARG           : 寫進程 PID 到文件 ARG

                             [方式: daemon, listen-once]

  --tunnel-user ARG        : 隧道用戶名(默認是當前UID對應的用戶名)

                             [方式: tunnel]

  -h [--help]              : 顯示本幫助

  --version                : 顯示程序版本信息

 

建立項目版本庫:

svnadmin create /application/svndata/sadoc

(默認是FSFS格式)


修改配置:

[root@linux ~]# cd /application/svndata/sadoc/conf/

[root@linux conf]# ls

authz  passwd  svnserve.conf

[root@linux conf]# cp svnserve.conf svnserve_old.conf

[root@linux conf]# vim svnserve.conf

 12 anon-access = none

 13 auth-access = write

 20 password-db = /application/svnpasswd/passwd

 27 authz-db = /application/svnpasswd/authz

spacer.gif

[root@linux conf]# cp authz passwd /application/svnpasswd/  <===方便統一管理用戶和權限

[root@linux conf]# cd /application/svnpasswd/

[root@linux svnpasswd]# ls

authz  passwd

添加用戶:

[root@linux svnpasswd]# vim passwd

[users]

# harry = harryssecret

# sally = sallyssecret

test01 = 123456

stu01 = 123

stu02 = 456

更改密碼文件權限:

因爲是明文,不能讓非root用戶隨便看賬號密碼文件

[root@linux svnpasswd]# chmod 600 passwd 

[root@linux svnpasswd]# ll passwd 

-rw-------. 1 root root 372 2月  24 18:04 passwd

設置用戶權限:

[root@linux svnpasswd]# vim authz

[groups]

# harry_and_sally = harry,sally

# harry_sally_and_joe = harry,sally,&joe

test = stu01,stu02

# [/foo/bar]

# harry = rw

# &joe = r

# * =

# [repository:/baz/fuz]

# @harry_and_sally = rw

# * = r

[sadoc:/]

test01 = rw

@test = r


設置用戶子項目管理和權限:

[root@linux svnpasswd]# vim authz

[sadoc:/]

oldboy = rw

gongli = r

@oldboy23 = r

[sadoc:/]

test01 = rw

@test = r


[sadoc:/stu01]

test01 = rw

stu01 = rw

@test = r


[sadoc:/stu02]

test01 = rw

stu02 = rw

@test = r

 

這樣stu01和stu02兩個用戶之間都可以相互查看對方文件內容,但卻只能更改自己項目目錄的內容,並由test01管理員統一管理

(注:管理員在“/”的基礎上創建管理員

普通用戶在“/”下面的目錄上創建用戶

所以管理員能管理所有用戶的文檔,用戶只能管理自己的文檔)

SVN的客戶端安裝和配置:


windows系統爲客戶端用法:


下載Windows 端程序http://tortoisesvn.net/downloads.html

下載後安裝軟件,再建一個文件夾,右擊update即可,客戶端配置很簡單,不會配時網上教程一大堆


linux系統爲客戶端用法:

[root@linux sadoc]# svn co svn://192.168.222.102/sadoc/ /sadoc/ --username=oldboy --password=oldboy123

A    /sadoc/stu01

A    /sadoc/stu01/Hydrangeas.jpg

A    /sadoc/stu01/13122301_980x1200_0.jpg

A    /sadoc/stu01/Jellyfish.jpg

A    /sadoc/stu02

A    /sadoc/stu02/12.png

取出版本 15。

[root@linux sadoc]# ls

01  22.doc  clipboard.png  stu01  stu02

詳細參數用法:

[root@linux svnpasswd]# svn --help  <===查看參數意思和用法 

 


 

 

 

 



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