visualSVN server綠化策略 擺脫兩個apache的尷尬

SVN就不多說了,非常好用的版本控制!安裝也非常簡單。我的開發環境是WINDOWS,方案是VisualSVN ServerTortoiseSVN,這個安裝起來簡直超方便!不過有一點非常嚴重的問題就是官方的VisualSVNServer的安裝包裏面自帶apache服務器,安裝的時候不能與本機原有apache(或IIS)端口衝突,這樣我的最初的情況就變成機器裏有兩個apache,4個httpd.exe進程,一下增加了幾十M的內存開銷,要知道偶的機子本來就很慢,我的想法就是把他們集成到一起,因爲visualSVNserver的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版)!

QUOTE:

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的目錄沒有了,文件的部署變成這樣的:

QUOTE:

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文件添加到卡巴的信任程序裏邊,即可解決,偶就碰到這個很鬱悶的問題,搞了半天才搞定。
發佈了27 篇原創文章 · 獲贊 20 · 訪問量 35萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章