国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

linux svn服務器搭建、客戶端操作、備份與恢復

2024-06-28 16:02:35
字體:
來源:轉載
供稿:網友

本文轉載于 http://yangrong.blog.51cto.com/

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

本文目錄:

linux svn服務器部署

linux svn客戶端命令操作

linux svn備份與恢復

 

一、linux svn服務器部署

1、安裝svn

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

[root@yang~]#svnserve--version

svnserve,version 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  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服務配置文件下。

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 = write

       password-db = passwd

       authz-db = authz

       realm = /data/svn/project

 

passwd文件

作用是配置用戶名和密碼

[root@yangconf]# cat passwd

[users]

yangyun= yangyunpasswd

test = testpasswd

 

authz文件

配置用戶訪問權限

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

[aliases]

[groups]

project_w=yangyun

project_r=test

[/]

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到版本庫的project下

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

manage.py

mysite/

static/

templates/

web02/

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

 

二、linux svn客戶端命令操作

1、將文件checkout到本地目錄

svn checkout   path(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加入到本地庫中

A         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 "lock test file" test.php

svn unlock   PATH

 

5、更新到某個版本

svn update   -r m path

例如:

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

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(將修改的文件與基礎版本比較)

例如:svn diff test.php

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

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

簡寫:svn di

 

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

svn merge   -r m:n path

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

 

11、SVN 幫助

svn help

svn help   ci  

 

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

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

簡寫:svn ls

 

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

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

用法:

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

 

14、恢復本地修改

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

revert:

用法: revert PATH...

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

 

三、linux svn備份與恢復

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恢復

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

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  


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 遵义县| 赤峰市| 治多县| 桃园县| 安塞县| 荃湾区| 永昌县| 廊坊市| 环江| 务川| 铅山县| 德安县| 二连浩特市| 固原市| 恩施市| 江达县| 定边县| 寿宁县| 鄂托克旗| 资源县| 新建县| 德庆县| 厦门市| 伊宁市| 雷州市| 建湖县| 沽源县| 绵阳市| 永修县| 天气| 芦山县| 龙南县| 龙川县| 阳东县| 子长县| 丰都县| 杭锦后旗| 南木林县| 庄河市| 古浪县| 谢通门县|