VisualsvnServer跨版本庫遷移目錄且保留日誌
阿新 • • 發佈:2020-07-10
title: VisualsvnServer跨版本庫遷移目錄且保留日誌
categories: 實用教程
date: 2019-10-16 10:30:33
tags: [SVN,Visualsvn Server,程式設計開發,實用教程]
thumbnail: https://user-images.githubusercontent.com/24422140/74628026-7860bb80-518f-11ea-834d-f36ec373377a.jpg
有這樣一個問題,
現在有一份程式碼code在版本庫Nine.net/Nine.Basic/下,現在想把它移動到JamBlog/source/下
環境
├─VisualsvnServer │ ├─Nine.net │ │ │─Nine.Basic │ │ └─xxxx │ ├─JamBlog │ │ └─source
需要達到的目的
1. 將程式碼移動到新的版本庫
2. 將原始的提交記錄保留
本來打算用svn move來做的,後來發現因為是不同的版本庫,所以這個想法走不通
一下以Windows為例,使用的是windows10
主要分為幾個步驟:
I 進入VisualSVN Server,服務端,遷移命令都是server端執行
II 匯出需要遷移的程式碼庫
III 過濾匯出程式碼庫中需要的程式碼
IV 匯入過濾後的程式碼進入新的程式碼庫
實現
I 進入VisualSVN Server安裝目錄,
注意,svn命令是在svn client端執行的,svnadmin svnserver svndumpfilter都是在svn server端執行的
命令:
cd C:\Program Files\VisualSVN Server\bin
II 匯出需要遷移的程式碼庫
命令:
指令格式:svnadmin dump 版本庫源目錄 > 目標檔案 svnadmin dump D:\同步資料夾\OneDrive\Repositories\Nine.net > Nine.netBack 命令解析: 將“D:\同步資料夾\OneDrive\Repositories\Nine.net”整個版本庫匯出至“Nine.netBack”這個檔案中;“prog1”檔案存放在當前目錄,且不含副檔名; 注意: Windows下,“版本庫源目錄”必須為包含format檔案的目錄,是存放檔案的實際物理路徑,非SVN伺服器的相對路徑;
III 過濾匯出程式碼庫中需要的程式碼
如果需要轉移的源目錄非根目錄的,可使用svndumpfilter指令,將實際要轉移的源目錄從剛剛生成的檔案中提取出來,並放到一個新檔案中;在目標目錄下匯入時則使用這個新生成的檔案;否則轉移目錄就是根目錄則跳過這一步
svndumpfilter include Nine.Basic <Nine.netBack> Nine.netBack2
命令解析
將Nine.net中的Nine.Basic過濾出來,svndumpfilter include表示只保留制定的目錄和檔案,這句命令中指定的目錄和檔案就是Nine.Basic
注意:
此時過濾後生成了新的檔案Nine.netBack2,執行最後匯入的時候要注意別匯入了整個版本庫的原檔案
IV 匯入過濾後的程式碼進入新的程式碼庫
1.
svnadmin load D:\同步資料夾\OneDrive\Repositories\JamBlog < Nine.netBack2
2.
svnadmin load D:\同步資料夾\OneDrive\Repositories\JamBlog --parent-dir source < Nine.netBack2
命令解析:
兩個命令二選一,本文章中需要匯入到source目錄,則選擇第二個命令
1.將“Nine.netBack2”整個版本庫匯入至“D:\同步資料夾\OneDrive\Repositories\JamBlog” JamBlog” 這個版本庫的根目錄下 ;
2.將“Nine.netBack2”整個版本庫匯入至“D:\同步資料夾\OneDrive\Repositories\JamBlog” JamBlog” 這個版本庫的source目錄下 ;
3.--parent-dir source 匯入到 source 目錄,此為版本庫下的目錄,若果是source下的xxx目錄
則需要在此更改目錄--parent-dir source/xxx,而不是在前面版本庫處增加子級目錄
注意:
匯入到指定目錄的時候需要先進行手動建立該目錄,例如這裡是匯入到source目錄,則我們需要先建立source目錄
***svn中區分大小寫,svn中區分大小寫,svn中區分大小寫
至此成功把程式碼庫成功跨版本版本庫遷移,且保留相關的提交記錄
參考文章:
https://blog.csdn.net/helenfish/article/details/9984555
https://blog.csdn.net/tianshijianbing1989/article/details/41980675