- SVN
概念:
SVN是一個跨平臺的開源版本控制系統,SVN會備份並記錄每個文件每一次的修改更新變動。我們可以回滾到舊的版本。
端口:3690
使用方法:
先從中央庫check out,然後修改自己的代碼後在commit
備份:
需要備份所有代碼以及所有更改的版本記錄。
缺點:
1、當無法連接到中央版本庫的環境下,你無法提交代碼,看不到代碼的歷史版本。
2、每次提交都保留原始副本,因此數據庫容量會暴增
3、不適合開源系統開發
4、特別適合幾個人的小項目
svn和git區別:
git是分佈式的版本管理系統,開發者本地也包含一個完整的git倉庫
服務運行方式:
1、獨立服務器訪問SVN://svn.svnserver.com/doc/
2、apache+svn訪問http://svn.svnserver.com/doc/ (CSVN)
3、在svn服務器端用http://svn.svnserver.com/doc/
客戶端訪問方式
1、http://
2、SVN://
svn數據格式
1、BDB(一種事物安全型表類型)
2、FSFS(不需要數據庫的存儲系統)
#############################################################################
創建項目目錄
mkdir -p /application/svndata #項目文件
mkdir -p /application/svnpasswd #密碼、權限文件
安裝
yum install subversion -y
運行svn:-d守護進程 -r指定數據存儲目錄
svnserve -d -r /application/svndata
創建一個新的項目sadoc
svnadmin create /application/svndata/sadoc
修改配置文件
vim /application/svndata/sadoc/conf/svnserve.conf
anon-access = none #禁止匿名訪問
auth-access = write #認證讀寫
password-db = /application/svnpasswd/passwd #密碼目錄
authz-db = /application/svnpasswd/authz #權限目錄
複製文件到自定義的密碼和權限目錄
cd /application/svndata/sadoc/conf/
cp authz passwd /application//svnpasswd/
只允許root看見密碼和權限
cd /application/svnpasswd
chmod 700 *
創建用戶
vim /application/svnpasswd/passwd
[users]
lmkmike = 123456
lmkzxh = 123456
注意事項
更改svnserve.conf後必須重啓,authz和passwd不需要
vim /application/svnpasswd/authz
更改權限
[groups]
sagroup = lmkmike,lmkzxh
[sadoc:/]
lmkmike = rw
lmkzxh = r
@sagroup = r
客戶端svn可以通過SVN://192.168.56.100/sadoc/
然後輸入用戶名和密碼即可(checkout和commit)
linux svn客戶端checkout命令
svn co svn://192.168.56.100/sadoc /tmp/sadoc --username lmkmike --password 123456
備份
1本地備份整個最新版本,不包括歷史版本的信息
svnadmin hotcopy /application/svndata/sadoc/ /tmp1
2、
查看最新版本號
svnlook youngest /application/svndata/sadoc/
所有版本備份
svnadmin dump /application/svndata/sadoc/ > /tmp/fileall
只備份0-2
svnadmin dump /application/svndata/sadoc/ -r 0:2 --incremental > /tmp/fileall0-2
只備份3-4
svnadmin dump /application/svndata/sadoc/ -r 3:4 --incremental > /tmp/fileall3-4
3、新建空庫dump、dump1、dump2做還原實驗。
svnadmin create /application/svndata/dump
svnadmin create /application/svndata/dump1
svnadmin create /application/svndata/dump2
原因所有版本
svnadmin load /application/svndata/dump < /tmp/fileall
還原0:2
svnadmin load /application/svndata/dump1 < /tmp/fileall0-2
還原0:4
svnadmin load /application/svndata/dump2 < /tmp/fileall0-2
svnadmin load /application/svndata/dump2 < /tmp/fileall3-4