CentOS 6.3上SVN安裝過程及使用手冊

一、 SVN 簡介

    Subversion(SVN) 是一個開源的版本控制系統, 也就是說 Subversion 管理着隨時間改變的數據。 這些數據放置在一箇中央資料檔案庫 (repository) 中。這個檔案庫很像一個普通的文件服務器, 不過它會記住每一次文件的變動。 這樣你就可以把檔案恢復到舊的版本, 或是瀏覽文件的變動歷史。

 

SVN中經常用到的一些概念 :

(1)repository(源代碼庫):源代碼統一存放的地方;

(2)Checkout (提取):當你手上沒有源代碼的時候,你需要從repository checkout一份;

(3)Commit (提交):當你已經修改了代碼,你就需要Commit到repository;

(4)Update (更新):當你已經Checkout了一份源代碼, Update一下你就可以和Repository上的源代碼同步,你手上的代碼就會有最新的變更 ;

 

SVN的工作方式:

    日常開發過程其實就是這樣的(假設你已經Checkout並且已經工作了幾天):Update(獲得最新的代碼) -->作出自己的修改並調試成功 --> Commit(大家就可以看到你的修改了) 。

    如果兩個程序員同時修改了同一個文件呢,  SVN可以合併這兩個程序員的改動,實際上SVN管理源代碼是以行爲單位的,就是說兩個程序員只要不是修改了同一行程序,SVN都會自動合併兩種修改。如果是同一行,SVN會提示文件Confict, 衝突,需要手動確認。

 

客戶端軟件:

    Windows下常用的客戶端軟件常用TortoiseSVN。它是一個免費的開源的客戶端。 下載地址:http://tortoisesvn.net/downloads.html

wKioL1P604-i-SluAALJcg565I0261.jpg

 

Subversion提供以下主要功能:

(1)目錄版本控制:

    CVS 只能跟蹤單個文件的歷史, 不過 Subversion 作了一個 “虛擬” 的版本控管文件系統, 能夠依時間跟蹤整個目錄的變動。 目錄和文件都能進行版本控制。

 

(2)真實的版本歷史:

    自從CVS限制了文件的版本記錄,CVS並不支持那些可能發生在文件上,但會影響所在目錄內容的操作,如同複製和重命名。除此之外,在CVS裏你不能用擁有同樣名字但是沒有繼承老版本歷史或者根本沒有關係的文件替換一個已經納入系統的文件。在Subversion中,你可以增加(add)、刪除(delete)、複製(copy)和重命名(rename),無論是文件還是目錄。所有的新加的文件都從一個新的、乾淨的版本開始。

 

(3)自動提交:

    一個提交動作,不是全部更新到了檔案庫中,就是完全不更新。這允許開發人員以邏輯區間建立並提交變動,以防止當部分提交成功時出現的問題。

 

(4)納入版本控管的元數據:

    每一個文件與目錄都附有一組屬性關鍵字並和屬性值相關聯。你可以創建, 並儲存任何你想要的Key/Value對。 屬性是隨着時間來作版本控管的, 就像文件內容一樣。

 

(5)選擇不同的網絡層:

    Subversion 有抽象的檔案庫存取概念, 可以讓人很容易地操作新的網絡機制。 Subversion 可以作爲一個擴展模塊嵌入到Apache HTTP 服務器中。這個爲Subversion提供了非常先進的穩定性和協同工作能力,除此之外還提供了許多重要功能: 舉例來說, 有身份認證, 授權, 在線壓縮, 以及文件庫瀏覽等等。還有一個輕量級的獨立Subversion服務器, 使用的是自定義的通信協議, 可以很容易地通過 ssh 以 tunnel 方式使用。

 

(6)一致的數據處理方式:

    Subversion 使用二進制差異算法來異表示文件的差異, 它對文字(人類可理解的)與二進制文件(人類無法理解的) 兩類的文件都一視同仁。 這兩類的文件都同樣地以壓縮形式儲存在檔案庫中, 而且文件差異是以兩個方向在網絡上傳輸的。

 

(7)有效的分支(branch)與標籤(tag):

    在分支與標籤上的消耗並不必一定要與項目大小成正比。 Subversion 建立分支與標籤的方法, 就只是複製該項目, 使用的方法就類似於硬連接(hard-link)。 所以這些操作只會花費很小, 而且是固定的時間。


二、安裝以及使用過程:

1、在Linux環境下直接使用yum安裝即可:

[root@node1 ~]# yum install subversion


2、安裝好之後就可以配置一下相關的配置文件了、其實說配置主要是先創建一個源代碼庫(也叫版本庫),在哪裏創建都可以、創建版本庫使用的命令如下:

[root@node1 ~]# svnadmin create /data/www/svn


3、配置版本庫中的相關配置,設置用戶訪問的權限,添加訪問用戶等,在創建的版本庫中我們可以在conf文件夾中看到三個文件,這三個文件就是我們要修改的配置:

authz  passwd  svnserve.conf

wKioL1P61j-A01A4AAA4qtOpP-g229.jpg

(1)svnserve.conf:  svn服務配置文件

(2)passwd: 用戶名口令文件。

(3)authz: 權限配置文件。


4、接下來我們修改這三個文件;

[root@node1 conf]# vim svnserve.conf

wKiom1P61e7Q__uAAAI3zMlsKOI089.jpg

    anon-access:控制非鑑權用戶訪問版本庫的權限。

    auth-access:控制鑑權用戶訪問版本庫的權限。

    password-db:指定用戶名口令文件名。

    authz-db:指定權限配置文件名,通過該文件可以實現以路徑爲基礎的訪問控制。

    realm:指定版本庫的認證域,即在登錄時提示的認證域名稱(也就是版本庫的名稱)。若兩個版本庫的認證域相同,建議使用相同的用戶名口令數據文件


[root@node1 conf]# vim passwd 

wKiom1P61qjTxtebAABQGf3Y3M4787.jpg


[root@node1 conf]# vim authz 

wKioL1P62KrTB0a-AAEW-Uwxa7M143.jpg


如果版本庫有多個文件夾,且都需要分配不同的權限的話,只要再加[版本庫名:/文件目錄]一項這個就可以了,有多少個用多少個,比如:

wKioL1P62i_SC8yLAAFIHRn2Zv0729.jpg


版本庫目錄,如果你創建的版本庫爲/data/www/svn,那這裏就寫上你的目錄名,格式:[目錄名:/]

@後面跟上組名,再指定組的權限,*=表示不在這個組內的所有組都沒有權限;


好了,到這裏我們就可以啓動服務了;

[root@node1 ~]# svnserver -d -r /data/www/  

-d:表示在後臺運行;-r:指出要運行的版本庫的路徑,如果你創建的版本庫路徑爲/data/www/svn,那麼只需要指定/data/www就可以了、查看端口;

wKioL1P62-SywiMUAAE3QYSjUTQ053.jpg

OK、到這裏我們已經安裝好了,並配置好相關的權限和用戶了,那麼接下來我們安裝windows客戶端來測試一下。


三、安裝windows客戶端SVN、到官網下載客戶端,順便把漢化包也一起下載下來:http://tortoisesvn.net/downloads.html

wKiom1P62_vRyxR-AAKXuaNr-Os007.jpg


下載好客戶端之後就一直next到底就可以了,這個不多說了,安裝好客戶端之後再安裝漢化包就可以了,安裝完漢化包就要設置一下,改成中文的去:

wKioL1P63ffRb1PMAAFSOFzYJ3U573.jpg

wKiom1P63TmBcR6RAAKX_c8mJTM891.jpg


好了之後我們就可以使用了,找到一個存放源代碼的目錄,右鍵空白處,選擇SVN檢出:

wKiom1P63jTifT4-AAGdQAj-i3k144.jpg


點擊確定之後就會彈出輸入用戶名和密碼的對話框:

wKioL1P63_3zGJ-xAAC-6yNzus8909.jpg

wKiom1P635Hg2WEgAAGsZNwXMpw780.jpg


好了,到這裏我們的SVN已經搭建完成了,這樣我們就可以完全的使用了。如果有什麼不明白的地方歡迎各種在下面留言,我會盡量解答各位的問題,謝謝。

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