《WINDOW+TortoiseSVN+LINUX CENTOS 6+SVN服務器端安裝》要點:
本文介紹了WINDOW+TortoiseSVN+LINUX CENTOS 6+SVN服務器端安裝,希望對您有用。如果有疑問,可以聯系我們。
到官網下載 https://tortoisesvn.net/downloads.html
注意有安裝程序和語言包,本文是V1.9,安裝后再安裝語言包。
雙擊開始安裝
點擊Next
點擊Next
這里我們把command line client tools也裝上,點擊它,選擇Entire feature will be installed on local hard drive
然后點擊Next
點擊Install開始安裝。
點擊Finish,安裝就完成了
TortoiseSVN并沒有管理界面,但當你鼠標右擊的時候,會多出SVN Checkout…和TortoiseSVN這兩個選項。
安裝完之后重啟一下電腦,不然以后導出的項目沒有那個小對號,看著不爽(但也并不影響使用)。
至此,客戶端安裝完成,接下來安裝服務端
從SVN服務器下載項目
在你的本地項目文件夾或隨便一個地方,右鍵空白處彈出菜單,選擇 SVN檢出:
然后,通過從SVN服務端獲取的 資源庫URL+具體的項目文件夾名 下載相應項目,并可以知道下載項目的保存位置
對項目的修改與提交
1:把項目下載到本機后,其實就是一個普通的項目文件而已,你可以在里面添加文件、修改文件、刪除文件等等。
2:提交修改
在項目文件空白處右鍵,選擇 SVN提交
然后,輸入 本次提交的版本更新信息(所作修改的注釋)、勾選要提交的操作內容,點擊 確定,即可把本機項目提交到SVN服務器資源庫,覆蓋掉資源庫項目從而實現更新。
(如果發生提交沖突,即兩人都提交修改,后提交者由于版本落后會提交失敗。這時可以先把自己的項目備份,然后從服務端下載最新的項目(下面有講SVN更新),再把自己的項目覆蓋到本地項目文件夾,最后SVN提交即可成功提交)
(SVN不提供歷史版本功能,所以項目被覆蓋后就找不回來了,所以切記備份。如果需要歷史版本的保存功能,推薦使用Git)
3:獲取更新
如果別人修改了SVN服務端資源庫上的項目,你想下載最新的項目,則在 本機項目文件空白處單擊鼠標右鍵,選擇 SVN更新 ,即可自動完成下載,并會提示所作的更新有哪些。注意:在原項目文件夾內選擇SVN更新的話,會自動覆蓋掉原有內容。建議:先備份,再更新,防止自己本來的項目內容丟失。
一般服務器上都默認有svn了,如果沒有,則直接yum -y install subversion 即可,運行rpm -qa subversion,就會發現svn已經下載并安裝好了。
具體安裝不詳解,這里重點說配置:
1.創建svn版本庫,命令如下:
svnadmin create /liyang/svn/project
可以看見project目錄下面生成了很多文件夾,進入版本庫中的配置目錄conf,此目錄有三個文件:用戶名口令文件、權限配置文件、svn服務綜合配置文件
2.修改svnserve.conf文件,命令如下:
vi svnserve.conf
開始配置,注意前邊不要有空格,要頂齊。
找到下面這些地方
刪除前面的#好,注意英文要左對齊,不要留空格。改成如下圖所示這個樣子:
這里anon-access必須為none,因為只有設為none,在客戶端才能看到每次提交的備注信息
修改好之后按 ESC,然后輸入 :wq回車(意思是保存并退出,一定要有冒號~~)
【注意】
anon-access =
read
這個是表示是否匿名訪問,要改成 none
realm 是注釋,在登錄驗證時會顯示。可以改成你自己的提示內容。
password-db 表示密碼文件,可以指定路徑另外存放。
authz-db 認證文件,也是可以指定路徑另外存放。如 authz-db = /var/authz
3.修改authz文件,命令如下:
vi authz
修改完成后如圖所示,依舊保存并退出。
備注:
admin = liyang,usertest1 #創建admin組,組成員為: liyang,usertest1,在[groups]下面添加
#用戶組格式 用戶組名 = 用戶1,用戶2
#一個組可以包含多個用戶,英文逗號間隔,用戶名必須是在passwd中存在的
user = test1 創建用戶組,用戶成員:test1
[test:/] 賦予根權限,為了便于管理和權限的控制,可以把權限細化到版本庫中相應的目錄
SVN目錄格式:
[/目錄名]
@用戶組名 = 權限
用戶名 = 權限
* =
@admin = rw admin組有讀寫的權限
@user = r user組只有讀的權限
Leo = r 用戶leo有讀的權限
*= 表示除了上面設置的權限用戶組以外,其他所有用戶都設置空權限,空權限表示禁止訪問本目錄,這很重要一定要加上。
備注:版本庫的目錄格式如下:
[<版本庫>:/項目/目錄]
@<用戶組名> = 權限
<用戶名> = 權限
其中[]內容有許多寫法:
[/],表示根目錄及其一下的路徑,根目錄是svnserver啟動時指定好的,上述實例中我們指定為:/svn/svndata([/]=/svn/svndata).[/]就是表示對全部版本設置的權限
[test:/],表示對版本庫test設置權限;
[test:/svnadmin],表示對版本庫test中的svnadmin項目設置權限;
[test:/svnadmin/second],表示對版本庫test中的svnadmin項目的目錄設置權限;
權限的主體可以是用戶組,用戶或者*,用戶組在前面要以@開頭,*表示全部用戶
權限分為:r ,w, rw和null ,null空表示沒有任何權限。
auhtz配置文件中的每個參數,開頭不能有空格,對于組要以@開頭,用戶不需要。
4.修改passwd文件,命令如下:
vi passwd 密碼隨意設置(別忘了就好)
svn的配置就到此為止了,接下來可以啟動svn服務試試啦~
啟動svn,命令如下:注意不要包含項目名,比如這里的project.
svnserve -d -r /liyang/svn/
如果想監聽其它端口,則可以:
svnserve -d -r /liyang/svn/ --listen-port 88
然后查看一下svn的進程,命令 ps -ef|grep svnserve ,如圖所示:
svn啟動成功啦~~
# netstat -antup | grep svn
服務正常
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 17107/svnserve
5.設置防火墻:
iptables -A INPUT -p tcp --dport 3690 -j ACCEPT
service iptables save
service iptables restart
6.停止SVN服務:
可以這樣三種任一方式:
ps -aux|grep svnserve kill -9 ID號 或: kill -9 `ps -A |grep "svnserve"| awk '{print $1}'` 或: killall svnserve
1),使用windows的客戶端來進行連接
2)在Linux使用如下命令行:svn co svn://192.168.xxx.xxx/test
如果失敗的話,基本上可以斷定authz文件的配置有問題,可以修改下: