1. 程式人生 > >SVN版本控制服務 搭建與使用

SVN版本控制服務 搭建與使用

export 獲得 系統 最新 資料 只讀 ESS 配置文件 代碼

SVN簡介

SVN是一個開源的版本控制系統,SVN管理著隨時間改變的數據。這些數據放置在一個中央資料檔案庫中,這個檔案庫很像一個普通的文件服務器,不過它會記住每一次文件的改動。

SVN的概念:

  • repository:源代碼庫,源代碼統一存放的地方;
  • checkout:提取,當電腦上沒有源代碼的時候,需要從倉庫checkout一份
    - commit:提交,當有修改過的代碼,需要commit到repository
  • update:更新,當已經checkout一份源代碼,update以下就可以和repository上的源代碼同步了,這樣手上的資料便是最新的

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

系統環境

主機 操作系統 IP地址
SVN Server Centos 7.3 X86_64 192.168.96.22
Client Centos 7.3 X86_64 192.168.96.16

開始安裝

關閉防火墻及Selinux

setenforce 0
systemctl stop firewalld

1.安裝svn軟件包

yum install subversion -y

2.查看版本

svnserve --version

技術分享圖片

3.新建版本庫目錄

mkdir -p /svn/data

4.創建版本庫

svnadmin create /svn/data/

5.查看倉庫目錄

ls !$

技術分享圖片

6.啟動svn服務

svnserve -d -r /svn/data/

7.檢查svn服務是否啟動

netstat -tunlp | grep svnserve

技術分享圖片

8.進入版本庫目錄

cd /svn/data/conf/

9.編輯svn服務配置文件svnserve.conf

vim svnserve.conf

anon-access = none
auth-access = write
password-db = passwd
authz-db = authz

anon-access: 控制非鑒權用戶訪問版本庫的權限,取值範圍為"write"、"read"和"none"。即"write"為可讀可寫,"read"為只讀,"none"表示無訪問權限。 缺省值:read

auth-access: 控制鑒權用戶訪問版本庫的權限。取值範圍為"write"、"read"和"none"。即"write"為可讀可寫,"read"為只讀,"none"表示無訪問權限。 缺省值:write
authz-db: 指定權限配置文件名,通過該文件可以實現以路徑為基礎的訪問控制。 除非指定絕對路徑,否則文件位置為相對conf目錄的相對路徑。 缺省值:authz
realm: 指定版本庫的認證域,即在登錄時提示的認證域名稱。若兩個版本庫的 認證域相同,建議使用相同的用戶名口令數據文件。 缺省值:一個UUID(Universal Unique IDentifier,全局唯一標示)。

10.編輯用戶名口令passwd文件,配置用戶信息

vim passwd

zhangsan = abc123
admin = abc123

11.編輯authz配置文件,指定用戶的權限

vim authz

[/]
zhangsan = r
admin = r

[/web]
zhangsan = rw
admin = rw

12.創建目錄

mkdir web

13.將web導入到本地的svn工程倉庫中

svn import web/ file:///svn/data/web -m "初始化SVN目錄"

通過Linux客戶機連接SVN

1.關閉防火墻及Selinux

setenforce 0
systemctl stop firewalld

2.安裝svn軟件包

yum -y install svn

3.連接svn服務器

svn co svn://192.168.96.22/web

技術分享圖片

4.查看並創建目錄

技術分享圖片


基本操作說明:

1.check out

檢出獲得文件後,檢出的文件仍處於SVN版本控制中,與版本庫保持關聯,比如你可以進行Svn Update或者Svn Commit操作。同時導出文件夾下有一個.svn的隱藏文件夾,存儲著一些版本的元數據信息。(對於導入到服務器中的數據,需要檢出才能形成一個受svn控制的工作拷貝,才可以進行 add update commit 等操作)

2.export

簡單導出一個版本的數據(把服務器中的數據導出來,相當於復制一份),導出的文件脫離SVN版本控制(導出的就是一個文件,與svn版本沒關系),導出後也無法進行Update和Commit操作。導出文件夾下沒有.svn目錄

3.import

僅僅是把文件導入到svn服務器中,而這個文件本身還只是一個普通的文件,與svn版本庫沒有關系(導入時需要svn服務器的地址,可以從服務器復制下來,在Repositories下的版本庫右擊復制)

4.add

把新創建的文件添加到緩存區(執行後顯示一個加號),需commit提交才能真正上傳到服務器(顯示對號)

5.update

把服務器上最新的版本更新下來,比如別人上傳的版本(一般提交之前需先更新,否則別人上傳的新版本你沒有更新下來就會被覆蓋,別人上傳的就丟失了)

SVN版本控制服務 搭建與使用