Apache模塊方式運行SVN版本控制詳解
本節(jié)向大家介紹一下兩種SVN版本控制的運行模式中的一種,即以Apache的模塊方式運行,希望通過本節(jié)的學習,大家能夠掌握SVN版本控制在Apache模塊下運行方法。下面是具體步驟介紹。
0.首先要了解的是SVN設計的時候只考慮了兼容Apache2.x,所以在Apache1.x下是不能正常工作的。
1.安裝Apache2
如果事先啟動了IIS之類的其他webserver,請先停止那些服務(端口被占用會導致Apache安裝失敗)。
其他問題可以參考Apache的安裝手冊。
這里假設安裝目錄為:%APACHE_HOME%
2.檢查Apache2的安裝是否成功
打開瀏覽器,訪問:http://localhost/
如果出現(xiàn)的是默認的歡迎頁面,那就沒有問題了。否則請仔細檢查,重新安裝。
3.打開Apache的配置文件:“%APACHE_HOME%"conf"httpd.conf”
查找”LoadModule”這個關鍵字,找到導入模塊的區(qū)塊(section)
反注釋掉下面這樣,從而加載Subversion所需要的DAV模塊:1.#LoadModuledav_modulemodules/mod_dav.so。完成之后看起來應該是這樣:1.LoadModuledav_modulemodules/mod_dav.so
另外在這行下面再添加兩行(請注意把路徑中的”"”替換成”/”):
1.LoadModuledav_svn_module%SVN_HOME%/bin/mod_dav_svn.so
2.LoadModuleauthz_svn_module%SVN_HOME%/bin/mod_authz_svn.so
以Apache的模塊方式運行SVN版本控制時特別需要注意的是:由于模塊依賴關系,這三行的出現(xiàn)順序千萬不能顛倒。
4.再來配置一下”httpd.conf”的其他部分,告訴Apache2SVN的數(shù)據(jù)倉庫所在。(為避免不必要的麻煩,所有路徑中的”"”都請?zhí)鎿Q成”/”)
注意:
·按照下述配置,所有數(shù)據(jù)倉庫將共享密碼文件及權限文件,如果需要為每個數(shù)據(jù)倉庫創(chuàng)建獨立的設置,請查閱SVN的文檔(”AuthorizationOption”章節(jié))
15.保存”httpd.conf”并退出,這里Apache2的配置告一段落。
16.”%SVN_REPO_PARENT%/AccessFile”文件的內(nèi)容
1.[/]
2.*=r
3.user1=rw
4.user2=r
5.admin=rw
6.
7.[%PROJECT_NAME%:/src/test]
8.user2=rw
其中:
·[/]指代所有數(shù)據(jù)倉庫的根目錄,匿名用戶默認的權限為只讀。
·對于”user1″和”admin”,他們對所有數(shù)據(jù)倉庫都有讀寫權限。
·對于”user2″,它對所有數(shù)據(jù)倉庫僅有只讀權限。但是下方又額外指定了他對”%PROJECT_NAME%:/src/test”目錄具有讀寫權限。
·綜上,他對’test’目錄及其子目錄(自動繼承,除非特別指定)具有讀寫權限,其他則均為只讀權限。
你可以根據(jù)需要來設定不同的權限,更詳細的說明還需要參考SVN文檔中的權限設置章節(jié)。#p#
17.”%SVN_REPO_PARENT%/passwd”文件的內(nèi)容。這個文件是通過”%APACHE_HOME%"bin"htpasswd.exe”自動生成的
18.把SVN自帶的XSLT文件拷貝到網(wǎng)站根目錄,
然后設置合理權限(windows平臺則不必考慮)
19.重啟Apache2服務:
1.cmd
2.netstopApache2
3.netstartApache2
20.打開瀏覽器,訪問:http://%SERVER_NAME_OR_IP%/svn/
如果返回的頁面是”403Forbidden”,可能是由于Apache2默認沒有打開目錄的瀏覽權限(OptionIndexes,參閱Apache2文檔),但這并不影響使用。現(xiàn)在已經(jīng)可以用客戶端導入項目并開始使用了。具體步驟,請參閱第20步。
***********************************************
*注意:以下步驟/命令需要在裝有SVN客戶端的機器上執(zhí)行*
*Windows下安裝服務器端的時候已經(jīng)同時安裝了客戶端*
*Linux下尚待查證。*
***********************************************
21.以Apache的模塊方式運行SVN版本控制時和CVS一樣,SVN在最初的時候需要將已有項目導入到數(shù)據(jù)庫中。
從命令行執(zhí)行以下命令(Stand-alone):
1.svnimportc:"temp"myprojectsvn://%SERVER_NAME_OR_IP%/%PROJECT_NAME%-m"initialimport"--usernameyour_username--passwordyour_password或者(Apache2module):
1.svnimportc:"temp"myprojecthttp://%SERVER_NAME_OR_IP%/svn/%PROJECT_NAME%-m"initialimport"--usernameyour_username--passwordyour_password
其中:
A)c:"temp"myproject里面包含了你所要導入的項目文件的內(nèi)容
B)%SERVER_NAME_OR_IP%是SVNServer的名字或者IP地址,上面存有第5步中創(chuàng)建的數(shù)據(jù)倉庫
C)%PROJECT_NAME%是要導入到的數(shù)據(jù)倉庫名稱,這里選擇跟項目名一致
D)參數(shù)m表明此次導入操作的注釋,SVN的注釋是按每次提交來定義的,導入也是提交的一種。
E)your_username和your_password是第7和17步創(chuàng)建的用戶及密碼,注意該用戶必須對上面的%PROJECT_NAME%數(shù)據(jù)倉庫有寫權限才能成功。
22.然后,需要從Server端再次checkout到本地:
(這點感覺不是太方便,為啥不做成import的時候有個選項,本地目錄可以自動生成版本信息呢?)
1.cmd
2.cd/Danywhere_you_want_to_put_your_versioned_project_files
3.svncosvn://myserver/myproject/trunk.--usernameyour_username--passwordyour_password
注意:
“co”是”checkout”的一個別名
那個點[.]代表當前目錄,checkout出來的文件會自動放到這個目錄下。也可以改為某個絕對路徑。
23.對于向SVNSerer增加,移動,刪除,或者修改后提交某些文件,參考使用以下命令:
1.Add:svnaddsrc/myfile.java-m"addingafile"
2.Move:svnmovesrc/myfile.javasrc/mynewfile.java-m"movedmyfile.javatomynewfile.java"
3.Delete:svndeletesrc/myfile.java-m"removingafile"
4.Commit:svncommitsrc/myfile.java-m"themessage"
對于上面的客戶端操作,如果安裝了TortoiseSVN,一切就變得簡單多了。不過這個就要抓圖來說明了。等有空的時候再放上來。
※總結※
使用Eclipse的朋友還可以參考這里:http://subclipse.tigris.org/它以插件的形式向Eclipse提供了SVN的支持。另外,具體的設置,參數(shù)說明等還是需要自己去查閱SVN的文檔(在安裝server端的時候已經(jīng)附帶)本節(jié)關于以Apache的模塊方式運行SVN版本控制介紹完畢。
【編輯推薦】