linux svn服务器搭建、客户端操作、备份与恢复

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


本文目錄:

linux svn 服務器部署

linux svn 客戶端命令操作

linux svn 備份與恢復

 

一, linux svn 服務器部署

1 ,安裝svn

[root @ yang〜] #yum install -y subversion

[root @ yang〜] #svnserve - 版本

svnserve的,版本1.6.11(r934486)

 

2 ,創建SVN 版本庫

[root @ yang〜] #mkdir / data / svn

[root @ yang〜] #svnadmin create / data / svn / project

[root @ yangproject] #ls / data / svn / project /

conf db格式鉤子鎖定README.txt

 

3 ,配置SVN

[root @ yangproject] #cd / data / svn / project / conf /

[root @ yangconf] #ls

authz passwd svnserve.conf

 

文件說明:

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

2 )passwd:用戶名密碼文件。

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

 

svnserve.conf文件的文件

 該文件配置項分為以下5項:

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

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

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

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

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

 

配置如下:

        [root @ yangconf] #grep -E“anon-access = | auth-access = | password-db = | authz-db = | realm =“svnserve.conf

       anon-access = none

       auth-access =寫入

       password-db = passwd

       authz-db = authz

       realm = / data / svn / project

 

passwd文件的文件

作用是配置用戶名和密碼

[root @ yangconf] #cat passwd

[用戶]

yangyun = yangyunpasswd

test = testpasswd

 

AuthZ的的文件

配置用戶訪問權限

[root @ yangconf] #cat authz | grep -v'#'

[別名]

[組]

project_w =楊雲

project_r =測試

[/]

project_w = RW

project_r = R

 

4 ,啟動svn 服務

[root @ yangconf] #svnserve -d -r / data / svn

 

5 ,初始化svn 數據

[root @ yangdjango] #svn import mysite file:/// data / svn / project / -m'initial import'

將會拷貝目錄的mysite的到版本庫的項目下

[root @ yangdjango] #svn list file:/// data / svn / project

manage.py

我的網站/

靜態的/

模板/

web02 /

在導入之後,原來的目錄樹並沒有轉化成工作拷貝,為了開始工作,還是需要運行svn checkout導出一個工作拷貝。

 

二, linux svn 客戶端命令操作

1 ,將文件checkout 到本地目錄

svn checkout path (路徑是服務器上的目錄)

簡寫:svn co

例:

svn co svn://115.28.24.178/project --username = yangyun --password = yangyunpasswd

指定版本的文件

svn co svn://115.28.24.178/project --username = yangyun --password = yangyunpasswd -r 5 

 

2 ,往本地版本庫中添加新的文件

svn add file#此命令得在checkout出來的路徑裡才能操作

例如:

cp /root/123.txt./

svn add 123.txt#把123.txt加入到本地庫中

一個123.txt

 

3 ,將改動的文件提交到版本庫

svn commit -m“LogMessage”[ - N] [--no-unlock] PATH(如果選擇了保鎖,就使用--no-unlock開關)

簡寫:svn ci

例:

svn commit 123.txt -m'add 123.txt'#只提交123.txt

svn commit -m'add 123.txt'#默認提交當前目錄下的所以文件

svn commit * .txt -m'add 123.txt'#也可以正則匹配文件提交

 

4 ,加鎖/ 解鎖

svn lock -m“LockMessage”[ - force] PATH

例如:

svn lock -m“鎖定測試文件”test.php

SVN解開PATH

 

5 ,更新到某個版本

SVN更新-rm路徑

例如:

svn update 如果後面沒有目錄,默認將當前目錄以及子目錄下的所有文件都將更新到最新版本。

svn update -r 200 test.php(將版本庫中的文件test.php還原到版本200

svn update test.php(更新,於版本庫同步。如果在提交的時候提示過期的話,是因為衝突,需要先更新,修改文件,然後清除svn resolved,最後再提交commit

簡寫:svn up

 

6 ,刪除文件

SVN刪除路徑-m“刪除測試文件”

例如:svn delete svn://192.168.1.1/pro/domain/test.php -m“delete testfile”

或者直接svn delete test.php然後再svn ci -m'delete testfile',推薦使用這種

簡寫:SVN(DEL,取出,RM)

 

7 ,查看日誌

SVN日誌路徑

例如:svn log test.php顯示這個文件的所有修改記錄,及其版本號的變化

 

8 ,查看文件詳細信息

svn infopath

例如:svn info test.php#可知道路徑版本,時間,提交者等信息

 

9 ,比較差異

svn diff path(將修改的文件與基礎版本比較)

例如:svn diff test.php

SVN DIFF -rm:N路徑(對版本米和版本Ñ比較差異

例如:svn diff -r 200:201 test.php#可知道修改了哪些內容

簡寫:svn di

 

10 ,將兩個版本之間的差異合併到當前文件

svn merge -rm:n路徑

例如:svn merge -r 200:205 test.php(將版本200與205之間的差異合併到當前文件,但是一般都會產生衝突,需要處理一下)

 

11 SVN  幫助

SVN幫助

svn help ci  

 

12 ,版本庫下的文件和目錄列表

svn list path#顯示路徑目錄下的所有屬性版本庫的文件和目錄

簡寫:svn ls

 

13 ,創建納入版本​​控制下的新目錄

svn mkdir:創建納入版本​​控制下的新目錄。

用法:

svn mkdirPATH#效果等同:mkdir test; svn add test;

 

14 ,恢復本地修改

svn revert:恢復原始未改變的工作副本文件(恢復大部份的本地修改)。

還原:

用法:revert PATH ...

注意:本子命令不會存取網絡,並且會解除衝突的狀況但是它不會恢復被刪除的目錄

 

三, linux svn 備份與恢復

1 ,全量備份:

curr =`svnlook youngest / data / svn / project /`#此處是查詢工程目錄的最新版本

svnadmin   du mp / data / svn / repos / test --revision 0:$ cur --i nc remental> 0 - “$ curr”svn.bak 

echo $ curr> / tmp / svn_revision

 

2 ,增量備份

舊= cat / tmp / svn_revision`

new =`svnlook youngest / data / svn / project /`

svnadmin   dump  / data / svn / repos / test --revision $ old:$ new --incremental> $ old“ - ”$ new“svn.bak 

 

3 svn 恢復

恢復順序從低版本逐個恢復到高版本;即,先恢復最近的一次完整備份,然後恢復緊挨著這個文件的增量備份。

cd  / data / svn / repos / 

svnadmin的創建TEST2 

svnadmin load test2 </data/svnback/20110719/0-1112svn.bak  

svnadmin load test2 </data/svnback/20110719/1113-1120svn.bak  

 

四,配置項目/ Hooks /中的鉤子文件,實現客戶端提交到服務端后,自動更新服務端的指定版本庫

1)的Windows:後commit.bat

@echo off
SET REPOS=%1
SET USER=%2
SET SVN="D:\ProgramFiles\VisualSVN_Serve\bin/svn.exe"
SET DIR="D:\IntranetRoot\wwwroot\intranetSite" 
(call %SVN% update %DIR%  --quiet --username svn_sync --password int9527 --non-interactive)


2)CentOS6.5:post-commit.sh(xm)







本文出自“ 楊雲 ”博客,轉載請與作者聯繫!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值