centos 6.9部署svn服務器(服務器、客戶端環境配置)
一、服務器端安裝
1、安裝svn
[root@svn ~]#yum install -y subversion
2、新建svn目錄
[root@svn ~]#mkdir -p /root/svn/svnserver
3、啟動svn服務
[root@svn ~]#svnserve -d -r /root/svn/svnserver/
如果有這個報錯:svnserve: error while loading shared libraries: libaprutil-1.so.0: cannot open shared object file: No such file or directory
解決辦法:
(1)找到這個文件所在目錄
[root@svn ~]#find / -name "libaprutil-1.so.0" /usr/local/xxx/service/apache/lib/libaprutil-1.so.0
(2)查看共享庫配置文件
[root@svn ~]#more /etc/ld.so.conf include ld.so.conf.d/*.conf
(3)添加共享庫,並更新共享庫
[root@svn ~]#vi /etc/ld.so.conf.d/httpd-apr.conf /usr/local/xxx/service/apache/lib/ [root@svn ~]#ldconfig -v
4、啟動svn
[root@svn ~]#svn --version [root@svn ~]#svnserve -d -r /root/svn/svnserver/
備註:如果要更改端口啟動的時候接上“--listen-port”新端口。
5、創建版本庫
[root@svn ~]#svnadmin create /root/svn/svnserver/patch
6、修改svnserve.conf配置文件,在[general]下方加入這四行
[root@svn ~]#vim /root/svn/svnserver/patch/conf/svnserve.conf anon-access = none auth-access = write password-db = passwd authz-db = authz realm = patch
備註:realm 這行也可以不加。
7、創建svn用戶和權限分配
在 /root/svn/svnserver/patch/conf目錄下,有兩個文件是配置用戶賬號密碼和用戶權限的。
passwd 此文件配置用戶賬號和密碼 [root@svn ~]#vim /root/svn/svnserver/patch/conf/passwd [users] # harry = harryssecret # sally = sallyssecret xxx = 123456 zhangsan = 123456 lisi = 123456
authz 此文件配置用戶權限 [root@svn ~]#vim /root/svn/svnserver/patch/conf/authz [groups] # harry_and_sally = harry,sally # harry_sally_and_joe = harry,sally,&joe admin = xxx user = xxx,zhangsan,lisi # [/foo/bar] # harry = rw # &joe = r # * = # [repository:/baz/fuz] # @harry_and_sally = rw # * = r [/] @admin = rw @user = rw
備註:authz這個文件詳細控制權限,請見最後的備註。
8、設置iptables防火墻允許3690端口,或者關閉防火墻
9、 編寫啟動腳本
[root@svn ~]#vi /etc/init.d/server_init #!/bin/bash #chkconfig: 345 90 90 #description: server_init for patch. svnserve -d -r /root/svn/svnserver/
10、 啟動腳本放入/etc/init.d/目錄下,並設置開機啟動
[root@svn ~]#chkconfig --add server_init [root@svn ~]#chkconfig server_init on [root@svn ~]#chmod 755 server_init
備註:如果要殺掉svnserver,用killall svnserver,然後svnserve -d -r /root/svn/svnserver/啟動。
二、客戶端安裝
1、下載TortoiseSVN客戶端
http://sw.bos.baidu.com/sw-search-sp/software/b2ea78514e765/TortoiseSVN-1.9.7.27907-x64.msi
2、右鍵點擊桌面上空白區域,然後會發現右鍵的菜單中多了“SVN Checkout...”工具欄,點擊。
3、填入服務器版本庫的路徑,和本地存放版本庫文件的目錄,這裏本地C盤新建一個patch目錄,會提示輸入密碼,並下載更新。
4、更新並提交2個文件,如下圖:
如果要提交某一個文件,可以選中這個文件,然後右鍵選擇TortoiseSVN---Add添加,提交的時候最好寫上備註:
5、清除登錄帳號和密碼信息,然後用另外一個帳號登錄(本地C盤新建一個test2目錄)
備註:我這裏只是舉例,實際情況下是讓另外一個人在其他電腦上登錄另外一個帳號,驗證相互提交的數據是否能同步。
如上圖,表示同步成功。
疑問:
或許有很多人會以為這些文件會以文件方式存儲在服務器上,其實不是。
上傳的文件放在SVN服務器的哪個目錄下,SVN服務器版本庫有兩種格式。一種為FSFS,一種為BDB。
把文件上傳到SVN版本庫後,上傳的文件不再以文件原來的格式存儲,而是被svn以它自定義的格式壓縮成版本庫數據,存放在版本庫中。
如果是FSFS格式,這些數據存放在版本庫的db目錄中,裏面的revs和revprops分別存放著每次提交的差異數據和日誌等信息
備註:
這是一個權限實例需求,如果需要對權限精確控制,請參考這個。
-----------------------------------------------------------------
策劃組:開策劃、美術讀寫
後端組:開後端讀寫,策劃只讀
前端組:開前端讀寫,策劃、美術只讀
美術組:開美術讀寫,策劃只讀
管理員組:所有的讀寫
authz:用戶權限配置
示例:
[groups]
#管理組
manager = boss
#服務端用戶組
server = server1,server2
#客戶端用戶組
client = client1,client2
#美術組
art = art1,art2
#策劃組
design=design1,design2
[game:/]
@manager=rw
[game:/server]
@server=rw
[game:/client]
@client=rw
@design=r
@art=r
[game:/art]
@design=rw
@art=rw
@client=r
[game:/design]
@design=rw
@server=r
@client=r
@art=r
passwd:用戶密碼
[users]
boss=123456
server1=123456
server2=123456
client1=123456
client2=123456
art1=123456
art2=123456
design1=123456
design2=123456
centos 6.9部署svn服務器(服務器、客戶端環境配置)