2011-02-15 136 views
14

在重構期間,我有時必須將一個源文件拆分爲兩個或更多(例如,當類變得如此之大以至於應該拆分爲兩個類時)。在SVN中保留歷史記錄的同時拆分文件

例如,讓A爲原始文件,B1和B2爲新文件。

是否可以告訴SVN B1和B2應該「繼承」文件A的完整歷史記錄,所以當我查看B1和B2的歷史日誌時,我可以看到它們已經出現A,並將日誌是這樣的:

A    B1     B2 
- change A3  - change B1.2  - change B2.2 
- change A2  - change B1.1  - change B2.2 
- change A1  - change A3   - change A3 
       - change A2   - change A2 
       - change A1   - change A1 

我知道如何讓歷史時,我重命名文件(如討論here on SO),但據我所知,這只是保持與A相關的歷史的方式要麼B1或B2,不是兩者。

目前我在Windows上使用Tortoise SVN 1.6.12。

+3

這個問題是時間旅行的分歧時間表的比喻,不是嗎,Doc? – 2012-03-21 18:12:13

+0

@ACK_stoverflow:you got me ;-) – 2012-03-21 18:15:12

回答

22

只是使文件A的2個SVN副本,然後SVN刪除文件A.

我剛剛作出了一個快速測試一個新的回購,似乎很好地工作。

  1. 我創建的文件a.txt中有兩個班B1和B2內,並承諾文件a.txt中
  2. 我做A.TXT的SVN副本B1.txt和B1刪除B2級的聲明.TXT
  3. 我做A.TXT的另一個SVN副本B2.txt和B2.txt
  4. 刪除類B1的聲明
  5. 我SVN刪除A.TXT
  6. COMMITED一切,歷史看起來不錯。
相關問題