亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Linux 搭建SVN 服務器

系統 1988 0

. SVN 簡介

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

SVN 中的一些概念 :

1 . repository (源代碼庫)

源代碼統一存放的地方

2 . Checkout (提取)

當你手上沒有源代碼的時候,你需要從 repository checkout 一份

3 . Commit (提交)

當你已經修改了代碼,你就需要 Commit repository

4 . Update ( 更新 )

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

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

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

客戶端軟件:

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

2 )向 Myeclipse ,也有一些 SVN 的插件。

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 )。 所以這些操作只會花費很小 , 而且是固定的時間。

8 Hackability

Subversion 沒有任何的歷史包袱 ; 它主要是一群共用的 C 程序庫 , 具有定義完善的 API 。這使得 Subversion 便于維護 , 并且可被其它應用程序與程序語言使用。

. SVN 服務器搭建

2.1 使用 yum 安裝 SVN

關于 YUM 服務器的配置參考:

Linux 搭建 YUM 服務器

http://blog.csdn.net/tianlesoftware/archive/2011/01/03/6113902.aspx

[root@singledb ~]# yum install -y subversion

Loaded plugins: rhnplugin, security

This system is not registered with RHN.

RHN support will be disabled.

Setting up Install Process

Resolving Dependencies

--> Running transaction check

---> Package subversion.i386 0:1.4.2-4.el5_3.1 set to be updated

--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================

Package Arch Version Repository Size

====================================================================================================

Installing:

subversion i386 1.4.2-4.el5_3.1 rhel-base 2.3 M

Transaction Summary

====================================================================================================

Install 1 Package(s)

Update 0 Package(s)

Remove 0 Package(s)

Total download size: 2.3 M

Downloading Packages:

subversion-1.4.2-4.el5_3.1.i386.rpm | 2.3 MB 00:00

Running rpm_check_debug

Running Transaction Test

Finished Transaction Test

Transaction Test Succeeded

Running Transaction

Installing : subversion 1/1

Installed:

subversion.i386 0:1.4.2-4.el5_3.1

Complete!

[root@singledb ~]#

驗證安裝版本:

[root@singledb ~]# svnserve --version

svnserve, version 1.4.2 (r22196)

compiled Aug 5 2009, 19:03:56

Copyright (C) 2000-2006 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 back-end (FS) modules are available:

* fs_base : Module for working with a Berkeley DB repository.

* fs_fs : Module for working with a plain file (FSFS) repository.

2.2 創建 SVN 版本庫

[root@singledb ~]# mkdir /u02/svn

[root@singledb ~]# svnadmin create /u02/svn/davesvn --davesvn 為版本庫名稱

2.3 SVN 配置

創建版本庫后,在這個目錄下會生成 3 個配置文件:

[root@singledb conf]# pwd

/u02/svn/davesvn/conf

[root@singledb conf]# ls

authz passwd svnserve.conf

1 svnserve.conf svn 服務配置文件下。

2 passwd 用戶名口令文件。

3 authz 權限配置文件。

svnserve.conf 文件, 該文件配置項分為以下 5 項:

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

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

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

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

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

Passwd 文件

我們在 svnserve.conf 文件里啟用這個文件。然后配置如下:

[root@singledb conf]# cat passwd

### This file is an example password file for svnserve.

### Its format is similar to that of svnserve.conf. As shown in the

### example below it contains one section labelled [users].

### The name and password for each user follow, one account per line.

[users]

# harry = harryssecret

# sally = sallyssecret

dave = davepwd

tianlesoftware = tianlesoftwarepwd

authz 文件

在網上找到一個很好的配置例子:

[groups]

admin = john, kate

devteam1 = john, rachel, sally

devteam2 = kate, peter, mark

docs = bob, jane, mike

training = zak

-- 這里把不同用戶放到不同的組里面,下面在設置目錄訪問權限的時候,用目錄來操作就可以了。

# 為所有庫指定默認訪問規則

# 所有人可以讀,管理員可以寫,危險分子沒有任何權限

[/] -- 對應我測試里的: /u02/svn 目錄

* = r

@admin = rw

dangerman =

# 允許開發人員可以完全訪問他們的項目版本庫

[proj1:/]

@devteam1 = rw

[proj2:/]

@devteam2 = rw

[bigproj:/]

@devteam1 = rw

@devteam2 = rw

trevor = rw

# 文檔編寫人員對所有的 docs 目錄有寫權限

[/trunk/doc]

@docs = rw

# 培訓人員可以完全訪問培訓版本庫

[TrainingRepos:/]

@training = rw

下面我們來配置我們的 authz 文件:

[root@singledb conf]# cat authz

[groups]

admin = dave

dev=tianlesoftware

[davesvn:/]

@admin = rw

@dev = rw

[root@singledb conf]#

2.4 啟動和停止 SVN 服務

1 )啟動 SVN 服務 :

[root@singledb conf]# svnserve -d -r /u02/svn

-d 表示后臺運行

-r 指定根目錄是 /u02/svn

[root@singledb conf]# ps -ef | grep svn

root 4592 1 0 18:04 ? 00:00:00 svnserve -d -r /u02/svn

root 4594 3709 0 18:04 pts/1 00:00:00 grep svn

2 )停止 SVN 服務 :

ps -aux |grep svn

kill -9 進程殺掉

. 客戶端連接 SVN 服務器

3.1 安裝 TortoiseSVN 客戶端

下載地址在第一節已說明。

3.2 找到自己項目的目錄,右擊,進行 SVN 操作

1 )新建測試目錄 svn ,進入后右鍵,點 checkout

Linux 搭建SVN 服務器

Linux 搭建SVN 服務器

SVN 服務器的 IP 地址和版本庫名稱。

Linux 搭建SVN 服務器

新建個文件 svn.txt. 把這個 文件上傳 SVN 服務器(add):

Linux 搭建SVN 服務器

Linux 搭建SVN 服務器

------------------------------------------------------------------------------

Blog http://blog.csdn.net/tianlesoftware

網上資源: http://tianlesoftware.download.csdn.net

相關視頻: http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx

DBA1 群: 62697716( 滿 ); DBA2 群: 62697977( 滿 )

DBA3 群: 62697850 DBA 超級群: 63306533;

聊天 群: 40132017

-- 加群需要在備注說明 Oracle 表空間和數據文件的關系,否則拒絕申請

Linux 搭建SVN 服務器


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久久天天躁狠狠躁夜夜 | 中文字幕在线免费看 | 欧美一级特黄真人毛片 | 免费黄色一级网站 | 中文字幕中文字幕中中文 | 色综合久久中文字幕 | 视频在线成人 | 亚洲免费播放 | 视频二区 中文字幕 欧美 | 成人毛片免费视频播放 | 久久免费视频一区 | 国产伦精品一区二区三区女 | 欧美亚洲精品小说一区二三区 | 日本草草影院 | 国产成人高清一区二区私人 | 欧美精品v国产精品v | 精品无人区乱码一区二区 | 国产亚洲欧洲精品 | 不卡一区二区在线观看 | 一本影院 | 在线观看欧美一区 | 在线久操 | 久久国内免费视频 | 国产精品va一区二区三区 | 久热中文字幕在线精品首页 | 国产91精品一区二区麻豆网站 | 久久草精品 | 欧美在线一区视频 | 中文字幕欧美日韩在线不卡 | 日日摸日日添夜夜爽97 | 亚洲国产天堂在线网址 | 成人高清视频在线观看大全 | 四虎影视成人 | 99久久精品费精品国产一区二 | 久久综合一区 | 成人在线第一页 | 国产精品亚洲一区二区麻豆 | 久久精品国产亚洲aa | 欧美一级视频精品观看 | 国产精品久久久久影院色 | 色一情一乱一乱91av |