svn 手配

好長時間沒寫生東西了,就等svn搞定以後再寫了,搞之前覺得挺複雜,其實搞完以後倒覺得沒什麼難的。

       Subversion(SVN)是一個開源的版本控制系統,它可以記錄文件的所有修訂版本,但沒有圖形化的操作界面,所以需要安裝TortoiseSVN,tortoiseSVN只是svn的一個圖形化的操作界面,有了這兩個,就可以建立起強大的svn服務器了。但是如果想通過http的方式訪問,則需要使用apache2.2.x,並將svn的一些模塊集成進去。ankhSVN則可以實現SVN+Visual Studio的遠程代碼管理。

      Subversion,TortoiseSVN,ankhSVN,apache這些都是開源軟件,建議大家在使用前都去下載其最新的版本,注意SVN要下載for apache的版本,不然會沒有掛載到apache上的一些相關配置文件。

     1.使用SVN+TortoiseSVN構建SVN服務器.

      這兩個程序安裝起來都比較容易,TortoiseSVN安裝需要重啓一次機器,安裝好後,在D盤建立起svn服務的根目錄,D:/svn,然後在下面建立repos1作爲一個項目的庫,選中該文件夾,右擊鼠標,選擇TortoiseSVN>Create Repository here…然後是選擇版本庫的模式,默認選擇FSFS即可,這是一種比較新的文件版本模式。

       建立好庫之後,則要啓用svn的服務,可以運行cmd在命令提示符中鍵入 svnserve –daemon –root D:/svn 回車,命令作用是啓用svn服務器,並設置svn服務器根目錄爲D:/svn,這樣就運行起了svn服務,特別要注意這個窗口不能關閉,一旦關閉也就停止了svn服務。

       然後鼠標右擊打開TortoiseSVN>Repo-browser來查看剛纔建立的版本庫,在URL對話框中輸入svn://Localhost/repos1,如果可以查看到repos1這個空庫則說明svnserve已經正常工作了。

      然後我們爲它配置用戶權限,如果所有來訪者都能對版本庫進行修改,那就亂套了。

           用文本編輯器打開D:/svn/repos1/conf/svnserve.conf,將

           # password-db = passwd

            改爲:

            password-db =passwd

            注意前面不要有空格,然後修改同目錄下的passwd文件,增加一個test帳號,在[users]這個節下面添加test=test即可,即用戶名,密碼都是test。

       2.將項目導入版本庫

       項目導入版本庫後,一切項目數據改動都將由該版本庫進行管理和記錄。選中項目所在文件夾,右擊>tortoiseSVN>Import…   ,在彈出的對話框”URL of repository”中輸入”svn://localhost/repos1/項目名”,在”Import message”中可以加入註釋,點OK後要輸入帳號密碼,輸入上面所添加的test用戶即可,完成後,項目就導入成功了。tortoiseSVN的取出,提交等功能在這裏就不一一介紹了.導入後再用TortoiseSVN>Repo-browser察看就能看到添加的項目了。

        3.用Apache架設svn服務

         用Apache架設有什麼好處呢?我覺得吧,可以使用http意味着可以使用固定的域名,開發的時候IP發生改變也無所謂,而且apache不會有那個不能關掉的窗口,雖然svnserve也可以加到系統的服務裏面.另外apache配置十分靈活,且具有了許多svnserve所沒有的特性,當然靈活也造成了一定的複雜性。

         首先安裝好Apache 2.2.x,這個不用多說,然後把subversion安裝目錄下的bin目錄中的intl3_svn.dll,libdb44.dll,mod_authz_svn.so,mod_dav_svn.so這幾個文件複製到apache的模塊目錄modules下。然後修改apache的配置文件httpd.conf來使apache加載mod_dav_svn模塊。

         將
         #LoadModule dav_module modules/mod_dav.so
         前面的”#”號去掉,然後在後面添加:
         LoadModule dav_svn_module modules/mod_dav_svn.so
         注意它一定要加在mod_dav的後面。

         現在已經設置好了Apache和Subversion,但是Apache不知道如何處理Subversion的客戶端Tortoisesvn,爲了讓apache知道哪個目錄是用來作爲subversion的版本庫,需要在配置文件httpd.conf後面添加以下代碼:
          <Location /repository/>
          DAV svn
          SVNPath D:/svn/repos1
          </Location>

           這個配置告訴apache首先要啓動dav_module,然後加載dav_svn_module,版本庫對外的URL是http://服務器IP/repository/,Subversion版本庫物理位置在D:/svn/repos1下。配置好重啓apache,就可以正常使用了。並且subversion的各種客戶端也可以通過http協議訪問版本庫。

           如果要指定多個版本庫可以使用多個Location標籤,也可以用SVNParentPath代替SVNPath來指定版本庫的父級目錄,如D:/svn下有多個版本庫,repos1,repos2等,就可以使用以下代碼:
         <Location /repository/>
          DAV svn
          SVNParentPath D:/svn
          </Location>

          “SVNParentPath D:/svn”表示D:/svn下的每個子目錄都是一個版本庫,訪問可以通過”http://服務器IP/repository/repos1″,”http://服務器IP/repository/repos2/”等來訪問。

           現在版本庫對於任何來訪者都是具有完全的權限的我們需要對其進行權限設置,這裏只介紹基本的http認證。apache提供了一個htpasswd工具來管理一個用戶文件,這個文件包含用戶名和加密後的密碼,htpasswd在Apache的bin目錄下,具體使用方法如下:

            htpasswd -c E:/user/apache/passwd.conf user
           其作用是創建passwd.conf文件,並建立用戶user,輸入命令回車後會要求輸入密碼。

           htpasswd [-m] E:/user/apache/passwd.conf Newuser
           這個用於添加新用戶,-m表示密碼用MD5加密。

           htpasswd [-m] E:/user/apache/passwd.conf user
          末尾參數爲已有用戶則可以用於修改用戶密碼。

          htpasswd -D E:/user/apache/passwd.conf user
         刪除用戶,注意參數D要大寫。

         然後修改apache的httpd.conf,在Location標籤中加入以下內容:

        AuthType Basic
        AuthName “KeyPark Studio”
        AuthUserFile E:/user/apache/passwd.conf
        Require valid-user

         AuthType Basic表示啓用基本驗證。
        AuthName “KeyPark Studio”表示認證對話框中顯示的服務器信息,這裏不要用中文,因爲Tortoisesvn不支持中文。
        AuthUserFile E:/user/apache/passwd.conf 指示了E:/user/apache/passwd.conf作爲用戶文件進行驗證。
        Require valid-user表示只有輸入了正確的用戶名密碼纔可以訪問相關路徑。

        驗證就講這些了,在網上還可以找到使用svn的模塊進行更爲細緻的訪問控制的設置方法,在這裏就不再介紹了。

        3.VS2008中使用用ANKHSVN插件

        插件安裝很簡單,在經過以上步驟後,並且確認你已經在vs中安裝好了ankhsvn插件,那麼恭喜你,你已經可以在VS中使用svn的強大代碼管理功能了。首先打開Visual Studio,點擊 File(文件)你將會看到多出了Subversion選項,點擊Open from subversion…URL中輸入http://服務器IP/repository/repos1,然後會提示輸入http認證的用戶名和密碼,輸入確定後就可以看到已經創建好的項目了選中要打開的項目.sln文件打開,然後需要制定一個本地存放路徑,設定好後點擊OK,就可以看到程序從服務器傳到了本地。

           在程序修改時一般操作流程及方法

          打開項目,首選點update,更新爲最新版本:

windows架設SVN服務器及在Visual Studio 2008使用ANKHSVN插件的進行代碼管理(轉載) - elevenguy - elevenguy的博客

         然後對需要修改的程序文件,進行鎖定:

Snap5

           並且可以加入提示信息:

windows架設SVN服務器及在Visual Studio 2008使用ANKHSVN插件的進行代碼管理(轉載) - elevenguy - elevenguy的博客

         修改後更新程序:
          注意兩個提交,用下面的提交後,仍然鎖定程序,上面的提交,在提交後自動解除鎖定。

Snap6

         另外,在提交前最好加上註釋,在上面的界面中點擊如下按鈕可以在message中輸入備註信息。

                                              Snap7

        手動解鎖:

Snap8

           查看修改編碼者信息:

Snap9

         查看版本歷史:

Snap10

Snap11

      比較版本點擊diff:

Snap12

        撤消未提交的更改:

Snap14

       查看待提交信息:

Snap13

          Change列的不同狀態,代表不同的含義,具體如下:
                 New 表示新增加的文件,還沒有增加到版本庫中。
                  Added 表示已經使用ADD功能,但是還沒提交.
                 Edited 表示已經修改但還沒保存.
                  Modified Edited狀態保存之後的狀態.
                 Conflicted 有衝突時的狀態
                 Deleted, Copied 改名之後,列示的狀態。Deleted也表示刪除文件的狀態。cafe.wh 8,1 2009

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章