搭建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
????
官方手冊:http://svnbook.red-bean.com/?中英都有
?
常見的版本管理軟件工具:
Vss cvs SVN git
Git斷網時可以本地管理,當網絡好時再自動同步,git是linuse開發的,和linux系統親密度更好
SVN斷網時則不能管理
?
Svn訪問方式:
1,獨立服務器訪問?
訪問地址如:svn://svn.etiantian.org/sadoc ?<===通過tcp/ip自定義協議訪問svnserve服務器
2,借助apache等http服務
訪問地址如: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
[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??<===查看參數意思和用法?
?
?
?
?
?
轉載于:https://blog.51cto.com/xiaohailuo/1826233
總結
- 上一篇: 正则表达式匹配字符串的问题
- 下一篇: POJ3751 时间日期格式转换【日期计