1. 程式人生 > >SVN學習--進階

SVN學習--進階

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"