centos svn 的搭建

一. 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:

?

??

?

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

?

?

?????

?

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

?

??

?

轉載于:https://www.cnblogs.com/itfat/p/7267872.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/252188.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/252188.shtml
英文地址,請注明出處:http://en.pswp.cn/news/252188.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

halcon邊緣提取和檢測常用方法

轉自:http://blog.csdn.net/Bob_qiuxu/article/details/46924969 一、邊緣提取 1、設置ROI興趣區域 2、快速二值化,并連接相鄰區域。 這樣做的目的是進一步減少目標區域,通過二值化將目標區域大概輪廓提取出來 3、提取最接近目標區域的輪廓…

oracle sqlplus常用命令

轉自:https://www.cnblogs.com/wdx8927304/p/7927613.html 一、sys用戶和system用戶Oracle安裝會自動的生成sys用戶和system用戶(1)、sys用戶是超級用戶,具有最高權限,具有sysdba角色,有create database的權限,該用戶默…

使用css繪制小三角

<div style"width:0;height:0;overflow: hidden;border-top:4px solid transparent;border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid red; "></div>轉載于:https://www.cnblogs.com/boonook/p/8570442.h…

C#與halcon聯合開發——內存溢出

1.對所以的局部零時變量HObject類的使用前后都加Dispose(); 2.對全局的HObject類變量進行如下定義 HObject liveImage null;HObject ExpGet_liveImage(){return liveImage;}void ExpSet_liveImage(HObject obj){if (liveImage ! null)liveImage.Dispose();liveImage obj.Cop…

點擊跳轉到QQ聊天界面

<!--//需要添加好友驗證--><a href"tencent://message/?uinQQ號碼&Site&Menuyes"><img src"需要點擊的圖片" width"80"/></a><!--不需要添加好友驗證--><a href"tencent://message/?Menuyes&am…

學習React的一知半解

① 初探 HMTL的渲染過程 ? 這個結構化文本就是 HTML 文本&#xff0c; HTML 中的每個元素都對應 DOM中某個節點&#xff0c;這樣&#xff0c;因為 HTML 元素的逐級包含關系&#xff0c; DOM 節點自然就構成了一個樹形結構&#xff0c;稱為 DOM 樹 。 ? 瀏覽器為了渲染 HTML 格…

DataTable 轉為ListT集合

public static List<T> HubbleTableToList<T>(this DataTable dt) where T:Class{List<T> _list new List<T>();if (dt null) return _list;T model;foreach (DataRow dr in dt.Rows)//進行循環dataTable行數據{model Activator.CreateInstance<…

工業相機與鏡頭分辨率匹配

// 轉自 奧普特講述工業相機與鏡頭分辨率匹配的技術方案 隨著機器視覺行業的發展&#xff0c;為了更好的滿足廣大客戶選配合適鏡頭的需求&#xff0c;奧普特自動化科技有限公司為您簡述工業相機如何選配合適的鏡頭&#xff0c;以及在相機與鏡頭的分辨率匹配方面的技術方案。 …

微信分享

<?php /*** Description of WxShare*微信分享* author xinjun*/ namespace Controller\Wx;use Controller\Home\HomeBase; use Model\Wx\UserModel; use Model\Wx\TokenModel; use Framework\Net\Request;class WxShare extends HomeBase {public function __construct(){p…

工業相機的靶面大小

在機器視覺中&#xff0c;工業相機是一種比較重要的配件。而在工業相機中&#xff0c;圖像傳感器又是最最關鍵核心的東西。而圖像傳感器的靶面的大小&#xff0c;往往直接關系到成像的質量。通常來講&#xff0c;圖像的成像質量與像素的大小成正比。這也就意味著&#xff0c;同…

軟件建模——第3章 項目前期

3.1 項目前期的主要工作 3.1.1 現狀分析 1.硬件分析 2.軟件分析 3.1.2 需求收集 3.1.3 粗略設計 1.體系結構設計 2.硬件&#xff08;網絡&#xff09;設計 3.應用系統設計 4.安全設計 5.配套設計 3.1.4 可行性分析 3.2 結構化的項目前期實例 3.2.1 組織分析&#xff08;自動化…

echarts_部分圖表配置_圖表click事件

額。。當然其他事件都是支持的&#xff0c;此文僅以click做簡單介紹&#xff1a; 請點擊“柱子”。。。 官方介紹&#xff1a;http://echarts.baidu.com/tutorial.html#ECharts%20%E4%B8%AD%E7%9A%84%E4%BA%8B%E4%BB%B6%E5%92%8C%E8%A1%8C%E4%B8%BA 1 function bottom_z (thisI…

mysql 5.7.25 的安裝與 安裝錯誤修改 適用于5.7解壓版

1&#xff0c;根據自己的需求去官網下載 2.解壓到自己喜歡的路徑 其中date 和 my.ini 在5.7后面的版本 解壓后是沒有的&#xff0c;需要自己配置。 可以自己創建my.ini文件 &#xff0c;但是不能自己創建date文件夾。 其中my.ini文件的配置如下&#xff08;如果報錯要將目錄文件…

數據結構 最長公共子序列問題

例題: 51nod 1006 解析1:http://blog.csdn.net/yysdsyl/article/details/4226630/ 解析2:http://blog.csdn.net/hrn1216/article/details/51534607 轉載于:https://www.cnblogs.com/wenbo4399/p/8594586.html

解除服務器端口號占用及服務器端口號的修改

這幾天因為面試的原因把SSH的東西重新鞏固下&#xff0c;所以用的服務器是Tomcat。但是因為前一個項目用的服務器是Jboss&#xff0c;項目一期迭代完成&#xff0c;轉交測試組進行測試&#xff0c;提了很多bug&#xff0c;所以當改bug的時候發現我Jboss的服務器可以允許&#x…

Python?標準類庫-Windows特殊服務之msvcrt

標準類庫-Windows特殊服務之msvcrt by:授客 QQ&#xff1a;1033553122 廣告&#xff1a;出售自研自動化小平臺&#xff08;無需編碼也可用&#xff09;&#xff0c;有需要請聯系 測試環境 win7 64位 Python 3.4 64bit 控制臺I/O 1. 例子 getch演示 假設 1.py腳本內容如下&#…

Spring Cloud Gateway 路由轉發之After(Before)路由斷言工廠使用

前言 本文旨在介紹After&#xff08;Before&#xff09;路由斷言工廠使用&#xff0c;以此類推可以使用其他路由斷言工廠 案例 1、概念 網關簡單的說就是提供一個對外統一的API入口和出口&#xff0c;統管企業對外的所有API出口。一般來說&#xff0c;網關對外暴露的URL或者接口…

redis服務器學習一

一&#xff1a;什么是redis服務器 redis是一個key-value存儲系統。和Memcached類似&#xff0c;它支持存儲的value類型相對更多&#xff0c;包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set --有序集合)和hash&#xff08;哈希類型&#xff09;。這些數據類型都支…

RichTextBox 改變每行的字體顏色

RichTextBox 改變每行的字體顏色 1、新建方法AppendTextColorful(this RichTextBox rtBox, string text, Color color, bool addNewLine) 2、調用方法AppendTextColorful(this RichTextBox rtBox, string text, Color color, bool addNewLine) public stat…