Ubuntu 14.04快速搭建SVN服務器及日常使用


1、介紹
  Subversion是一個自由,開源的版本控制系統,這個版本庫就像一個普通的文件服務器,不同的是,它可以記錄每一次文件和目錄的修改情況。這樣就可以很方面恢復到以前的版本,並可以查看數據更改細節。目前,Subversion已成為主流的開源代碼版本管理軟件之一,簡稱SVN。
2、SVN相關命令了解
  svn:命令行客戶端
  svnadmin:用來創建、調整或修復版本庫的工具
  svnserve:svn服務程序
  svndumpfilter:過濾svn版本庫轉儲數據流的工具
  svnsync:svn數據同步工具,實現另外存一份相同的
  svnlook:用來查看辦本科中不同的修訂版和事務
3、兩種運行模式
  3.1 利用svnserve作為獨立服務運行,通過svn協議訪問

  3.2 借助mod_dev_svn模塊,由apache服務運行(Web/DAV),通過http或https協議訪問。想了解此運行模式可以參考着篇:http://www.linuxidc.com/Linux/2013-12/94315.htm

4、安裝與部署
對於Ubuntu來說,裝個SVN是件很容易的事,Ubuntu 14.04可以直接通過apt軟件包管理安裝。
  4.1 直接安裝
  # sudo apt-get install subversion
  4.1 創建版本庫
  # sudo mkdir /home/svn  
  # sudo svnadmin create /home/svn/repos
  4.2 了解版本庫
  # 進入版本庫查看生成的相關文件
  # cd /home/svn/repos/ 
  # ls
  conf  db  format  hooks  locks  README.txt
  # 我們主要關心的是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

  # sudo vi passwd    #格式是用戶名=密碼,采用明文密碼 
  [users] 
  xiaoming = 123 
  zhangsan = 123 
  lisi = 123

    # sudo vi authz  
  [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      0 0.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
  連接方式:安裝客戶端后 --> 右擊桌面 --> 點TortoiseSVN --> 選擇Repo-breowser --> 輸入URL(svn://192.168.1.100/repos)--> 輸入manager組的xiaoming用戶和密碼登錄 --> 登錄后右擊即可上傳和刪除文件
 
5、常用svn命令
  5.1 獲取當前最新修訂版本號
  svnlook youngest /home/svn/repos 
  5.2 將服務器上代碼目錄同步到本地目錄
  svn checkout svn://192.168.1.100/repos/media /svn --username zhangsan --password 123  
  #不指定同步到本地目錄(/svn)默認是當前目錄,也可以不指定用戶名和密碼,需要手動輸入。或使用簡寫svn co "svn://..."。
  5.3 把新建文件提交到svn版本庫
  具體步驟:
  a) cd /svn    #切換到本地代碼目錄,
  b) svn add filename  
  #將文件加入svn管理,此時並未提交完成,另外提交文件也要在/svn目錄,否則報"svn: '..' is not a working copy"
  c) svn ci filename  
  #添加注釋說明並提交文件,此時會用nano編輯器打開,添加注釋說明后按ctrl+x,再按y,最后回車完成提交
  5.4 把修改后的文件提交到svn
  svn commit -m "注釋說明" filename
  5.5 更新代碼到最新版本
  # 將代碼目錄所有文件更新到最新版本
  svn update  
  # 將某個文件還原到某個版本
  svn update -r 85 filename #85是修訂版號
  5.6 對代碼加鎖/解鎖
  # 加鎖
  svn lock -m "注釋說明" filename
  # 解鎖
  svn unlock filename
  5.7 代碼更新沖突
  如果提交時提供過期的話,說明代碼沖突,需先svn update filename,再執行svn resolved filename,最后提交svn commit -m "注釋說明" filename
  5.8 查看日志
  svn log filename
  5.9 查看文件信息
  svn info filename
  5.10 版本庫合並
  把庫1合並到庫2中:先把庫2代碼checkout到本地目錄(svn co url2),再進此目錄執行遷移(svn merge url1)即可
6、備份方式
  6.1 svnadmin dump是官方推薦的備份方式,適用於量小(100G左右)版本庫備份,可增量備份,備份恢復較慢。
  6.2 svnadmin hotcopy是全量熱拷貝的工具,因此磁盤占用多,適用於量大(100G以上)版本庫備份,但不能達到增量備份效果,備份恢復快。
  6.3 svnsync是一種實時備份方式,將數據完全復制到另一台版本庫,當這台機器故障,可迅速切換到備份那台。
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 load repos
  ### 增量備份 ###
  # 先完整備份
  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/repos YYmmdd_fully_backup --clean-logs
  # 恢復
  svnadmin hotcopy YYmmdd_fully_backup /home/svn/repos

Ubuntu 14.04 下搭建SVN服務器 svn://  http://www.linuxidc.com/Linux/2015-01/111956.htm

CentOS 6.2 SVN搭建 (YUM安裝) http://www.linuxidc.com/Linux/2013-10/91903.htm

CentOS 6.5部署Apache+SVN  http://www.linuxidc.com/Linux/2013-12/94315.htm

Apache+SVN搭建SVN服務器 http://www.linuxidc.com/Linux/2013-03/81379.htm

Windows下SVN服務器搭建和使用 + 客戶端重新設置密碼 http://www.linuxidc.com/Linux/2013-05/85189p5.htm

Ubuntu Server 12.04 安裝 SVN 並遷移 Virtual SVN數據 http://www.linuxidc.com/Linux/2013-05/84695.htm

Ubuntu Server搭建svn服務以及遷移方法 http://www.linuxidc.com/Linux/2013-05/84693.htm


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM