Apache2.2.11和SVN1.6.1搭建svn版本控制平臺(windows環境)(1)

一、安裝

 第一步,安裝Apache2.2,下載後直接安裝就可以了,沒有什麼難的。

 第二步,安裝Subversion1.6.1(目前最新版本),注意下載時,看是否支持Apache2.2;我使用的是svn-win32-1.6.1.zip,解壓之後即可使用。

二、整合

 第一步,打開Apache安裝目錄下的httpd.conf文件

找到下面的語句:

#LoadModule dav_module modules/mod_dav.so

將上面語句前面的#去掉

第二步,在這句後面追加,如下語句:

LoadModule dav_svn_module "{svn安裝目錄}/bin/mod_dav_svn.so"

LoadModule authz_svn_module "{svn安裝目錄}//bin/mod_authz_svn.so"

注:{svn安裝目錄}就是svn-win32-1.6.1.zip解壓後你放的目錄

第三步,在這個文件的最後,追加如下語句:

<Location /svn>

    DAV svn

    SVNPath d:/svn/repos1

</Location>

如果想要指定多個版本庫,可以用多個 Location 標籤,也可以使用 SVNParentPath 代替 SVNPath,例如在 e:/svn 下有多個版本庫 repos1,repos2 等等,用如下方式指定:
<Location /repository>
 DAV svn
 SVNParentPath e:/svn
</Location>

可以通過 http://服務器IP/repository/repos1,http://服務器IP/repository/repos2 來訪問。

第四步,創建倉庫

根據apache的配置文件的設置建立目錄:d:/svn,然後用svnadmin create d:/svn/myproject命令創建倉庫,命令執行成功之後,會在d:/svn/myproject下面生成很多的文件和目錄。

 

我們也可以使用 TortoiseSVN 圖形化的完成這一步:
先建立空目錄 E:/svn/repos1 ,注意一定是要空的。然後在 repos1 文件夾上“右鍵->TortoiseSVN->Create Repository here...”,然後可以選擇版本庫模式,這裏使用默認的FSFS即可,然後就創建了一系列文件夾和文件,同命令行建立的一樣。

 

第五步,運行

重新啓動Apache Server

在瀏覽器中輸入網址:

http://localhost/svn/myproject

這時候,看到頁面顯示:

Revision 0: /

Powered by Subversion version 1.6.1 (r).

安裝成功,接下來將進行權限設置。

三、svn權限設置

svn使用apache的權限管理對檔案庫及目錄進行讀寫管理

修改上面第三步的內容爲:

<Location /svn>

    DAV svn

    #SVNListParentPath on

    SVNParentPath d:/svn

    ### apache auth begin

    # how to authenticate a user

    AuthType Basic

    AuthName "Subversion repository"

    AuthUserFile D:/Subversion/apache_authz (保存用戶名和密碼,這個文件需要用Apache的htpasswd工具創建)

    Require valid-user

    ### apache auth end

    ### svn auth begin

    # our access control policy

    AuthzSVNAccessFile D:/Subversion/svn_authz  (保存用戶訪問的權限策略)

    # authentication if necessary

    Satisfy Any

    ### svn auth end

</Location>

用htpasswd工具創建apache_authz 文件,

建立保存用戶名和密碼的文件

  htpasswd -cm  D:/Subversion/apache_authz  username1

-c 表示創建文件,-m表示對密碼用md5加密

然後,會提示輸入兩次密碼,以後再加用戶就不需要用-c了,直接用-m即可。

更改用戶密碼:

   htpasswd -m D:/Subversion/apache_authz  username1
       刪除用戶(要用大寫的 D ):
          htpasswd –D D:/Subversion/apache_authz  username1

下面建立控制用戶訪問權限的文件svn_authz

在D:/Subversion中新建一個記事本文件,輸入下面的內容:


    [groups]


     committers = paulex, richard
     developers = jimmy, michel, spark, sean

 

[myproject:/]                     //這表示,倉庫myproject的根目錄下的訪問權限

@developers = rw

 

[myproject:/src]             //myproject倉庫下src目錄的訪問權限

@developers = rw         // 如果在前面加上@符號,則表示這是個羣組權限設置

 

r  表示讀權限

w 表示寫權限

AuthzSVNAccessFile 指向的是 authz 的策略文件,詳細的權限控制可以在這個策略文件中指定。訪問文件 accesspolicy.conf 的語法與svnserve.conf和 Apache 的配置文件非常相似,以(#)開頭的行會被忽略;在它的簡單形式裏,每一小節命名一個版本庫和一個裏面的路徑;認證用戶名是在每個小節中的選項名;每個選 項的值描述了用戶訪問版本庫的級別:r(只讀)或者rw(讀寫),如果用戶沒有提到或者值留空,訪問是不允許的; * 表示所有用戶,用它控制匿名用戶的訪問權限;@符號區分組和用戶。

好,配置完成,重新啓動Apache server

在瀏覽器地址欄中再次輸入:http://localhost/svn/myproject

這次要輸入密碼才能進入.

 

基本操作流程

1、取出(check out)

取出版本庫到一個工作拷貝:到任意空目錄下,比如在f分區建立一個空文件夾 f:/work 。“右鍵 -> SVN Checkout”。

在“URL of repository”中輸入“http://localhost/svn/repo1/guestbook”,這樣我們就得到了一份 guestbook 中內容的工作拷貝。

2、存入(check in)/提交(commit)

在工作拷貝中作出修改並提交:

在 guestbook 工作拷貝中隨便打開一個文件,作出修改,然後“右鍵 -> SVN Commit... ”。這樣我們就把修改提交到了版本庫,版本庫根據情況存儲我們提交的數據。

在修改過的文件上“右鍵 -> TortoiseSVN -> Show Log” ,可以看到對這個文件所有的提交。在不同的 revision 條目上“右鍵 -> Compare with working copy”,我們可以比較工作拷貝的文件和所選 revision 版本的區別。

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