首先,列出一些我認為重要的參考網站
1,主要介紹如何安裝SVN以及一些ABCKnowledge
http://wiki.ubuntu.org.cn/SubVersion
2,一些操作實例
http://hi.baidu.com/kang_liang/blog/item/7d97ac604a6729d88cb10d1a.html/cmtid/6abe672b7a4cb9f7e7cd4064
http://www.net527.cn/a/caozuoxitong/Linux/7473.html
下面是我的一些備忘
1,給系統添加一個用戶,這個用戶和svn的登錄用戶不一樣的,這個原理和samba的原理是一樣的。
sudo adduser todd
輸入密碼,確認密碼
如果想提升root權限的話,sudo usermod -G admin -a 用戶名
2,安裝svn和apache2是必須的,參考上面的網站
3,創建文件倉庫的根目錄,我強烈建議是svn,這樣以后你可以直接在svn下劃分子目錄,比如
游戲的工作目錄和網站的工作可以平行的獨立開,如果一開始指向的就是svn/workspace,以后再
想改到svn下面就比較惱火了,總會遇到這樣或那樣的錯誤,我現在就是把web也劃到workspace下面
去了,雖然勉強,但也沒有辦法了。
4,創建svn的用戶,htpasswd -m /etc/subversion/passwd USER,如果是第一次創建用的是
htpasswd -c /etc/subversion/passwd USER,這樣就會把用戶名和密碼生成到passwd文件中去了,到時候
也可以很方便的對已經創建好的用戶進行分組管理權限了。
5,在/etc/subversion/的目錄下面創建權限管理文件 authz,我一開始的時候權限管理文件是指向我工作目錄
下面的一個authz,發現根本不好使,還是這樣做比較科學。配置這個文件的格式如下:
[groups]
admin=allen
webguy=todd
[workspace:/]
*= r
[workspace:/Crash]
*= #開始初始化所有人都無操作權限
@admin=rw
@webguy=rw
6,apache的配置文件
<Location /svn/workspace> #注意這兒的目錄,科學的講應該是/svn的根目錄
# Uncomment this to enable the repository
DAV svn
# Set this to the path to your repository
SVNPath /home/svn/workspace #要和上面保持一致
AuthType Basic
AuthName "workspace Subversion Repository"
AuthUserFile /etc/subversion/passwd #這就是添加的svn用戶名和密碼,加密的
# To enable authorization via mod_authz_svn
AuthzSVNAccessFile /etc/subversion/authz #這兒就是權限配置文件
# The following three lines allow anonymous read, but make
# committers authenticate themselves. It requires the 'authz_user'
# module (enable it with 'a2enmod').
#<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
#</LimitExcept>
</Location>
最后,就是經常在管理版本的時候遇到清理和鎖定的問題,我查了很多資料,都沒有找到好的方法,首先應該盡量避免提交二進制文件,都提交文本文件,一旦遇到鎖定的問題后,就是把本地文件全部刪除,重新從服務器上獲取,雖然很土,但很實用,切忌要保證服務器的版本是最新的!!!
Most Important 常見錯誤:
Error1: Can’t open ‘/home/svn/db/txn-current-lock’: Permission denied
這種錯誤比較常見,而且一開始我一直以為是自己沒有配置好認證權限的問題,我反復的配置10,11兩步,結果還是沒解決,我在windows下用tortoiseSVN客戶端一直無法commit和添加文件,老是彈出這個錯誤。可我在linux下可以用
#svn import …. 這個命令,我一直很納悶,后來經過琢磨和上網搜索,終于解決。問題在于我的/home/svn目錄下的一切子目錄和文件都是屬于root用戶的,而我每次在linux下也是以root 用戶import的,所以一直沒有問題。可在windows從客戶端訪問就有問題了。
解決辦法: 把/home/svn目錄下的所有文件和子目錄添加讀寫權限
#chmod –R o+rw /home/svn
Okay, 問題解決。