SVN學習--進階
阿新 • • 發佈:2019-02-03
SVN進階應用
ls、st、log、info
svn list --列出當前目錄下處於版本控制的所有檔案(新增-v顯示更詳細資訊 --recursive 強制遞迴檔案中的資訊)
svn status --列出工作副本中的檔案狀態
svn log --檢視提交日誌
svn info --檢視工作副本及檔案的詳細資訊
原部落格地址
svn status中的狀態說明
遇到問題:svn log 後顯示 svn: E220001: 條目不可讀
解決:伺服器的許可權配置檔案conf/svnserve.conf 中設定anon-access = none 即可. 然後重啟Subversion 服務.
多版本庫解決方案
解決方案A
場景:當只有一臺伺服器當做版本庫的時候,同一個伺服器要開很多次服務,但是每一種服務對應只能一個埠號,所以當我們建立很多版本庫的同時,再啟動服務的時候也要手動分配一個埠號,svn預設埠3690
埠號知識
回顧建立版本庫: svnserve create 版本庫名稱
為其他版本庫啟動服務
svnserve -d -r 路徑1 --listen-port 3691
svnserve -d -r 路徑2 --listen-port 3692
注意:當同一個伺服器有多個版本庫,在使用checkout 後的url 要加上版本號,否則或連結預設埠號3690
killallserve –關閉所有服務
使用這種手動修改埠號的方法只適用於少量版本庫
解決方案B
啟動服務的路徑為存放各個版本庫的父級目錄版本庫
svnserve -d -r 父級目錄
只使用一個埠號一次性啟動了所有的版本庫,條件時所有版本庫要建立在一個目錄下
唯一要注意的是,當我們只用一個埠號對接多個伺服器,在checkout下有點不同
(客戶端)
svn co svn:0.0.0.0/需要的版本庫
總結
svn copy
複製:工作副本與工作副本之間的複製。。。。
在這之間需要理清楚複製從哪到哪
作副本與工作副本
(單個檔案複製)
svn copy index.html copy.html
<!--複製到copy.html新檔案中-->
(批量檔案複製)
svn copy index.html ./複製到的路徑
<!--只能複製到不同目錄檔案中,因為檔案中檔名id唯一-->
<!-- .表示當前目錄 -->
工作副本到伺服器版本庫
這種不經過本地的程式碼直接複製到版本庫中,成功後將版本號+1
svn copy index.htm svn:0.0.0.0/版本庫名稱/目標 -m "copy a file"
注意:
伺服器版本庫到工作副本
svn copy svn:0.0.0.0/版本庫名稱/目標 複製到的檔案
<!--這種操作支援跨庫操作-->
可用從其他工作副本 獲取到線上版本庫
版本庫到版本庫
繼續閱讀——>
主幹版本與分支版本
在主幹版本目錄中建立一個目錄區分主版本和分支版本
建立一個主幹版本
svn cp svn://0.0.0.0/版本庫名稱/ svn://0.0.0.0/版本庫名稱/trunk -m "setup a trunk"
建立一個分支版本
svn cp svn:0.0.0.0/版本庫名稱/版本庫名稱 svn:0.0.0.0/版本庫名稱/branch -m "create a branch"