您的位置:軟件測試 > 開源軟件測試 > 開源配置管理工具 > SVN
建立一個安全的Subversion服務器
作者:網(wǎng)絡轉(zhuǎn)載 發(fā)布時間:[ 2013/1/30 13:59:48 ] 推薦標簽:

  創(chuàng)建倉庫
  
  既然環(huán)境搭好了,那你可以創(chuàng)建倉庫了。用svn用戶登錄以保證svn用戶和svn組擁有你在倉庫中創(chuàng)建的文件。在 /usr/home/svn/目錄中,鍵入:
  % svnadmin create repository
  
  在這個例子中,我的倉庫名為repository。你可以選擇任何對你有幫助的名字。svnadmin create 僅僅創(chuàng)建了Subversion工具所需要的目錄結(jié)構(gòu)。
  % ls -F repository
  README.txt dav/ format locks/
  conf/ db/ hooks/
  
  注意目錄db是默認生成的。因為Subversion使用數(shù)據(jù)庫跟蹤倉庫中文件的變化,所以你必須把你的數(shù)據(jù)放到數(shù)據(jù)庫中。然后,我把備份文件解壓縮,這樣有的一些可以放進去的數(shù)據(jù)。但是要注意這么做的時候,不要把備份文件直接恢復到~svn/repository目錄下。(記得否,它是個數(shù)據(jù)庫)。相反,我新建了個目錄結(jié)構(gòu):
  % pwd
  /usr/home/svn
  % mkdir www && cd www
  % mkdir branches tags trunk
  % cd trunk
  % tar xzvf /full/path/to/www.tar.gz .
  % cd
  
  這樣,svn用戶的主目錄結(jié)構(gòu)像這樣:
  % ls -F ~svn
  repository/ www/
  
  導入數(shù)據(jù)
  
  下一步,應該把~svn/www/的數(shù)據(jù)導入到Subversion服務器了。為了實現(xiàn)這個目的,可以使用 svn import 命令:
  % svn import www file:///usr/home/svn/repository/www -m "initial import"
  
  svn import 是svn的許多命令中用戶可以使用的一條。鍵入 svn help 可以看到所有可以使用的命令的名字。如果你在svn和help中插入命令,比如 svn import help,你可以看到那條命令的語法幫助。在svn import后面的是包含要導入數(shù)據(jù)的目錄的名字(www)。你的數(shù)據(jù)不一定非得在相同的目錄下,它僅僅是定義了到數(shù)據(jù)的完整路徑,但必須保證你的svn組用戶擁有訪問導入數(shù)據(jù)的權(quán)限。注意:如果你已經(jīng)導入的數(shù)據(jù),原始數(shù)據(jù)沒有必要留在硬盤上了。在我的例子中,我使用了這條命令:
  rm -Rf www。
  
  接下來,請注意當我定義倉庫的完整路徑時所使用的語法。Subversion支持多URL模式或者RA(repository aclearcase/" target="_blank" >ccess)模塊。檢驗你的Subversion支持哪種模式:
  #svn --version
  svn, version 1.1.3 (r12730)  compiled Mar 20 2005, 11:04:16Copyright (C) 2000-2004 CollabNet.Subversion is open source software, see http://subversion.tigris.org/This product includes software developed by CollabNet http://www.Collab.Net/.The following repository access (RA) modules are available:* ra_dav : Module for accessing a repository via WebDAV (DeltaV) protocol. - handles 'http' schema - handles 'https' schema* ra_local : Module for accessing a repository on local disk. - handles 'file' schema* ra_svn : Module for accessing a repository using the svn.network protocol. - handles svn schema
  因為我想要在本地路徑訪問倉庫,所以我使用了file模式。我還可以在這URL后面加上www,因為我想訪問倉庫中名為www的目錄。當然,你能在同一個倉庫中導入多個目錄結(jié)構(gòu),并且用容易記住的名字命名。
  
  后,我使用了 -m 消息開關(guān)把注釋:"initial import"加入倉庫日志中。如果我不包括這個參數(shù),svn將使用默認編輯器(vi)打開日志并要求我填入注釋,否則無法進入下一步。
  
  這是非常關(guān)鍵的一個地方。安裝一個版本控制系統(tǒng)的全部原因是為了允許許多用戶修改文件,并且有可能是并發(fā)的。每一個用戶都應該負責任的記錄清楚他們對哪些文件作了哪些改動。你的工作是讓他們明白為什么svn命令總是提示他們加入注釋。
  
  確定如何訪問倉庫
  
  恭喜你!你現(xiàn)在擁有了一個可以工作的倉庫!現(xiàn)在到了仔細比較各種不同的URL模式并選出適合你需求的訪問方法的好的時間。
  
  免費電子文檔Version Control with Subversion第六章詳細介紹了各種可能的配置。你可以在編譯FreeBSD port的時候,在 make 命令后添加參數(shù) -DWITH_BOOK,把書安裝上。
  
  如果你的用戶通過本地或ssh登錄系統(tǒng),可以使用 file:///訪問。因為用戶對于倉庫時本地(local)的,所以這種情況下,系統(tǒng)不會打開一個 TCP/IP端口監(jiān)聽Subversion連接。然而,它卻要求每個用戶有一個活動的shell帳號并且假定你的用戶可以登錄Unix服務器。和別的shell帳戶一樣,其安全性能由這幾方面決定:用戶密碼的健壯性;倉庫權(quán)限以及組成員的正確配置。讓用戶通過ssh登錄系統(tǒng)并不保證session已被加密。
  
  另一種方案是把Subversion整合進apache服務器。默認情況下,Subversion 的FrssBSD port支持SSL編譯,這意味著你的用戶可以在瀏覽器中使用 https:// 模式訪問倉庫。然而,如果你的apache版本是2.X而不是1.X,要記得在編譯的時候把參數(shù)-DWITH_MOD_DAV_SVN 加入到 make后面。
  
  如果你考慮讓用戶通過瀏覽器訪問,要先仔細閱讀Subversion文檔關(guān)于apahce httpd配置部分,然后你要配置不少東西。幸運的是,文檔很完整!
  
  第三種方案時使用 svnserve 監(jiān)聽網(wǎng)絡連接。文檔建議采用這種模式,無論是通過inetd還是獨

上一頁12下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd