svn的介紹、下載、安裝就不再闡述,詳情可以參考http://subversion.tigris.org/
1.首先講一下svn的命令
主要有三個命令需要知道,一個是svnadmin,它主要是負責建立repository(就是你需要控制版本的項目的根文件夾),在它下面可以建立各個文件夾存儲相關文件,像/doc 、/source等,如果你有多個項目需要管理,建議你建立一個總的目錄,這樣便於管理
svnadmin create /srv/svn/repos
然後,可以通過svn命令添加各個不同的項目(下面會說到)
還有一個命令是svn,它負責跟你的版本庫打交道,包括check in和check out文件,創建文件夾等。
svn command [options] svn://host/repository
創建一個文件夾
svn mkdir -m "document for project" svn://host/project/doc
這樣,便在你的project下創建了doc文件夾,你可以向它裏面上傳文件了
還有一個命令svnserve,負責啓動svn,一般用法
svnserve -d -r /srv/svn/repos
注意:後面的路徑必須是一個svnadmin創建的倉庫路徑,否則會報錯:Not a repository
2.配置
如果你想通過http能夠訪問到你的repository,你需要將svn和你的apache集成,這個做起來很簡單
首先向apache添加相關模塊
a2enmod dav
a2enmod dav_svn
然後在apache配置文件/etc/apache2/conf.d/subversion.conf中添加
<IfModule mod_alias.c>
Alias /repos "/srv/svn/html"
</IfModule>
<Directory /srv/svn/html>
Options +Indexes +Multiviews -FollowSymLinks
IndexOptions FancyIndexing \
ScanHTMLTitles \
NameWidth=* \
DescriptionWidth=* \
SuppressLastModified \
SuppressSize
order allow,deny
allow from all
</Directory>
# project repository files for project2
<Location /repos/project2>
DAV svn
SVNPath /srv/svn/repos/project2
# Limit write permission to list of valid users.
<LimitExcept GET PROPFIND OPTIONS REPORT>
# Require SSL connection for password protection.
# SSLRequireSSL
AuthType Basic
AuthName "Authorization for project2 required"
AuthUserFile /srv/svn/user_access/project2_passwdfile
Require valid-user
</LimitExcept>
</Location>
需要注意一下路徑,SVNPath /srv/svn/repos/project2 改成自己的,還有AuthUserFile /srv/svn/user_access/project2_passwdfile密碼文件。這樣就完成了svn和apache的集成。
接下來配置訪問方式
按照下面的假設配置,讀權限可以設置爲所有人可讀,寫權限需要驗證。
修改/srv/svn/repos該倉庫下的conf下的svnserve.conf文件,
修改爲:
anon=read
auth=write
password-db=passwd
**注意每一行的前面都不能留空格,否則在執行svn命令的時候會出問題:svn:svn://host/ svnserve.conf
Option expeted
接下來修改passwd文件,username=password的形式
3.啓動服務
使用命令svnserve啓動服務
svnserve -d -r /srv/svn/repos
注意:後面的路徑必須是一個svnadmin創建的倉庫路徑,否則會報錯:Not a repository
4.客戶端訪問
svn list svn://host/
返回爲空,因爲你還沒有上傳任何東西啊
svn mkdir -m "document" svn://host/doc
這樣便創建了doc文件夾,這個過程可能需要輸入密碼