
我在兩台不同的電腦(Mac)上有相同儲存庫的工作副本。有一個有問題的文件(假設SomeFile.m
)在兩個工作副本中都顯示位於 r703,沒有進行本地修改。兩邊都執行svn update SomeFile.m
不會產生任何更新 - 它認為它與存儲庫完全是最新的。
但是,這兩個文件是不同的。它們具有不同的校驗和,並且 diff 顯示對程式碼很重要的差異。文件在其中一個工作副本中是正確的,但在另一個工作副本中則不正確。
首先,如何強制將不正確的檔案替換為儲存庫中的檔案?
其次,這個文件最初是如何進入這種狀態的?透過不正確的衝突解決或類似的方式?
答案1
如果一個檔案版本是正確的,但您懷疑儲存庫中的版本不正確,請參閱如何強制 subversion 提交未更改的文件?
如果您想強制從儲存庫中取得文件,請參閱強制 svn checkout 指令覆蓋目前文件。
否則,只需修改其中一個文件,將其作為新修訂版儲存到儲存庫,然後在另一台電腦上重新簽出,如上所述。
答案2
我發現“強制”檢出/更新特定文件的最簡單方法是刪除工作副本中的該文件 - 文件系統刪除,不是 svn-delete
- 並執行工作副本的更新。該檔案將使用儲存庫中的版本進行復原。
文件進入這種狀態的一種方式是進行了一些未被注意到的本地修改。如果沒有解決衝突,SVN 不會提交文件,文件也不會更新。