[size=medium][color=green]一、window的svn倉庫安裝配置
前段時間因為一些情況,要将項目移到window上去,是以裝了一個window的svn服務.這裡講的是使用http協定的svn,window下比較省事一點,方法講二種:一是下載下傳到windows下的安裝包:Subversion,tortoiseSVN,apach,下載下傳位址:http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91,
http://www.apachelounge.com/download/,安裝方法跟linux下就差不多。但是這個方法有一點不好的就是apache的版本和subversion的版本有點問題,apache的某個版本不定支援某個版本svnsubversion,我在這塊是吃過虧的。是以第二種方法,比較懶的直接在http://www.collab.net/downloads/subversion/下載下傳一個集合subversion和apache的安裝包:CollabNetSubversion-server-1.5.1-5.win32.exe,輕按兩下就替你全部裝好了。現在的版本應該是1.5.4了,反正比較省事省力了。www.collab.net這個網站也有提供linux、solaris的內建安裝包,我試過linux的,沒裝上,還是按原始的安裝方法裝上去的。
二、linux下的svn倉庫安裝配置
1、下載下傳所需要的安裝包:httpd-2.2.9.tar.gz,subversion-1.4.3.tar.bz2,subversion-deps-1.4.3.tar.bz2
下載下傳路徑:http://subversion.tigris.org/,http://httpd.apache.org/
2、安裝Apache
# tar zxf httpd-2.2.9.tar.gz
# ./configure --prefix=/opt/apache --enable-dav --enable-so && make && make install
這裡的/opt/apache替成你自己的安裝目錄。
如果系統安裝時沒有預設安裝(Berkeley DB--svn的資料庫),需要手動安裝一下
a.解壓安裝檔案.
unzip db-4.3.21.NC.zip
b.編譯.
進入build_unix目錄
cd build_unix/
編譯.
../dist/configure --prefix=/opt/Berkeley&&make&&make install
完成
3、安裝Subversion
SVN的安裝一定要注意:svn依賴的APR版本要正确。如果Apache為2.0.x,對應的APR版本應為0.9.x;Apache為2.2.x,對應的APR版本應為1.2.x。 由于subversion-deps包裡的APR是0.9.x的,是以編譯svn時要删除從deps裡解壓出來的apr, apr-util,改而使用apache 2.2裡提供的。
指令如下:
# tar xfz subversion-1.4.3.tar.bz2
# tar xfz subversion-deps-1.4.3.tar.bz2
# ./configure --prefix=/opt/subversion --with-apxs=/opt/apache/bin/apxs
--with-apr=/home/tang/httpd-2.2.9/srclib/apr
--with-apr-util=/home/tang/httpd-2.2.9/srclib/apr-util
&& make && make install
注意這裡的三個路徑一定要替換成你自己包的路徑,下面的apr的路徑/home/tang/指到apache的源安裝檔案路徑。
注:64位,不帶apache安裝
apr包安裝
#yum search apr
#yum -y install apr-util apr-util-devel apr apr-devel
在subversion安裝之前bdb确認已安裝成功
編譯指令
#./configure --bindir=/usr/bin/ LDFLAGS="-L/usr/lib64 -L/lib64" --prefix=/opt/subversion && make && make install
安裝完成後,檢視是否存在檔案$APACHE_HOME/modules/mod_dav_svn.so(預設 /usr/local/apache2/modules/mod_dav_svn.so)。另外,如果該機器上以前是裝過舊版本的SVN,要把 "/usr/local/lib/libsvn*"檔案都删除。
4、在apache中配置svn
建立SVN庫:
cd /opt/subversion
svnadmin create /opt/svnroot
說明:預設版本為0,指令可以使用—fs-type參數指定倉庫背景的資料庫類型,預設為fsfs,可以修改為dbd,一般使用預設的fsfs即可,差别是如果應用了nfs的話會有檔案讀寫的影響,一般不會涉及到。
可以用svnserve –d –r /path/to/repos啟動服務,預設隻支援以svn協定通路,可以用來測試是否初始化成功,/opt/svnroot表示倉庫的路徑。
建立後需要改變一下svnroot下db和dav的權限。
# chmod 777 svnroot/db
# chmod 777 svnroot/dav
# chown -R apache:apache svnroot
在Apache 的配置檔案httpd.conf中加入以下代碼,重新開機apache,便可以通過http://192.168.0.1/svn(如果預設端口是80可如些通路,如果有需要可以修改apache的端口号),通過AuthzSVNAccessFile和AuthUserFile指令分别配置SVN使用者的使用者名和密碼檔案。
httpd.conf檔案添加:
<location /svn>
DAV svn
SVNParentPath /opt/svnroot
AuthzSVNAccessFile /opt/svnroot/conf/accessfile
Require valid-user
AuthType Basic
AuthName "Subversion System"
AuthUserFile /opt/svnroot/conf/passwdfile
</location>
需要注意的是SVNParentPath是對多個項目進行管理,設定單個項目管理使用SVNPath就可以了。在多個項目配置環境中通路路徑後面必須接項目名稱例:http://svnserverip:port/svn/projectname,否則将會出現錯誤。
建立檔案/opt/svnroot/conf/accessfile:
[groups]
user = admin
anonymous = guest
[/]
* = r
@user = rw
@anonymous = r
使用htpasswd指令建立/home/svn/svnroot/conf/passwdfile檔案,設定密碼
注意選項中有c時會建立新檔案,如果原來已存在同名檔案,會被覆寫:
# htpasswd -cm /home/svn/svnroot/conf/passwdfile admin
如果 passwdfile檔案已存在,運作下面的指令追加使用者
htpasswd –m svn-auth-file username2為username2
系統會提示輸入兩遍密碼,設定成功後重裝apache新帳号生效。
5、導入初始項目目錄結構
# svn import -m "項目說明" /opt/project1
項目導入到svn倉庫以後,項目将由svn倉庫接管,可以将/opt/project1檔案備份後删除,然後從svn倉庫中将project1 checout出來,例:
# svn checkout http://svnserverip:port/svn/project1
一般svn倉庫中項目的布局如下:
project1/
trunk/
tags/
branches/
project2/
trunk/
tags/
branches/
每個項目一個目錄,下面的trunk目錄為項目主幹版本,tags為打了标簽的某個版本,一般隻讀,branches為分支版本,svn對tags的處理是和branches完全一樣的,都是主幹版本的某個特定版本的一個拷貝。
參參考資料
http://www.iusesvn.com/subversion/svnbook/1.1/index.html
http://doc.owind.org/TortoiseSVNBook/index.html
http://www.diybl.com/course/3_program/rg/2007104/76274.html
http://www.subversion.org.cn/bbs/viewthread.php?tid=1706&extra=page%3D1[/color][/size]