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)文章
linux下配置jdk環(huán)境變量的三種方法總結(jié)
下面小編就為大家?guī)硪黄猯inux下配置jdk環(huán)境變量的三種方法總結(jié)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-09-09Linux系統(tǒng)如何添加普通用戶到 sudoers 文件
這篇文章主要介紹了Linux系統(tǒng)添加普通用戶到 sudoers 文件的方法,在文章給大家補充Debian將普通用戶添加到sudoer文件的方法,感興趣的朋友一起看看吧2017-10-10十招提高Linux系統(tǒng)安全性的設(shè)置方法
十招提高Linux系統(tǒng)安全性的設(shè)置方法...2007-03-03