1.SVN安裝
Ubuntu系統下安裝:sudo apt-get install subversion
源碼安裝:1.下載:archive.apache.org/dist/subversion
2.解壓:tar xvf subversion-0.19.1.tar.gz
3.移動:sudo mv subversion-0.19.1 /usr/svn
4.進入:/usr/svn,配置:./configure --prefix=/usr/svn
5.編譯:make
6.安裝:make install
7.設置環境變量:vi /etc/profile 加入:export PATH=/usr/svn/bin:$PATH
8.測試:svn -h
可能依賴的安裝包:
gcc(gcc/c++.x86_64)
apr(apr-devel.x86_64)
apr-util(apr-util-devel.x86_64)
sqlite(sqlite-devel.x86_64)
zlib(zlib-devel.x86_64)
編譯,出現錯誤
make[2]: Entering directory `/usr/svn/apr/network_io/unix'
make[3]: Entering directory `/usr/svn/apr/network_io/unix'
/bin/bash /usr/svn/apr/libtool --silent --mode=compile gcc -g -O2 -pthread -DHAVE_CONFIG_H -D_REENTRANT -D_GNU_SOURCE -I../../include -I../../include/arch/unix -I../../include/arch/unix -c sockopt.c && touch sockopt.lo
sockopt.c: In function 'apr_socket_opt_set':
sockopt.c:242:27: error: 'SCTP_NODELAY' undeclared (first use in this function)
optname = SCTP_NODELAY;
^
sockopt.c:242:27: note: each undeclared identifier is reported only once for each function it appears in
make[3]: *** [sockopt.lo] Error 1
make[3]: Leaving directory `/usr/svn/apr/network_io/unix'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/usr/svn/apr/network_io/unix'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/svn/apr'
make: *** [external-all] Error 1
2.SVN倉庫的創建與配置
1.建立版本庫目錄:mkdir -p /usr/svn/svndata
2.建立版本庫:svnadmin create /usr/svndata/repo1
執行該命令后自動在repos目錄下添加必須的配置文件
conf db format hooks locks README.txt
conf中的四個配置文件:authz hooks-env.tmpl passwd svnserve.conf
svnserve.conf #svn版本庫配置文件
passwd #svn用戶配置
authz #權限配置
hooks-env.tmpl #環境變量配置實例
修改版本庫配置文件:
vi svnserve.conf配置如下:
[general]
anon-access = none #使非授權用戶無法訪問
auth-access = write #使授權用戶有寫權限
password-db = passwd #指明密碼文件路徑
authz-db = authz #訪問控制文件
配置用戶: vi passwd 配置說明如下:
[users]
user1 = 123 #用戶名 = 密碼
user2 = 123 #用戶名 = 密碼
配置權限:vi authz 常用配置說明如下:
[group]
group1 = user1,user2 #組中用戶與passwd中對應
[repo1:/]
user1 = rw #單用戶
@group1 = rw #@表示組
*=r #表示所有用戶
倉庫下目錄配置
[repo1:/folder1] #倉庫下的folder1目錄,權限配置與上面相同
啟動服務:svnserve -d -r /usr/svn/svndata (注:服務啟動的路徑為倉庫路徑或者倉庫上級路徑都可以)
訪問版本庫:svn://ip/repo1
對版本庫進行檢出操作(下載):svn checkout svn://ip/repo1 --username=user01
查看文件狀態:svn status
添加文件:svn add file
提交:commit -m “注釋”
3.多項目多倉庫管理
創建公共配置文件,可以移動上例中的passwd,authz到svndata中
修改倉庫配置文件svnserve.conf將用戶與權限配置指向公共配置
配置權限加入多倉庫配置