標籤:
分類: Linux
Linux SVN安裝還是比較常用的,於是我研究了一下Linux SVN安裝,在這裡拿出來和大家分享一下,希望對大家有用。
1. Linux SVN安裝所需module:#yum install mod_dav_SVN安裝完畢之後發現,在/etc/httpd/conf.d下多出了subversion.conf,以及/etc/httpd /modules下多出了 mod_dav_svn.so和mod_authz_svn.so兩個檔案,這正是subversion.conf中所需要的。
2. 修改subversion.conf,取消一下幾行的注釋,使之成為:
- <Location /repos>
- DAV svn
- SVNParentPath /var/www/svn/
- #
- # # Limit write permission to list of valid users.
- # <LimitExcept GET PROPFIND OPTIONS REPORT>
- # # Require SSL connection for password protection.
- # # SSLRequireSSL
- #
- # AuthzSVNAccessFile /etc/httpd/authz.conf
- # AuthType Basic
- # AuthName "Please enter your name and password"
- # AuthUserFile /etc/httpd/conf.d/authfile
- # Require valid-user
- # </LimitExcept>
- </Location>
其中,Linux SVN安裝ParentPath是所有Repository的上層目錄,此處並沒有對訪問Linux SVN安裝的Repository進行限制,就像google code一樣,無須使用者名稱密碼即可查看,甚至checkout原始碼。
3. 在/var/www/下建立一個svn/的檔案夾,並在此目錄下建立subversion版本庫:
$ svnadmin create your_repo_name
4. 進入該repository,修改設定檔,位於your_repo_name/conf下,首先修改svnserve.conf,找到並去掉以下幾行的注釋:
- anon-access = read #匿名訪問的許可權,可以是read,write,none,預設為read
- auth-access = write #認證使用者的許可權,可以是read,write,none,預設為write
- password-db = passwd #密碼資料庫的路徑
- authzauthz-db = authz #使用者操作許可權
5. 修改passwd檔案,其格式為:
- [users]
- user1 = password1
- user2 = password2
6. 修改authz檔案,格式為:針對每一個repo_name下的目錄,指定每一個使用者應該具有怎樣的許可權(注意每行前面不能有空格):
- [repo_name:/directory1]
- user1 = rw #user1具有read和write許可權
- [repo_name:/directory2]
- user2 = r #user2隻具有read許可權
7. 在windows下用TortoiseSVN匯入項目:
將項目初始檔案,建立成包含以下三個檔案夾的形式,其中項目根目錄放入trunk下:
- svn_temptrunk #包含項目整體的,穩定的代碼
- svn_tempbranch #包含項目的一個分支,如一個子功能
- svn_temptag #標誌項目的一個milestone,如一個release
- 然後使用TortoiseSVN的import功能,這時可能會出現Permission denied的問題,這是因為上傳檔案的目錄的owner是root,需要修改目錄的owner:
- Can‘t open file ‘/var/www/svn/repo_name/db/txn-current-lock‘: Permission denied
- $ cd /var/www/svn
- $ chown -R apache.apache repo_name
- # chcon -R -t -t http_sys_content_rw_t repo_name #這一步不需要,因為已經關閉了selinux
這樣可能存在問題,就是任意使用者如果知道了Linux SVN安裝下載的地址,都可以import任意檔案到repository中。這可能需要引入存取控制(to be continued)。[@[email protected]]
Linux SVN安裝所需建立的檔案夾(轉)