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版本控制服務 搭建與使用