ubuntu搭載本地svn服務器

本方法適用於本機或小型局域網代碼版本控制。使用svn://協議。如果想使用http://協議則需安裝配置apache. 本文還基於ubuntuwindows samba共享服務。

 

1.安裝軟件

[c-sharp] view plaincopy

1.  sudo apt-get install subversion  

2.創建代碼庫

cd /home/svnuser/svn 

mkdir repository_name

[c-sharp] view plaincopy

1.  svnadmin create repository_name  

這條命令會在當前目錄下創建名爲repository_name的文件夾,後面用hopenvm_linux作爲實例。其下包含

[c-sharp] view plaincopy

1.  hopenvm_linux|-- conf/|-- db/|-- format|-- hooks/|-- locks/`-- README.txt  

3. 啓動svnserve服務器

[c-sharp] view plaincopy

1.  svnserve -d -r /home/svnuser/svn 

-r後面是repository_name文件夾的上級目錄,啓動服務器後,可以查到庫的信息

[c-sharp] view plaincopy

1.  coldfire@ubuntu:~/workspace/svn$ svn info svn://192.168.1.11/hopenvm_linuxPath: hopenvm_linuxURL: svn://192.168.1.11/hopenvm_linuxRepository Root: svn://192.168.1.11/hopenvm_linuxRepository UUID: 08e1aec2-22ff-447f-afd3-23c3ff467b4dRevision: 0Node Kind: directoryLast Changed Rev: 0Last Changed Date: 2011-06-06 04:53:28 -0700 (Mon, 06 Jun 2011)  

關於svnserve.conf的內容配置來源:SVN 認證失敗 

解決辦法是:

passwd文件內容:

[plain] view plaincopy

1.  [users]  

2.  # harry = harryssecret  

3.  # sally = sallyssecret  

4.  admin = admin  

5.  test = test  

格式是:帳號 = 密碼一個用戶爲一行

接着:將svnserver.conf的內容中:

anon-access =read 改爲 anon-access = none 即可。

總結:

一、配置

[plain] view plaincopy

1.  [general]  

2.  anon-access = none   #使非授權用戶無法訪問 如果該值爲read,則非授權用戶可讀。這就爲什麼不用輸入帳號密碼就可訪問的原因了  

3.  auth-access = write  #使授權用戶有寫權限  

4.  password-db = passwd #指明密碼文件路徑  

5.  #authz-db = authz    #訪問控制文件  

6.  realm = My First Repository  


二、指令

啓動服務執行svnserve -d -rsvn服務根目錄

svnserve
指令用於啓動svn服務,-d指明以守護模式運行,svn自動在3690端口監聽。3690是默認端口,可以使用“--listen-port=”或者“--listen-host=”來指定其它端口。-r選項用來指定svn服務的根目錄,這樣用戶就可以使用相對路徑訪問,而不用提供完整路徑。

使用以下命令檢出 svn checkout svn://127.0.0.1/dir IP需要根據具體情況調整,dir爲版本庫路徑,若在啓動時已指定則可省略。 

版本庫信息在版本庫文件夾裏,所以要刪除版本庫只需要刪除版本庫所在的文件夾即可。另外工作副本只是自己維護的文件夾,可以用Windows直接刪掉,對別人沒有影響。千萬不要使用版本庫的刪除命令,否則版本庫裏的內容也會被刪除。

三、上面我說了,如果去掉authz-db = zuthz前面的#號,必然認證失敗。我在這要糾正一下。無知者無畏啊。經過測試,順利通過認證

1、將上面的authz-db = authz 前面的 # 號去掉

2、修改authz文件

[plain] view plaincopy

1.  [aliases]  

2.  # joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average  

3.    

4.    

5.  [groups]  

6.  harry_and_sally = admin,sally # 這裏我採用分組形式。因爲是團隊合作,所以有多個人  

7.  # harry_sally_and_joe = harry,sally,&joe  

8.    

9.    

10. # [/foo/bar]  

11. # harry = rw  

12. # &joe = r  

13. # * =  

14.   

15. [bobo:/] #對bobo倉庫授權  

16. @harry_and_sally = rw #r 表示讀 w 表示寫  

17. # * = r # * 通配符,表示所有人,如果去掉前面#號,表示任何人可訪問(只讀訪問,不可寫)——注意:經測試,去掉#後,仍需要驗證。  


如果不採用組的方式,配置如下:

[plain] view plaincopy

1.  [aliases]  

2.  # joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average  

3.    

4.  [groups]  

5.  # harry_and_sally = zm2714,sally  

6.  # harry_sally_and_joe = harry,sally,&joe  

7.    

8.  [bobo:/]  

9.  admin = rw  

10. # &joe = r  

11. #* =r  

12.   

13. #[bobo:/]  

14. #@harry_and_sally = rw  

15. # * = r  

 

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