2013-07-26 40 views
0

我用TortoiseSVN和VisualSVN使用ProjectLocker。我可以將我的修訂歷史恢復到SVN嗎?

昨晚,在試圖找出一個奇怪的問題時,我將一對文件恢復到了生產中的最後一個日期。這恰好是約3-4修訂回來。

當舊文件不能幫助解決問題時,我嘗試進行更新以返回最新版本的兩個文件。

我現在看到了(感謝「類似問題」),我應該使用更新到版本而不是還原。

問題是,我能否以某種方式恢復這些修訂?

回答

1

在恢復之前,您應該能夠恢復到修訂版本。

SVN不直接支持回滾(如烏龜稱它爲「回覆」)。相反,它需要從舊版本複製並複製新版本。

但是,這仍然留下您正在恢復的修訂版本。當你恢復這個時候,你可能需要使用peg修訂版(例如修訂版123,你將恢復爲http://mysvndomain.com/repos/foo/[email protected]

+2

在Subversion中,「revert」*確實有意義 - 但不是這裏使用的意思。 Subversion「恢復」是撤銷工作副本中未提交的更改。這裏描述的內容更好地描述爲「撤消或回滾一組修訂」。 – alroc

+1

TortoiseSVN濫用「還原」一詞。其日誌對話框還可以選擇「恢復到此修訂」並「恢復此修訂所做的更改」。第一個實際上的意思是「把你的工作副本放在這個提交之後」。第二個實際上意味着「撤消工作副本中此提交所做的更改」。 –

+0

我已經調整了答案,使這個更清晰一點。 –

1

恢復您的恢復,這些文件將像2修訂前。

1

「revert」在Subversion中有特殊含義,而不是你用它來。這裏的一個顛覆revert意味着撤消工作副本中的任何未提交的更改 - 庫狀態不會在這種情況下,觸及

更新到版本也是在這裏不適用,因爲你不能從那個狀態提交

。你最初應該做的是所謂的reverse merge。你應用一個或多個更改的合併來將存儲庫狀態轉換回它是在以前的版本(最後一次生產版本)中,而不是僅僅複製文件,然後將它們作爲新版本提交。您仍然可以在您當前的情況下執行此操作 - 反向合併您剛剛提交的更改並進行提交。這會讓你回到「最近的」。您的修訂歷史看起來有點奇怪,但並未完全破碎。