步驟
我有一個SVN repository,位址在svn:///D:/svn/repository/hello。
Check out到一個工作目錄(資料夾)名為hello_work,在資料夾上點擊右鍵選單中選擇"TortoiseSVN| Show log"。
要刪除的是在第五個版本時,所刪除的檔案GoogleAppEngine-1.4.1.msi。
- 首先需要取得檔案路徑,參考下圖紅色框選處:
指令需下svn log -v "GoogleAppEngine-1.4.1.msi"
- 取得檔案路徑為/GoogleAppEngine-1.4.1.msi
- 把整個SVN repository lock住,以防在接下來的步驟中有人對SVN repository作修改。
- 導出舊庫中的所有版本svnadmin dump d:/svn/repository/hello > old.dmp
- 對導出的舊庫作過濾,去除要刪除的文件路徑。type old.dmp | svndumpfilter exclude "/GoogleAppEngine-1.4.1.msi" > new.dmp
- 重新建一個新的庫。在D槽下建立一個資料夾newsvn,在資料夾上點擊右鍵選單中選擇"TortoiseSVN| Create Repository Here"。指令需下svnadmin create D:/newsvn
- 將過濾後導出的檔案(new.dmp),導入新的庫。svnadmin load D:/newsvn < new.dmp
hello repository、new.dmp、old.dmp、newsvn reposity儘量在同一個槽作操作,如刪除的檔案很大,花費的時間才不會過長。
svnadmin load SVN_REPOSITORY_PATH
- 輸出下列訊息表示load完成
<<< Started new transaction, based on original revision 1 * Add path : temp.txt ... 完成. ------- Committed revision 1 >>>
- 輸出下列訊息表示該svn repository path不存在
svnadmin: 無法開啟檔案 'd:\svn\repository\hello\format': 系統找不到指定的路徑
。 - 輸出下列訊息表示load失敗
<<< Started new transaction, based on original revision 1
* 新增路徑 : 新增文字文件.txt ...svnadmin: 檔案已存在: 檔案系統 'd:\svn\r
epository\hello\db', 修訂版 '7-8', 路徑 '新增文字文件.txt'
沒有留言:
張貼留言