2011年1月11日 星期二

SVN伺服器架設

準備
  1. 本站下載Setup-Subversion-1.6.2.msi取得最新版Subversion (搜尋關鍵字Win32Svn)
  2. 取得最新版TortoiseSVN
  3. 以下範例使用Subversion-1.6.2版作說明
SVN伺服器架設
  1. 下載svn server並安裝。
  2. 所有的庫放在路徑d:\svn\repository\
  3. 建一個庫hello作測試。(建立庫的規則:可以為每個專案都建立一個庫,或者所有的專案共用一個庫)
    1. 建立一個資料夾,路徑為d:\svn\repository\hello。
    2. 選擇資料夾hello,點擊右鍵選擇選單項目"Tortoise SVN| Create Repository Here"。
  4. 啟動SVN Server,下指令 "C:\Program Files\Subversion\bin\svnserve.exe" -d -r d:\svn\repository --listen-port 9000。可以作一個批次檔來啟動它。
  5. 修改config檔:
    D:\svn\repository\hello\conf\svnserve.conf
    [general]
    anon-access = none     #一般人不准存取, 包括讀
    auth-access = write
    password-db = passwd  
    
    D:\svn\repository\hello\conf\passwd
    [users]
    # harry = harryssecret
    # sally = sallyssecret
    feelings = programfeelings     #建立自己的帳號密碼
    

SVN伺服器權限配置
  1. 目的:設定 hello repository可以讓Harry讀寫,Sally只能讀。
  2. 編輯檔案D:\svn\repository\hello\conf\authz,加入下面幾行:

    [svn_root:/]
    harry = rw  #注意英文字母皆小寫
    sally = r      #權限配置的文件 (authz) 裡的用戶名需已定義在用戶配置的文件 (passwd) 中

  3. 編輯檔案D:\svn\repository\hello\conf\svnserve.conf,只開啟功能password-db與authz-db,修改如下:

    [general]
    password-db = passwd
    authz-db = authz

  4. 編輯檔案D:\svn\repository\hello\conf\passwd,加入下面幾行:

    harry = harry
    sally = sally


SVN伺服器權限配置細節
  1. 用戶組格式:

    [groups]
    <用戶組名>=<用戶1>,<用戶2>
    其中,1個用戶組可以包含1個或多個用戶,用戶間以逗號分隔。

  2. 版本庫目錄格式:

    [<版本庫>:/項目/目錄]
    @<用戶組名>=<權限>
    <用戶名>=<權限>


  3. /,表示根目錄及以下。根目錄是svnserve啟動時指定的,我們指定為F:\SVNRoot。這樣,/就是表示對全部版本庫設置權限。

    repo1:/,表示對版本庫1設置權限
    repo1:/ref,,表示對版本庫1中的ref目錄設置權限
    repo2:/,表示對版本庫2設置權限
    權限主體可以是用戶組、用戶或*用戶組在前面加@*表示全部用戶權限可以是w、r、wr和空,空表示沒有任何權限
  4. authz文件例子
    #設定群組成員
    [groups]
    admin=hgx
    guest=cook

    #設定admin群組可以讀寫根目錄
    [/]
    @admin=rw
    [repo1:/ref]
    hgx=rw

    #設定可以讀寫repo2 repository的成員
    [repo2:/]
    hgx=rw
    cook=r



SVN客戶端操作
  1. 建立一個資料夾hello作check out。
  2. 選擇資料夾hello,點擊右鍵選擇選單項目"SVN checkout..."。(svn路徑為svn://127.0.0.1/hello)

沒有留言: