回過頭來,我們將Subversion版本庫移到一個新服務器(「B」),期望舊版本(「A」)退役。是否有可能將修訂從一個Subversion版本庫「附加」到另一個版本中?
那麼,服務器/存儲庫從來沒有真正退休,而我不知道,源控制下的許多項目之一從未得到其工作副本引用更新。換句話說,所有這個項目(以及那個項目)的變化已經被提交到舊服務器。
已經有沒有任何更新到新服務器上特定項目,所以沒有實際來源的任何衝突的機會。但是,顯然,版本號將會不一致。
是否有可能將提交到存儲庫A的更改合併到存儲庫B中?
基本上我要求的是類似的問題,How to combine two branches from two different repositories into a single repository?除了這是Subversion,不是git,並且實際上沒有任何分支,只有一組變更都被提交到trunk(在錯誤的存儲庫中)。
我不需要需要連續同步,這只是一個一次性的操作,在舊的存儲庫最終真正退休之前。而且我更願意提出有關項目的整個修訂歷史,即不是將最新版本作爲一個大規模修訂版提交。
以防萬一的問題並不完全清楚,這裏是一個視覺:
Repository A
Project X: Rev 1 -> Rev 2 -> Rev 3
Project Y: Rev 4 -> Rev 5 -> Rev 6
Repository B:
Project X: Rev 1 -> Rev 2 -> Rev 3 -> Rev 4 -> Rev 5 -> Rev 6
| | |
Expected outcome for Repository A: v v v
Project X: Rev 1 -> Rev 2 -> Rev 3 -> Rev 7 -> Rev 8 -> Rev 9
Project Y: Rev 4 -> Rev 5 -> Rev 6
我只是想對所有到B的存儲庫版本爲A的樹(並且只有部分)的一個組成部分的複製,並保持一切。如果有必要,我確定X的修訂看起來像B上的新修訂版。
解決方案?
對於任何遇到此問題的人來說:這是行得通的,但**爲svndumpfilter添加'--drop-empty-revs'選項**非常重要,如果您只是爲了部分這個版本庫,否則你最終會得到一大堆空的版本。 – Aaronaught