2012-06-25 46 views
1

如何返回顛覆中文件的先前版本?這可能是第二次最正常的後向操作,所以它應該很容易,爲什麼它沒有明確記錄?我已經恢復了,我需要回去更多。現在,如果我回到規範修訂版,它與回到之前版本的文件是不一樣的,因爲只要返回修訂版可能是其他修訂版,而不是該文件的最後修改,並且該文件可能保持不變。你知道我在找什麼命令嗎?返回顛覆中文件的前一版本

+1

無論是以前的版本是一個你想要的,或者它不是;取消自上一次修訂以來的更改應該完全按照您的要求進行。如果不是這樣,那麼要麼你感到困惑,要麼你沒有正確地傳達問題。 – cdhowie

+0

也沒有。我們無法知道,如果是以前版本,那麼要求修訂版43將使文件進入修訂版25。看來這就是svn的工作原理,沒有信息或測試就不可能知道這一點。 –

+1

我明白了,所以您想要將文件恢復到上次修訂版本中文件發生更改的狀態? – cdhowie

回答

2

如果您在revision 2,並且您想將文件恢復爲revision 1

你做
svn merge -c -2 my.file
OR
svn merge -r 43:4 my.file

,然後做svn diff,這似乎顯示一個改版前(即);

只有當你做svn merge -c 1 myfile (without the -),它看起來像MYFILE回覆到REV 1

+1

如果我請求實例版本x,那麼我會得到另一個版本的舊版本文件。這並不直觀,因爲要求修訂版本43可能會將文件修改爲版本4. –

+1

您可以這樣做:svn merge -r 43:4 my.file' – Wazzzy

+0

這是我無法知道的設置的默認設置。如果我請求一個先前的修訂,然後再請求一個文件,那麼我可能會得到一些完全不同的文件修訂版本,因爲我詢問的修訂版本沒有修改文件(???) –

0
  1. svn log [文件]:檢查對該文件的最新版本是什麼。
  2. svn merge -c -NNNN [file]:從步驟一中的日誌中取出變更集編號&做一個反向合併,以恢復該修訂版的增量變化。
  3. SVN CI [文件]:更新本地製造到資源庫中的變化,使HEAD修訂還刪除δ變化