2009-11-24 81 views
3

我們有一個文件OLD_FILE,它有很長的歷史~100個修訂版本。是否可以在SVN中粘貼歷史記錄?

然後從存儲庫中刪除此文件。 創建了OLD_FILE內容的新文件NEW_FILE。 不要問我 - 爲什麼文件不只是改名;)

然後NEW_FILE被改變了5次。 然後使用svn將NEW_FILE重命名爲OLD_FILE。

現在,如果我們嘗試查看OLD_FILE的歷史記錄 - 我們只會看到與NEW_FILE相關的最後5個修訂版本。 但是我們沒有看到第一個OLD_FILE歷史記錄的很多修訂。

是否可以修復存儲庫以查看OLD_FILE(〜100版本)和NEW_FILE(5版本)的所有修訂版本? 我想用命令 看到所有這些版本SVN LOF -q OLD_FILE

BTW 當我打電話「顯示日誌」在TortoiseSVN我可以看到一個對話框:


轉到離線?

連接服務器時出現問題。 你想看到緩存的數據嗎?

請注意,由於歷史記錄不完整,緩存的數據可能已過時,不完整甚至誤導。

Offline for Now。永久離線。不要離線


然後我可以看到第一個OLD_FILE的所有100個修訂。

這是什麼意思?

回答

2

簡短的回答是否定的。

但是,如果日期,修訂numberss和相對爲了的NEW_FILE變化的其他變化並不顯著,你可以:

恢復舊的修訂歷史:

svn rm OLD_FILE 
svn copy -r when_old_was_gone OLD_FILE OLD_FILE 

填寫新的文件歷史記錄對NEW_FILE,apply the patchcommit的所有更改的svn diff。你必須分別進行修改,補丁和更改。

另一個解決方法是檢索所有版本的烏龜svn和過濾路徑。將選擇相同路徑的所有更改。

1

由於Subversion不知道NEW_FILEOLD_FILE是相關的,所以你的問題的答案是否定的;它不會顯示您想要的合併歷史記錄。但是如果您提供適當的peg revision,仍然可以訪問大約100箇舊版本。

例如:

svn log http://my.repos.com/path/to/[email protected]

其中42是一個修改原始OLD_FILE被刪除之前。

相關問題