ubuntu-svn筆記

1.安裝及設定SVN

a. ubuntu上安裝svn server

安裝apache2、libapache-svn、subversion這三個套件

b. 建立 svn root目錄

$ sudo mkdir -p svn

d. 新建一個檔案庫並將存取檔授予 apache2

$cd svn

$sudo mkdir -p <ProjectName>

$sudo chmod -R g+rws <ProjectName>

(g+rws : group add read and write, +s不是很懂)

$sudo svnadmin create <ProjectName>

建立svn群組

$ sudo addgroup subversion

$ sudo adduser www-data subversion

$ sudo adduser <UserName> subversion

$ sudo chown -R www-data:subversion <ProjectName>

e. 新增使用者資訊

$ sudo htpasswd [-參數] /opt/svnroot/htpasswd username

依照指示輸入使用者密碼即可。

/opt/svnroot/htpasswd 這個可以自己改成想要的路徑與檔名

參數:

-c:表示是否要新建檔案,舊有檔案內容會完全刪除,適用於第一次建立檔案時

-m:密碼以 MD5 進行編碼

若要再加帳號,或是修改某帳號的密碼,也都是用這個指令(記得不要加 -c 參數)

f. 在apache2中設定svn

這一步就很討厭了,因為我一查就查到了三種…

1./etc/apache2/mods-available/dav_svn.conf

2./etc/apache2/sites-available/default

3./etc/apache2/sites-available/default-ssl

這裡一開始我是使用第3個…

後來改成用第一個,因為看檔名也知道是專門給SVN使用的!

設定內容倒是大同小異

<Location "/svn/">
DAV svn
SVNParentPath /home/kirk/svn/
SVNListParentPath on
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /home/kirk/svn/test/conf/htpasswd
AuthzSVNAccessFile /home/kirk/svn/test/conf/authz
Require valid-user
</Location>

如此設定會使用url = https://localhost/svn/

這裡的設定非常容易出錯,目前的設定是允許目錄瀏覽的(主要是SVNListParentPath on及Location Url)

g. apache2 error log

$ tail -f /var/log/apache2/error.log

h. error

The URI does not contain the name of a repository

i. 指令(終於到這次整理的重點:列出某版本後的修改檔案列表清單)

列出版本2和版本3有修改的檔案

$ svn log -r 2:3 -v

$ svn log --username www-data -r 2:3 -v

$ svn log | sed -n '/username/,/-----$/ p'

$ svn log -r {2011-09-06}

$ svn log -r {2006-11-20}:{2006-11-29}

FINALLY:

輸出六月一號之後到今天有更動的檔案到20110906.out

$ svn log -r {2011-06-01}:head -v | sed -n '/<username>/,/-----$/ p' > ~/20110906.out

========================================================

別人整理的完整設定程序如下

sudo apt-get install apache2 apache2.2-common apache2-utils libapache2-svn subversion

sudo addgroup subversion

sudo adduser www-data subversion

sudo adduser <UserName> subversion

sudo mkdir /var/lib/svn

cd /var/lib/svn

sudo mkdir <ProjectName>

sudo chmod -R g+rws <ProjectName>

sudo svnadmin create /var/lib/svn/<ProjectName>

sudo chown -R www-data:subversion <ProjectName>

#Http設定

sudo vi /etc/apache2/mods-available/dav_svn.conf

<Location /svn/<ProjectName>>

   DAV svn

   SVNPath /var/lib/svn/<ProjectName>

   AuthType Basic

   AuthName "<ProjectName> Subversion Repository"

   AuthUserFile /var/lib/svn/<ProjectName>/conf/passwd

   Require valid-user

</Location>

#帳號密碼設定

sudo htpasswd -cm /var/lib/svn/<ProjectName>/conf/passwd <UserName>

sudo /etc/init.d/apache2 restart

from http://phorum.study-area.org/index.php?topic=55163.0

====================================================

參考:

在 Ubuntu 中架設 SVN Server (+SSL)

UBUNTU 下安裝 SVN Server

Ubuntu - 安裝 SVN (Subversion Server)

Debian6下安裝SVN+Apache2+SSH實現HTTPS

Ubuntu server10.10下安裝配置SVN【轉】

SVN 基本指令教學

[轉載] SVN 基本指令教學

Subversion 權威指南

svn status

svn常用命令

高級主題

[問題]No apache MPM package installed

SubVersion中文站

相关推荐