2011-12-02 202 views
1

我的老闆剛剛忽略了.vbp文件,並且顯然從進程中的存儲庫中刪除了其中的一個。在向他解釋他爲什麼需要源代碼管理中的這些文件之後,我現在負責將它放回原處。顛覆:如何恢復歷史文件

問題是我認爲在他告訴我之後他可能已經添加了它,因爲現在當我嘗試添加它時,它告訴我它已經在那裏了。但是,當我從驅動器中刪除它並進行更新時,它無法恢復。我擔心,如果我將其從存儲庫中刪除,然後添加它,它現在就會在我身上發生同樣的事情。

理想情況下,我想回滾到混亂開始之前有什麼,但不能完全找出正確的方法來做到這一點。我知道我們不能在subversion中回滾修訂版,但如果可能的話,將它恢復到原來的歷史記錄中仍然很好。

編輯:對不起,忘了提及我正在使用TortoiseSVN。我可以使用日誌歷史記錄找到該文件,並且可以檢出修訂...但我不想檢出所有文件。我只想得到一個。仍然試圖找出最好的方式來做到這一點...

我看着使用責備,但我可能必須閱讀該選項,因爲它乍一看沒有直覺上對我有意義。

回答

1

要恢復文件,您只需要退出刪除它的更改。

您可能希望從乾淨的結帳開始。可能是一個好主意。另外,聽起來你只需要在結賬時運行svn revert file.vbp(你可能已經添加了它,但沒有完成,svn status應該告訴你發生了什麼)。

首先,找到用svn log -v刪除它的修訂版。然後,要退出更改,請轉到該文件所屬的目錄並使用svn merge -c -REVISION http://server/path/file。請注意版本號爲,負號爲。最後,運行svn commit來提交恢復。

(注:這不會失去歷史當中刪除它仍將是歷史的承諾,有將只是一個新的提交恢復它SVN應該意識到其對事物的相同的文件中像svn log。)

+0

謝謝。不幸的是,我忘了提及我正在使用TortoiseSVN,並且從未運行過單一的svn命令行......並非我反對學習,而是現在不是:/ –

+0

@BrandonMoore:使用TortoiseSVN,它顯然更容易: http://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-howto-rollback.html顯然,你必須選擇文件夾,因爲你不能選擇文件。 – derobert

+0

是的,我希望只做文件,但我可能必須這樣做。謝謝。 –

1

使用svn blame在文件存在時查找。

然後,當您具有正確的修訂名稱時,請在該文件的路徑上使用svn update

+0

對不起...忘了標記爲TortoiseSVN。也許你的解決方案仍然是最好的,但我必須責怪讀書。 –

+0

無論哪種方式,只要嘗試使用命令行svn恢復這些文件,然後繼續使用TortoiseSVN。祝你好運! :) – Carsten

+0

甚至不知道如何做到這一點:)我可以看看它,但如果我沒有看到如何與龜龜。 –