1》SVN服務器端文件可見問題
在平時使用SVN時候,一直以為在客戶提交文件,那么在服務器對應的版本庫下面就會有相同文件。在自己搭建后,發現提交到服務器端文件完全看不見。。。。
這是由於SVN服務器端不是簡單將上傳的文件一個個存起來,而是采用特殊格式,按照內容增量方式存放,等於說每次文件修改commit,就會生成一個標志文件,而這個文件內只是記錄了增加(刪減)位置+增加(刪減)內容;
2>安裝
yum list subversion 查看軟件列表中subversion
yum -y install subversion 安裝
whick subversion 查看安裝目錄
svnserve --version 查看是否安裝成功
3》修改根目錄
subversion安裝后默認根目錄是在/var/svn下,可以通過修改/etc/sysconfig/svnserve配置文件中OPTIONS來改變根目錄
4>建立版本庫
mkdir -p /var/svn 建立根目錄
snvadmin create /var/svn/myrepo 建立一個版本庫.
myrepo目錄下必然有以下文件
主要是修改conf下三個文件
4.1》先修改passwd文件,按照‘用戶名=密碼‘
4.2>在修改authz,這個文件比較關鍵
[groups]是組,這個組隨便定義的,跟liunx系統組無關。按照"組名 = 用戶",但用戶必須是passwd里面定義的,不能隨便填。
這里有兩個版本庫maoke和s1s,分別定義了訪問權限
[maoke:/] 表示maoke版本庫訪問權限,圖中是按照用戶定義訪問權限的。而s1s是按照組定義,按照組定義時候前面要加"@"符號
* = 表示無權限的人無法訪問
4.3>svnserve.conf配置
這里有建議,將每個版本庫中的passwd和authz文件刪除,將svnserve.conf中password-db和authz-db指向一個文件,這樣可以統一管理版本庫的登陸權限,而不需要一個一個的處理。如上截圖
realm 表示此版本庫說明,隨便寫。
5>啟動svn
systemctl start svnserve.service
檢查服務是否啟動成功。
$ ps aux | grep svn root 16349 0.0 0.1 162180 900 ? Ss 15:01 0:00 /usr/bin/svnserve --daemon --pid-file=/run/svnserve/svnserve.pid -r /opt/svn
通過netstat可以看到SVN打開了3690端口。
$ sudo netstat -tnlp Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 16349/svnserve
6>設置成開機啟動。
systemctl enable svnserve.service 如下截圖
7>SVN文件管理
第一時候,先checkout空版本庫。然后建立trunk,branches,tags進行管理