我有一個Subversion的工作副本,至少有一個丟失的文件(修復樹衝突時刪除了本地副本)。這很有趣,因爲該文件是版本化的,它出現在版本庫中,樹的衝突解決方案是100%本地的(它發生在更新上,之後我沒有提交),我運行了多次「svn cleanup」,但沒有一個Subversion客戶端(命令行svn和TortoiseSVN)可以檢測到工作副本已損壞。甚至還沒有恢復所有的改變文件回來。如何驗證Subversion的工作副本
我會像往常一樣修復它(在其他地方重新結帳並使用WinMerge複製更改);我實際上有一個不同的問題:
如何測試工作副本的有效性?
當然,你總是可以簽出一個新的副本,並使用文件比較工具,但...是不是有更好的方法?是否有工具來驗證相當於svnadmin verify
的工作副本?
=== UPDATE ===
我已經得到了很好的答案與技巧,以防止工作副本損壞,但我的問題是更多在尋找一種方法的線100%確保工作副本既是一致的,又與實際的存儲庫內容相關聯;在其他作品中,工作副本等效於svnadmin驗證命令。
到目前爲止,它看起來像:
Subversion不會提供這樣的工具,它有可能是SVN數據格式甚至不允許寫一個。
更新到版本是一種似乎可以找到(並修復)一些問題的技術,儘管您經常需要來回回覆舊版本,並且我認爲它只能檢測丟失的文件,如果它們已被更改在修訂範圍內。
檢出新的工作副本看起來像是唯一100%可靠的方法。
我有類似的問題 - 重命名文件夾似乎有時會引起問題,但不是每次。 *通常*,恢復將使工作副本回到有效狀態,但未版本化的項目(重命名文件夾的「副本」側)留下。但是,我想要一個有效性檢查工具。 – Steve314 2010-02-20 11:59:12
可能的問題是工作副本的狀態是有效的,而不是你認爲應該是的。例如,對於工作副本來說,排除存儲庫中的某些文件或文件夾是有效的。只是因爲一個國家混亂而不是你的意圖,並不意味着它不能合法地產生,在這種情況下,「錯誤」是不可檢測的。列出「有趣」任何東西的「工作副本狀態」工具可能會更有用。 – Steve314 2010-02-20 12:07:34
@ Steve314:工作副本的基本內容必須與存儲庫中的基本內容相同。 Subversion是一個集中的版本控制系統,所以這是一個必需的條件,它應該是可檢測的。當然,你描述的工具也會很棒(例如,當我有來自不同存儲庫的.svn dirs時,我很樂意學習),但這是一個不同的故事。 – 2010-02-20 12:24:37