在Visual Studio中使用SVN進行原始程式碼控制

來源:互聯網
上載者:User

    對於稍微大一點的項目我想都有必要用到原始程式碼控制工具,今天我們就逐步說一下SVN的使用。

SubVersion+TortoiesSVN的配置

1.安裝SubVersion 。(下載地址:http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=8100&expandFolder=8100&folderID=91),例如我安裝到D:/SVN/SubVersion

2.安裝TortoiseSVN。(下載地址:http://tortoisesvn.net/downloads),這是一個SubVersion的映像化管理工具,沒有它也可以,但是管理SubVersion需要使用命令列的形式,安裝過TortoiseSVN可以在右鍵菜單出現相應的選項。例如我安裝到了D:/SVN/TortoiseSVN

3.建立版本庫(repository)。這點和VSS一樣,我們需要一個庫來存放版本資訊。建立方式有兩種通過SubVersion的命令列或者通過TortoiseSVN的圖形介面來建立。我們就直接通過TortoiseSVN建立,例如我想在D盤建立一個檔案夾SVNServices用來放版本庫,然後在其中建立一個EMIData的檔案夾作為我的項目EMI的版本庫,這是我對EMIData點擊右鍵--TortoiseSVN—Create Repository here 即可將EMIData最為一個版本庫,這是你會發現EMIData檔案夾中多了很多的檔案。

4.啟動SVN服務。到這裡我們的SubVersion其實還沒有啟動,我們在cmd命令列輸入:svnserve –-daemon –-root D:/SVNServices 這樣我們就可以啟動SVN並且以D:/SVNServices作為根目錄。這裡我要指明幾點,第一就是輸入的命令中兩處都是兩個‘-’,也就是‘--’而不是‘-’;第二點就是啟動後cmd視窗使不能關閉的,這點類似於tomcat的命令視窗,但是和tomcat一樣我們後面會講到有更好的辦法不需要一直開著這個視窗。

到了這裡我麼來檢測一下剛才建立的版本庫是否正確,右擊開啟TortoiseSVN--Repo-browser在url處輸入svn://Localhost/EMIData 如果你看到了EMIData這個空的庫就說明你已經成功建立了版本庫。

5.分配使用者權限。我們的SVN伺服器不是誰都可以訪問的,肯定需要配置許可權。用文字編輯器開啟D:/SVNService/EMIData/conf/svnserve.conf 我們將# password-db = passwd   改為: password-db =passwd 也就是說我們使用密碼驗證,這裡說明一點就是#後面的空格也要刪除。接著我們修改同目錄下的passwd檔案,增加一個jianxin160帳號,在[users]這個節下面添加jianxin160=123456即可,即使用者名稱,密碼都是123456。

6.將項目匯入到版本庫。例如我的項目EMI在F:/EMI這個檔案夾,我通過右鍵TortoiseSVN—Import…在彈出對話方塊的url處輸入“svn://Localhost/EMIData/EMI”,點擊OK後輸入上面我們的使用者名稱和密碼(jianxin160和123456)。

Apache架設SVN服務

    通過上面的操作其實我們已經可以管理項目了,你已經發現我們通過輸入svn://Localhost/EMIData/EMI其實就可以在TortoiseSVN的Repo-Browser中查看專案檔,事實上SVN本省內建的伺服器就可以進行版本管理。但是如果我們在Visual Studio中通過輸入svn://…來匯入和管理我們的項目未免有些不足,而且平時查看還要靠TortoiseSVN的Repo-Browser,況且還要一直開著cmd視窗多麻煩。有沒有更好的辦法,是有的,那就是我們通過Apache伺服器來做。

7.安裝Apache。(到這裡下載:http://httpd.apache.org/download.cgi)例如我的安裝到了D:/SVN/Apache下,安裝過程比較簡單我就不再說了。

8.關聯Apache和SVN。Apache是不知道SVN的,肯定也是不能管理它的。將SubVersion安裝目錄中bin目錄下的intl3_svn.dll,libdb44.dll,mod_authz_svn.so,mod_dav_svn.so複製到Apache安裝目錄Modules中;在Apache的conf檔案夾中找到httpd.conf檔案,將#LoadModule dav_module modules/mod_dav.so前面的”#”號去掉,然後在後面添加:LoadModule dav_svn_module modules/mod_dav_svn.so 注意它一定要放在緊跟其後的一行的後面。但是此時Apache還不知道如何處理,我們在httpd.conf最後面添加

DAV svn

SVNPath D:/SVNServices/EMIData

這是我們就可以通過在瀏覽器中輸入:http://127.0.0.1/repository/EMI 來瀏覽我們的項目了。可以看出通過使用apache我們將路徑做了相應的映射。

9.配置Apache認證方式。我們到上一步為止誰都可以輸入http://127.0.0.1/repository/EMI來訪問我們的項目,當然不行了。我們這裡通過apache的基本http認證來對項目進行保護。在apache的bin目錄有一個htpasswd工具,通過它我們來建立使用者資訊。例如:通過命令列 htpasswd -c D:/SVNServices/EMIData/MyApacheUser/passwd.conf  jianxin160 然後提示輸入密碼,我輸入123456 再次輸入,就會在D:/SVNServices/EMIData/MyApacheUser(之前建立好MyApacheUser這個目錄)建立一個檔案passwd.conf 裡麵包含用MD5加密的密碼。通過 htpasswd -m D:/SVNServices/EMIData/MyApacheUser/passwd.conf  miaoer1987再建立一個使用者。關於htpasswd操作我就不再細說。然後修改apache的httpd.conf,在Location標籤(上面我們添加的)中加入以下內容:

AuthType Basic
AuthName "svn repos"
AuthUserFile D:/SVNServices/EMIData/MyApacheUser/passwd.conf
Require valid-user

這是再輸入http://127.0.0.1/repository/EMI就需要使用者名稱密碼了。

10.安裝AnkhSVN。(下載地址:http://ankhsvn.open.collab.net/downloads)這是一個Visual Studio的外掛程式,有了它SVN和Visual Studio結合就更天衣無縫了。安裝之後我麼發現在VS中File-Open就多了一個選項“SubVersion Project”,我們在這裡輸入http://127.0.0.1/repository/EMI就可以看到我們的解決方案檔案(我第一輸入後只有http://127.0.0.1/repository,關閉VS又開啟才看到http://127.0.0.1/repository/EMI)EMI.sln開啟就可以將整個工程下載到本地,這時注意要在Location中輸入你要將副本儲存在哪個位置。好了到此位置整個SVN的配置結束了。

補充一點東西

SVN配置注意

1.按照上面做過後,其他人還是不能用,原因很簡單,127.0.0.1這樣的IP找不到你的SVN伺服器。解決方案:如果你是在區域網路就換成你在區域網路的IP,如果是靜態IP(很少吧)只需要換成你的靜態IP,如果你是在廣域網路又沒有靜態IP那麼可以通過網域名稱(這種情況需要有個虛擬機器主機),如果你沒有虛擬機器主機又沒有靜態IP又需要在廣域網路使用可以利用動態網域名稱綁定工具來實現。

2.區域網路中使用一定要關閉SVN所在機器的防火牆。(在客戶機串連SVN伺服器時最好先ping一下然後在瀏覽器中輸入對應地址試試,如果發現ping不通對方主機很可能是防火牆問題,注意包括各種防火牆)

SVN的使用

1.使用SVN,在VS中添加項目後,以後不需要每次都從File--Open—SubVersion Project來開啟,而只需要直接開啟副本中對應的解決方案檔案。

2.對一個檔案編輯時SVN會自動加鎖,編輯之後記得Commit。

3.關閉VS時如果有沒有Commit的檔案,下次開啟還可以Commit。

4.每次開啟VS時建議獲得新版本。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.