1. 程式人生 > >VisualSVN跨版本庫遷移目錄(保留日誌)

VisualSVN跨版本庫遷移目錄(保留日誌)

參考文獻:SVN跨版本庫遷移目錄並保留提交日誌

真的非常感謝這位作者,寫得很好,簡單易懂,終於把版本庫轉移的問題解決了。

關鍵字:VisualSVN 跨版本庫遷移目錄保留日誌

  1. 整理需要遷移的目錄路徑對應表


目標:把\PROG1”整個目錄及檔案遷移到專案1\程式\PROG1”目錄中,並保留日誌

  1. 把源目錄“PROG1”匯出到一個檔案中
    1. 指令格式:svnadmin dump 版本庫源目錄 > 目標檔案
    1. 執行指令“svnadmin dump F:\SVN版本庫\PROG1 > prog1

D:\Program Files\VisualSVN Server\bin>svnadmin dumpF:\SVN版本庫\

PROG1 > prog1

解釋:

  1. 將“F:\SVN版本庫\PROG1”整個版本庫匯出至“prog1”這個檔案中;
  2. prog1”檔案存放在當前目錄,且不含副檔名;

注意:

  1. Windows下,“版本庫源目錄”必須為包含format檔案的目錄,是存放檔案的實際物理路徑,非SVN伺服器的相對路徑;
  1. 需要轉移的源目錄非根目錄的,可使用svndumpfilter指令,將實際要轉移的源目錄從剛剛生成的檔案中提取出來,並放到一個新檔案中;在目標目錄下匯入時則使用這個新生成的檔案;

例子:把APPPROG1從提取出來,可執行以下指令

svndumpfilterinclude APP <

prog1> app

這種情況,匯入時應使用“app”這個檔案,不再使用“prog1”這個檔案。

  1. 根據需要,在VisualSVN伺服器介面上建立目錄


  1. 把剛剛匯出的檔案匯入到目標目錄
    1. 指令格式:svnadmin load目標根目錄 --parent-dir 目標子目錄 < 原始檔
    2. 執行指令:svnadmin load F:\SVN版本庫\專案1 --parent-dir程式/PROG1 < prog1

D:\Program Files\VisualSVN Server\bin>svnadmin loadF:SVN版本庫\專案1--parent-dir 程式/PROG1

< prog1

解釋:將當前目錄下的“prog1”檔案匯入到“F:SVN版本庫\專案1”根目錄下的“程式/PROG1”子目錄中

到此,完成所有遷移工作。最後提醒一句:SVN是區分大小寫的!