SVN版本控制安裝配置說明


 

版本控制好工具有SVN、CVS、VSS等多種,他們的優劣在此不說明,請網絡參閱。

SVN支持多種平台,此文僅描述Windows平台下使用說明。

SVN客戶包含客戶端和服務端。Windows平台下客戶端使用TortoiseSVN,而服務端可使用SubVersion或者VisualSVN Server。

兩者區別如下:

  1. SubVersion服務需要封裝SVN Serve為Windows Service,才能自啟動;
  2. SubVersion控制權限,需要通過修改配置文件;
  3. SubVersion想通過瀏覽器訪問,需要安裝配置Apache。

  而VisualSVN Serve集成了Subversion和Apache,省去了以上所有的麻煩。安裝的時候SVN Server已經封裝為windws service,Apache服務器的配置也只是在圖像界面上,指定認證方式、訪問端口等簡單操作;另外,用戶權限的管理也是通過圖像界面來配置。

本文描述內容針對SubVersion使用。因為要的就是原始、整潔和穩定,也更接近Linux使用方式。

一、           下載安裝

1. 下載

  1. 服務器:Setup-Subversion-1.8.0-1.msi
  2. 客戶端:TortoiseSVN-1.8.5.25224-win32-svn-1.8.8.msi
  3. Apache服務:httpd-2.2.25-win32-x86-openssl-0.9.8y.msi

  注意,此3個軟件版本有可能不匹配。

2. 安裝

  一般情況下,Subversion服務器僅供局域網/本地使用,所以不需要Apache服務器。如需Apache服務器,可以參考《Apache服務安裝及配置》。如出現無法安裝msi文件,或許需要下載安裝新windows installer。 

1>     服務器安裝

  1. 雙擊Setup-Subversion-1.8.0-1.msi,一直下一步,完成svn服務端軟件安裝。
  2. 配置系統環境變量Path新增D:\Program Files\Subversion\bin(注意本文安裝路徑是D:\Program Files\Subversion)。
  3. 進入DOS界面,輸入svnserve.exe –version。以驗證查看服務器軟件安裝是否成功。

2>     客戶端安裝,雙擊TortoiseSVN-1.8.5.25224-win32-svn-1.8.8.msi,一直下一步,完成svn客戶端軟件安裝。本文安裝路徑D:\Program Files\TortoiseSVN。

3>     不習慣TortoiseSVN英文菜單界面的朋友,可以下載TortoiseSVN中文語言包安裝,如LanguagePack_1.8.4.24972-win32-zh_CN.msi,安裝完成后,在TotoriseSVNà SettingsàGeneralàLanguage選擇“中文”。

二、           創建版本庫

首先創建一個空文件夾,如D:\svnRoot,作為所有版本庫的根目錄,便於集中管理所有版本庫。有兩種方式可以創建版本庫:

第一種:TortoiseSVN方式創建。在D:\svnRoot目錄下,新建一個空文件夾,如D:\svnRoot\repose1,單擊鼠標右鍵,選擇“TortoiseSVN”à“Create repository here”完成創建

第二種:SubVersion方式創建。在開始菜單運行cmd進入DOS界面,輸入

                            svnadmin create D:\svnRoot\repose2                  (創建版本庫)

完成版本庫創建。

三、           啟動SVN服務

  在服務器DOS界面,輸入

                  svnserve.exe --daemon --root D:\svnRoot                  (啟動服務)

  可以寫成svnserve.exe -d -r D:\svnRoot。--daemon,表示svnserve將以守護進程方式運行,當關閉當前命令行窗口就會把svnserve stop了。使用SVN服務,命令行窗口需要服務器一直開着。我們可以通過svnserve -h來查看相關操作選項。

四、           配置用戶和權限

  1. 打開版本庫D:\svnRoot\repose1\conf\svnserve.conf文件,把里面的被# 注釋的password-db = passwd,去掉前面的 # 注釋符,並且前面不能有空格。這樣將會使用confpasswd文件作為密碼數據庫。
  2. 修改密碼數據庫passwd,添加user:

          [users]

          admin = 123                 (用戶名 = 密碼,一行一個account)

  ( 無需重啟服務器,即可使用!如果提示“認證失敗”,請檢查此步驟的配置)

  此部分進一步詳情可參考《SVN用戶和權限配置》。

五、           訪問版本庫

  接下來可以通過TortoiseSVN -> Repo-browser來查看版本庫:在點擊那個菜單項后彈出的URL對話框中輸入

          svn://localhost/repos1                                              (訪問版本庫)

  這樣就可以看見repos1版本庫的目錄結構了。其他電腦訪問需要把localhost改成本機IP地址,其他電腦只需要安裝TortoiseSVN客戶端即可。

注意:在此版本,本人測試先“svnserve.exe --daemon --root D:\svnRoot”啟動,再訪問“svn://localhost/repos1”,提示無法訪問。而是啟動“D:\svnRoot\repose1”,再“svn://localhost”訪問repose1版本庫。

六、           開始新的項目

  1. 添加新的文件到版本庫Import

   選中待管理的文件所在文件夾,如E:\codes\NTPacket,単擊鼠標右鍵,選擇“TortoiseSVN”à“Import”à確定,在身份認證彈出框,輸入passwd文件里正確的用戶名和密碼,即可上傳成功。

  1. 簽出版本庫里面的項目Checkout

  選擇一個空白地方或者新建一個空文件夾,単擊鼠標右鍵,選擇“SVN Checkout”,然后確認在身份認證彈出框,輸入passwd文件里正確的用戶名和密碼,即可簽出。

  1. 修改文件Commit及Update。Checkout到本地的文件,可以修改,修改后選中當前文件或其目錄,鼠標右鍵,彈出菜單多出“SVN Update”及“SVN Commit”, Commit提交此次修改,Update重新下載服務器文件至本地。
  2. 導出版本庫Export。checkout下載文件到本地后,與svn服務器有仍有狀態關聯,可以修改提交等。而export僅僅是下載文件到本地,之后與svn服務器沒任何關聯,修改后也無法提交。

七、           服務自啟動

  一般情況,啟動SVN服務,需要每次執行步驟三,DOS窗口還必須一直開着。這樣很不方便,可以把步驟三封裝成Windows Service自啟動。

  1. 新建一個空bat文件,如svnSer.bat,輸入

sc create svnlt binpath= "\"D:\Program Files\Subversion\bin\svnserve.exe\" --service --root \"D:\SvnRoot\repose2\"" displayname= "Subversion Server" depend= Tcpip start= auto

  說明:a. svnlt為服務名;b. 賦值=左邊沒空格,右邊有一個空格;c.注意路徑中的”號及\書寫正確。

  1. 雙擊svnSer.bat文件,完成Windows Service注冊。
  2. 啟動svnlt服務有兩種方式:第一種,重啟電腦,svnlt服務會自啟動;第二種,在DOS界面執行net start svnlt語句完成啟動。

            net start svnlt                       (啟動svn版本庫服務)

            net stop svnlt                       (停止服務)

            sc delete svnlt                      (刪除服務,后需重新注冊svnlt服務)

八、           多版本庫與用戶權限配置

  1. 多版本庫結構

  一般情況,部門組織或開發團隊有多個項目需要版本控制,可多個項目共用以一個版本庫,也可以每一個項目對應一個版本庫,建議用后者。

  SVNRoot為根目錄,為MobilePlatform項目創建一個版本庫,為KTCoder項目創建另一個版本庫,項目KTCoder下有兩文件夾Kernel和Business。

1>     新建空目錄D:\SVNRoot;

2>     cmd命令行,進入DOS界面執行svnadmin create D:\svnRoot\MobilePlatform創建版本庫MobilePlatform;

3>     DOS界面執行svnadmin create D:\svnRoot\KTCoder創建版本庫KTCoder;

4>     svnServe.exe –d –r D:\svnRoot啟動服務。TortoiseSVN Repository Browser 中URL欄輸入svn://localhost/MobliePlatform訪問MobilePlatform項目版本庫,svn://localhost/KTCoder訪問KTCoder項目版本庫。

  1. 用戶權限配置

  人員情況(權限舉例):

  1. Lz,公司老總,分配只讀所有文檔的權限;
  2. Wfh,Zg,項目經理,分配自己管轄項目讀寫權限,及其他項目只讀權限;
  3. Lyk,KTCoder項目核心開發人員,Kernel模塊唯一開發者,Kernel讀寫,其他讀寫;
  4. Whx,KTCoder項目開發人員,Kernel模塊只讀,Business模塊讀寫;
  5. Dgy,MobilePlatform項目開發人員;
  6. Fyh,svn管理員。

1>     打開版本庫下的conf\svnserve.conf文件,刪除下面幾行的前面注釋符#和空格。MobilePlatform版本庫與KTCoder版本庫一致處理。

        [general]

        # anon-access = read     à anon-access = none  //匿名訪問,改成none

        # auth-access = write    à auth-access = write

        # password-db = passwd      à password-db = passwd //指定用戶密碼文件

        # authz-db = authz         à authz-db = authz      //指定權限文件

         可以指定上面兩個文件的路徑。

2>     打開版本庫下的KTCoder\conf\ passwd文件,添加

          [users]

          Lz = 123

          Wfh = 123

          Zg = 123

          Lyk = 123

          Whx = 123

          Dgy = 123

          Fyh = 123

3>     打開版本庫下的KTCoder\conf\ authz文件,添加

        [groups]

        g_vip = Lz, Wfh

 

        [KTCoder:/]

        @g_vip = rw

        Fyh = rw

        Lyk = r

        Whx = r     

        * =

 

        [KTCoder:/Kernel]

        Lyk = rw

        Fyh =

 

        [KTCoder:/Business]

        Whx = rw                       

  此authz文件權限分配結果是:

  1. Zg,Dgy, KTCoder項目無任何權限;
  2. Lz ,Wfh,整個項目所有文件讀寫權限;
  3. Lyk,Kernel讀寫,其他所有文件只讀;
  4. Whx,Business讀寫,其他所有文件只讀;
  5. Fyh, KTCoder、Business目錄下文件讀寫,Kernel無權限。

4>     a. 權限可以分組,“g_vip = Lz, Wfh”,然后給組分配權限“@g_vip = rw”;b. “*  = ”表示任何人沒有權限;c. authz在本庫下時,[KTCoder:/Kernel] 中的根目錄可以寫成[Kernel]

SubVersion權限示例:http://coldtear.iteye.com/blog/28440

5>     權限在文件目錄間父子繼承、聯合,以子目錄為准。

九、           Apache服務安裝及配置

  1. 雙擊httpd-2.2.25-win32-x86-openssl-0.9.8y.msi文件開始安裝。

 

  1. 完成安裝后,打開瀏覽器,輸入地址http://localhost測試安裝是否成功。

 

  1. 我的電腦à屬性à高級à環境變量à系統環境變量Path新增“D:\Program Files\Apache Software Foundation\Apache2.2\bin”。
  2. 復制D:\Program Files\Subversion\bin下的so文件至D:\Program Files\Apache Software Foundation\Apache2.2\modules。

 

  1. 打開文件D:\Program Files\Apache Software Foundation\Apache2.2\conf\ httpd.conf找到下面兩行,去掉前面的注釋符#。

              #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

  1. httpd.conf文件末,新增下一段代碼

              <Location /svn>

              DAV svn

              SVNListParentPath on

              SVNParentPath D:/SVNRoot

              </Location>

        在瀏覽器中輸入http://localhost/svn/可訪問svnRoot下所有版本庫文件。

 

  1. 如果需要啟用用戶驗證及其權限分配,添加如下

            <Location /svn>

            DAV svn

            SVNListParentPath on                               ‘如注銷,則無法訪問

            SVNParentPath D:/SVNRoot

            AuthzSVNAccessFile D:/SVNRoot/myAccess

            #Satisfy Any                                             ‘不認證時是否顯示一級目錄

            AuthType Basic

            AuthName "SubVerion LTong"

            AuthUserFile D:/SVNRoot/myUser

            Require valid-user

            </Location>

  1. 權限文件

  權限文件myAccess與SubVersion版本庫權限文件配置格式一致。

  1. 用戶密碼文件

  用戶密碼文件與SubVersion版本庫用戶文件格式不一致,需要DOS下

        htpasswd –cb myUser admin               ‘第一次創建用戶文件

  然后輸入密碼兩次,創建myUser后,可以新增用戶

        Htpasswd myUser fu                          ‘然后輸入密碼兩次

十、           Eclipses vn插件

  1. 安裝

http://welcome66.iteye.com/blog/1845176

  1. 使用

http://www.cnblogs.com/dongritengfei/archive/2010/03/03/1677308.html

http://subclipse.group.iteye.com/group/wiki/1619-subclipse-getting-started-guide-and-reference-b

十一、   Visual Studio2005 svn插件

  1. 安裝
  2. 使用

http://blog.csdn.net/panderman/article/details/7707785

http://haner0926.blog.163.com/blog/static/2184154820071129111018599/

http://blog.163.com/haohengzhen@126/blog/static/76137910201211093727571/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM