欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

linux svn服務(wù)器搭建、客戶端操作、備份與恢復(fù)

 更新時間:2017年02月09日 11:33:28   作者:chengxuyuanyonghu  
Subversion(SVN)是一個開源的版本控制系統(tǒng),管理著隨時間改變的數(shù)據(jù).這篇文章主要介紹了linux svn服務(wù)器搭建、客戶端操作、備份與恢復(fù),需要的朋友可以參考下

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

本文目錄:

Linux svn服務(wù)器部署
linux svn客戶端命令操作
linux svn備份與恢復(fù)

一、linux svn服務(wù)器部署

1、安裝svn

[root@yang~]#yum install -y subversion
[root@yang~]#svnserve--version
svnserve,version 1.6.11 (r934486)

2、創(chuàng)建SVN版本庫

[root@yang~]# mkdir /data/svn
[root@yang~]# svnadmin create /data/svn/project
[root@yangproject]# ls /data/svn/project/
conf db format hooks locks README.txt

3、配置SVN

[root@yangproject]# cd /data/svn/project/conf/
[root@yangconf]# ls
authz passwd svnserve.conf

文件說明:

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

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

3)authz:          svn權(quán)限配置文件。

svnserve.conf文件

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

       anon-access:  控制非鑒權(quán)用戶訪問版本庫的權(quán)限。
       auth-access: 控制鑒權(quán)用戶訪問版本庫的權(quán)限。
       password-db:  指定用戶名口令文件名。
       authz-db:    指定權(quán)限配置文件名,通過該文件可以實現(xiàn)以路徑為基礎(chǔ)的訪問控制。
       realm:        指定版本庫的認證域,即在登錄時提示的認證域名稱。若兩個版本庫的認證域相同,建議使用相同的用戶名口令數(shù)據(jù)文件 

配置如下:    

[root@yangconf]# grep -E "anon-access =|auth-access =|password-db =|authz-db =|realm=" svnserve.conf
 anon-access = none
 auth-access = write
 password-db = passwd
 authz-db = authz
 realm = /data/svn/project

    passwd文件

作用是配置用戶名和密碼

[root@yangconf]# cat passwd
[users]
yangyun= yangyunpasswd
test = testpasswd 

authz文件

配置用戶訪問權(quán)限

[root@yangconf]# cat authz |grep -v '#'
[aliases]
[groups]
project_w=yangyun
project_r=test
[/]
project_w=rw
project_r=r 

4、啟動svn服務(wù)

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

5、初始化svn數(shù)據(jù)

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

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

[root@yangdjango]# svn list file:///data/svn/project
manage.py
mysite/
static/
templates/
web02/

在導(dǎo)入之后,原來的目錄樹并沒有轉(zhuǎn)化成工作拷貝,為了開始工作,還是需要運行svn checkout導(dǎo)出一個工作拷貝。

二、linux svn客戶端命令操作

1、將文件checkout到本地目錄

svn checkout   path(path是服務(wù)器上的目錄)

簡寫: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加入到本地庫中
A  123.txt

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

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

簡寫:svn ci

例:

svn commit 123.txt -m 'add 123.txt' #只提交123.txt
svn commit -m 'add 123.txt'  #默認提交當(dāng)前目錄下的所以文件
svn commit *.txt -m 'add 123.txt'  #也可以正則匹配文件提交

4、加鎖/解鎖

svn lock -m "LockMessage" [--force] PATH

例如:

svn lock -m "lock test file" test.PHP
svn unlock PATH

5、更新到某個版本

svn update -r m path

例如:

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

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

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

簡寫:svn up 

6、刪除文件

svn delete path -m "delete test fle"

例如: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, remove, rm)

7、查看日志

svn log   path

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

8、查看文件詳細信息

svn infopath

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

9、比較差異

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

例如:svn diff test.php

svn diff   -r m:n path(對版本m和版本n比較差異)

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

簡寫:svn di 

10、將兩個版本之間的差異合并到當(dāng)前文件

svn merge -r m:n path

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

11、SVN 幫助

svn help
svn help   ci   

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

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

簡寫:svn ls 

13、創(chuàng)建納入版本控制下的新目錄

svn mkdir:創(chuàng)建納入版本控制下的新目錄。

用法:

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

14、恢復(fù)本地修改

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

用法: revert PATH...

注意: 本子命令不會存取網(wǎng)絡(luò),并且會解除沖突的狀況。但是它不會恢復(fù)被刪除的目錄 

三、linux svn備份與恢復(fù)

1、全量備份:

curr=`svnlook youngest /data/svn/project/` #此處是查詢工程目錄的最新版本
svnadmin dump /data/svn/repos/test --revision 0:$cur --incremental >0-"$curr"svn.bak 
echo $curr >/tmp/svn_revision 

2、增量備份

old=`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恢復(fù)

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

cd /data/svn/repos/ 
svnadmin create test2 
svnadmin load test2 < /data/svnback/20110719/0-1112svn.bak 
svnadmin load test2 < /data/svnback/20110719/1113-1120svn.bak 

相關(guān)文章

最新評論