linuxsvn伺服器搭建、客戶端操作、備份與恢復
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
相關文章
- 【備份恢復】之RMAN 恢復目錄庫(客戶端備份資訊註冊到目標庫恢復目錄中)客戶端
- RMAN備份恢復之NETBACKUP客戶端存在多個策略客戶端
- MySQL備份與恢復操作解析MySql
- linuxsvn客戶端常用命令Linux客戶端
- innobackup遠端流式備份及其恢復主要操作
- rsync備份【基於客戶端與服務端】客戶端服務端
- 物理冷備份與恢復的操作命令
- 備份與恢復:polardb資料庫備份與恢復資料庫
- MySQL備份與恢復——基於Xtrabackup物理備份恢復MySql
- 備份與恢復--利用備份的控制檔案恢復
- 備份與恢復系列 十一 控制檔案的備份與恢復
- Postgresql 備份與恢復SQL
- MySQL備份與恢復MySql
- MySQL 備份與恢復MySql
- 【備份恢復】Oracle 資料備份與恢復微實踐Oracle
- Mysql備份與恢復(1)---物理備份MySql
- RMAN備份與恢復之加密備份加密
- YUM源伺服器搭建與客戶端配置使用伺服器客戶端
- 備份與恢復系列 十 引數檔案spfile的備份與恢復
- Oracle 備份 與 恢復 概述Oracle
- gitlab備份與恢復Gitlab
- MongoDB之備份與恢復MongoDB
- SiteServer CMS 備份與恢復Server
- Oracle RAC備份與恢復Oracle
- Mysql的備份與恢復MySql
- Mysql 備份與恢復 二MySql
- Oracle備份與恢復 (zt)Oracle
- Oracle備份與恢復案例Oracle
- Oracle備份與恢復(轉)Oracle
- Jenkins備份與恢復Jenkins
- MySQL 非常規恢復與物理備份恢復MySql
- 備份與恢復(Parameter 檔案恢復篇)
- Mysql備份與恢復(2)---邏輯備份MySql
- MySQL備份與恢復——基於MyDumper/MyLoader 邏輯備份恢復MySql
- 備份&恢復之四:非歸檔模式下的備份與恢復模式
- 【備份恢復】從備份恢復資料庫資料庫
- 【管理篇備份恢復】備份恢復基礎
- Oracle資料庫備份與恢復之三:OS備份/使用者管理的備份與恢復Oracle資料庫