更新!鑒於很多朋友需要該綠色版的打包,我已將其上傳到納米盤共用給大家了,你可以點擊以下連結去下載
[納米盤]綠色版VisualSVN Server.7z
7z格式的壓縮檔使用winrar就可以直接解壓了。
SVN就不多說了,非常好用的版本控制!安裝也非常簡單。我的開發環境是WINDOWS,方案是VisualSVN
Server和TortoiseSVN,這個安裝起來簡直超方便!不過有一點非常嚴重的問題就是官方的VisualSVN Server的安裝包裡面內建apache伺服器,安裝的時候不能與本機原有apache(或IIS)連接埠衝突,這樣我的最初的情況就變成機器裡有兩個apache,4個httpd.exe進程,一下增加了幾十M的記憶體開銷,要知道偶的機子本來就很慢,我的想法就是把他們整合到一起,因為visualSVN
server的MMC管理主控台太親切了,離不開了,雖然SVN已經有更為強大的命令列操作!減少httpd.exe進程為兩個,連接埠只監聽8080就好了。
看網上的做法是先安裝visualsvn,再將apache重新設定,我覺得這個內建的精簡版的apache是絕對不全的,所以我將SVN裝到我原有的APM環境中,再安裝visualSVN SERVER來管理它!目的很單純,減少記憶體開銷和連接埠佔用。
SVN的安裝不多說了,官方就有很詳細的安裝教程!這裡我用的是最新的 svn-win32-1.4.6.zip
後面就是綠化visualSVN SERVER
將visualSVN SERVER官方的安裝包裡頭的檔案全部提取,經過分析,我們得到下面的甚為寶貴的註冊表檔案和後面bin目錄中的檔案(注意我已經將部分檔案更新為svn 1.4.6版)!
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\VisualSVN]
[HKEY_CURRENT_USER\Software\VisualSVN\VisualSVN Server]
“MenuShortcut”=”1″
“Adm_Tools_MenuShortcut”=”1″
[HKEY_LOCAL_MACHINE\SOFTWARE\VisualSVN]
[HKEY_LOCAL_MACHINE\SOFTWARE\VisualSVN\VisualSVN Server]
“RepositoriesRoot”=”F:\\Repositories\\”
“ServerName”=”localhost”
“ServerPort”=”8080″
“SSLServerPort”=”8443″
“UseSSL”=”0″
“InstallDir”=”D:\\myserver\\VisualSVN Server\\”
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MMC\SnapIns\{08B017E8-47AD-4D1B-A928-94FFD77E9950}]
About={2FC11162-83EE-47ED-87DA-490D7402230C}
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MMC\SnapIns\{08B017E8-47AD-4D1B-A928-94FFD77E9950}]
NameString=VisualSVN Server Manager
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MMC\SnapIns\{08B017E8-47AD-4D1B-A928-94FFD77E9950}\Extension]
@=Namespace
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MMC\NodeTypes\{476E6449-AAFF-11D0-B944-00C04FD8D5B0}\Extensions\Namespace]
{08B017E8-47AD-4D1B-A928-94FFD77E9950}=VisualSVN Server
裡面的設定都是一目瞭然的,重點就是HKEY_LOCAL_MACHINE\SOFTWARE\VisualSVN\VisualSVN Server鍵下面,其他的都不需要修改!,然後註冊dll檔案 regsvr32 /s Manager.dll,bin的目錄沒有了,檔案的部署變成這樣的:
D:\myserver\VisualSVN Server 的目錄
2007-12-23 00:25 <DIR> .
2007-12-23 00:25 <DIR> ..
2007-12-20 16:29 131,149 libapr-1.dll
2007-12-20 16:29 36,952 libapriconv-1.dll
2007-12-20 16:29 172,118 libaprutil-1.dll
2007-12-20 16:29 1,073,152 libeay32.dll
2007-11-30 00:26 274,432 libhttpd.dll
2006-12-02 06:03 1,869 Microsoft.VC80.CRT.manifest
2006-12-02 14:22 479,232 msvcm80.dll
2006-12-02 06:03 548,864 msvcp80.dll
2006-12-02 06:03 626,688 msvcr80.dll
2007-12-20 16:29 204,800 ssleay32.dll
2007-10-09 22:48 28,871 VisualSVN Server.msc
2007-11-30 00:19 60,416 zlib1.dll
2007-12-23 00:45 2,064 visualSVN.reg
2007-12-23 00:38 578 setup.bat
2007-12-20 16:29 69,716 intl3_svn.dll
2007-12-20 16:29 802,816 libdb44.dll
2007-12-20 16:29 1,019,980 svn.exe
2007-12-20 16:29 528,470 svnadmin.exe
2007-12-20 16:29 499,808 svndumpfilter.exe
2007-12-20 16:29 520,276 svnlook.exe
2007-12-20 16:29 561,238 svnserve.exe
2007-12-20 16:29 712,788 svnsync.exe
2007-12-20 16:29 368,730 svnversion.exe
2007-12-23 00:33 23 uninstall.bat
2007-12-23 01:07 311 vsvnvars.bat
2007-11-30 01:06 491,520 Manager.dll
26 個檔案 9,216,861 位元組
2 個目錄 9,841,033,216 可用位元組
路徑和上面的註冊表檔案是對應的,經過這些操作以後,就可以順利的使用visualSVN SERVER了,不過這個控制台裡面的apache伺服器控制功能表不能正常使用了,解決的方法是將apache註冊為服務的時候名稱取為VisualSVNServer就可以了,語句範例:
D:\myserver\Apache2\bin\httpd.exe -k install -n VisualSVNServer
這樣再重新開啟visualSVN SERVER的控制台,就可以控制apache的開始、停止以及重啟了。
順便提及:當使用TortoiseSVN串連伺服器長時間假死,並且apache的錯誤記錄檔裡有類似:
[Sat Dec 22 15:49:30 2007] [error] [client 127.0.0.1] XML parser error (at end). status=20014
這樣的錯誤記錄,問題是出在卡巴斯基 6.0,將TortoiseSVN的bin目錄下的TortoiseProc.exe檔案添加到卡巴的信任程式裡邊,即可解決,偶就碰到這個很鬱悶的問題,搞了半天才搞定。
最後附上我的apache2.2.6的httpd.conf檔案(其實就是svn安裝到apache中的方案,已超出本文的討論範圍,呵呵~):
ThreadsPerChild 250
MaxRequestsPerChild 0
ServerRoot “D:/myserver/Apache2″
Listen 8080
LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule asis_module modules/mod_asis.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule cgi_module modules/mod_cgi.so
################為SVN而開啟以下四項#
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
####################################
LoadModule dir_module modules/mod_dir.so
LoadModule env_module modules/mod_env.so
LoadModule imagemap_module modules/mod_imagemap.so
LoadModule include_module modules/mod_include.so
LoadModule isapi_module modules/mod_isapi.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule mime_module modules/mod_mime.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule userdir_module modules/mod_userdir.so
#########載入PHP
LoadModule php5_module ../php5/php5apache2_2.dll
LoadFile ../php5/php5ts.dll
LoadFile ../php5/libmysql.dll
ServerAdmin godson@google.com
ServerName :8080
DocumentRoot “D:/myserver/wwwroot”
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Satisfy all
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
DirectoryIndex index.htm index.php index.html
Order allow,deny
Deny from all
LogLevel warn
AllowOverride None
Options None
Order allow,deny
Allow from all
DefaultType text/plain
TypesConfig conf/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/x-httpd-php .php
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl .crl
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
###為SVN而添加#############
DAV svn
SVNListParentPath on
SVNParentPath F:\Repositories
SVNIndexXSLT “/svnindex.xsl”
AuthType Basic
AuthName “Subversion repositories”
AuthUserFile F:\Repositories\htpasswd
#AuthzSVNAccessFile svnaccessfile
Require valid-user