#我們主要關心的是conf和db文件,conf文件夾下是存放主配置文件和用戶、權限位置,db文件夾是存放svn轉儲後的數據。
# cd conf/
# ls
authz passwd svnserve.conf
#authz文件是設置用戶權限,passwd文件是存儲用戶及密碼,svnserve.conf是主配置文件,先配置主配置文件。
4.3 配置版本庫
# sudo vi svnserve.conf #將以下參數去掉註釋
[general]
anon-access = none #匿名訪問權限,默認read,none爲不允許訪問
auth-access = write #認證用戶權限
password-db = passwd #用戶信息存放文件,默認在版本庫/conf下面,也可以絕對路徑指定文件位置
authz-db = authz
注意:一定要注意把多餘的空格刪除,否則就會出現一些奇怪的bug
# sudo vi passwd #格式是用戶名=密碼,採用明文密碼
[users]
xiaoming = 123
zhangsan = 123
lisi = 123
# sudo viauthz
[groups] #定義組的用戶
manager = xiaoming
core_dev = zhangsan,lisi
[repos:/] #以根目錄起始的repos版本庫manager組爲讀寫權限
@manager = rw
[repos:/media] #core_dev對repos版本庫下media目錄爲讀寫權限
@core_dev = rw
4.4 啓動svn服務
# sudo svnserve -d -r /home/svn
# 查看是否啓動成功,可看的監聽3690端口
# sudo netstat -antp |grep svnserve
tcp 0 00.0.0.0:3690 0.0.0.0:* LISTEN 28967/svnserve
# 如果想關閉服務,可使用pkill svnserve
4.5 訪問svn
# 訪問repos版本庫地址
svn://192.168.1.100/repos
# 訪問repos/media目錄地址
svn://192.168.1.100/repos/media
# Windows下客戶端訪問svn服務器
客戶端下載地址:http://tortoisesvn.net/downloads.html
5. 添加開機自動啓動
在/etc/init.d/ 下一個腳本,可以命名爲startsvn.sh
svnserve -d -r /svn (這個是你的svn 目錄)
然後,修改這個文件的權限 chmod 777 startsvn.sh
然後使用 update-rc.d startsvn.sh defaults只需兩步就可以讓svn在系統啓動時啓動
這樣我們的步驟差不多就做完了
、常用svn命令
5.1 獲取當前最新修訂版本號
svnlook youngest/home/svn/repos
5.2 將服務器上代碼目錄同步到本地目錄
svn checkout svn://192.168.1.100/repos/media/svn --username zhangsan --password123
#不指定同步到本地目錄(/svn)默認是當前目錄,也可以不指定用戶名和密碼,需要手動輸入。或使用簡寫svn co"svn://..."。
5.3 把新建文件提交到svn版本庫
具體步驟:
a) cd /svn #切換到本地代碼目錄,
b) svn addfilename
#將文件加入svn管理,此時並未提交完成,另外提交文件也要在/svn目錄,否則報"svn:'..' is not a working copy"
c) svn cifilename
#添加註釋說明並提交文件,此時會用nano編輯器打開,添加註釋說明後按ctrl+x,再按y,最後回車完成提交
5.4 把修改後的文件提交到svn
svn commit -m "註釋說明" filename
5.5 更新代碼到最新版本
# 將代碼目錄所有文件更新到最新版本
svnupdate
# 將某個文件還原到某個版本
svn update -r 85filename #85是修訂版號
5.6 對代碼加鎖/解鎖
# 加鎖
svn lock -m "註釋說明" filename
# 解鎖
svn unlock filename
5.7 代碼更新衝突
如果提交時提供過期的話,說明代碼衝突,需先svn update filename,再執行svnresolved filename,最後提交svn commit -m "註釋說明" filename
5.8 查看日誌
svn log filename
5.9 查看文件信息
svn info filename
5.10 版本庫合併
把庫1合併到庫2中:先把庫2代碼checkout到本地目錄(svn courl2),再進此目錄執行遷移(svn merge url1)即可
6、備份方式
6.1 svnadmindump是官方推薦的備份方式,適用於量小(100G左右)版本庫備份,可增量備份,備份恢復較慢。
6.2 svnadminhotcopy是全量熱拷貝的工具,因此磁盤佔用多,適用於量大(100G以上)版本庫備份,但不能達到增量備份效果,備份恢復快。
6.3svnsync是一種實時備份方式,將數據完全複製到另一臺版本庫,當這臺機器故障,可迅速切換到備份那臺。
7、備份與恢復
7.1 svnadmin dump備份
# 完整備份
svnadmin dump /home/svn/repos >YYmmdd_fully_backup.svn
# 完整壓縮備份
svnadmin dump /home/svn/repos | gzip >YYmmdd_fully_backup.gz
# 備份恢復
svnadmin load /home/svn/repos <YYmmdd_fully_backup.svn
zcat YYmmdd_fully_backup.gz | svnadmin loadrepos
### 增量備份 ###
# 先完整備份
svnadmin dump /home/svn/repos -r 0:100 >YYmmdd_incremental_backup.svn
# 再增量備份
svnadmin dump /home/svn/repos -r 101:200--incremental > YYmmdd_incremental_backup.svn
7.2 svnadmin hotcopy備份
# 備份
svnadmin hotcopy /home/svn/reposYYmmdd_fully_backup --clean-logs
# 恢復
svnadmin hotcopy YYmmdd_fully_backup/home/svn/repos
參考:http://www.linuxidc.com/Linux/2015-05/117735.htm