簡體   English   中英

無法提交到 svn,因為工作副本總是過時的

[英]can't commit to svn because working copy is always out of date

我正在嘗試提交一些工作,但 svn 總是失敗並告訴我我修改的文件已過期。 我嘗試先更新,這不起作用。 清理不起作用。 如果我恢復文件,復制我的更改並嘗試,它仍然失敗。 它也不僅僅是一個特定的文件,如果我將整個文件恢復到以前的版本,並修改任何文件,這個問題仍然會發生。

我沒有想法。 有人有什么嗎?

謝謝。

嘗試創建一個新的結帳,然后將您的更改復制到它。 我在 TortoiseSVN 上也遇到了一些莫名其妙的問題,這是唯一有幫助的。

如果您可以更新文件,則工作副本似乎可以正常工作。

你是更新目錄還是只更新文件? 我遇到過 svn 無法提交的情況,因為存儲庫中的目錄屬性發生了變化。 目錄的更新解決了這個問題。

另一種嘗試是使用svn cleanup

新結帳是最后的手段。

這是我見過的一個常見場景,讓很多人頭疼。 您可能處於這種狀態:

  1. 工作副本處於損壞狀態。 SVN 抱怨 'foo' 目錄下的文件 'bar' 導致問題。
  2. 開發人員制作 foo 目錄的備份副本。
  3. 開發人員從工作副本中刪除 foo 目錄。
  4. 開發人員執行 svn 更新,恢復 foo 和 bar 並且 svn 很高興。
  5. 開發人員將 foo 的備份副本復制回工作副本並且 svn 不再高興並且不再能夠更新和/或提交

這里的致命錯誤是當開發人員備份 dir 'foo' 時,他們還備份了嵌套在 foo 中的所有隱藏的“.svn”目錄。

因此,解決方案(以我的經驗)是使用 tortoise svn 的“導出”功能來制作 foo 的備份副本。 Tortoise svn Export 將創建一個沒有任何 svn 元數據(.svn 目錄)的目錄結構副本。 這樣,一旦您回到第 3 步並且 svn 滿意,當您將備份復制回您的工作副本目錄時,svn 應該能夠正確捕獲更改。

再說一次,如果您正在創建備份副本的只是一個文件,那么這將無濟於事。

我在重命名 java 包(svn 的目錄)時遇到了這個錯誤。

我通過在刪除的目錄上執行“覆蓋和更新”來解決它(在我的項目中得到了空目錄)。 然后提交包含文件的新目錄。 之后再次刪除項目中的重命名並再次提交。

對我來說,此過程有效:在單個文件上,我已恢復到該文件的舊版本。 當我想提交該項目時,我收到消息說此特定文件已過期且未提交。

應該做的是復制文件的內容,並回到這個文件的最新svn版本。

完成后,將您保存的內容復制到文件中,然后提交。 那對我有用。

如果您使用的是 Eclipse,請右鍵單擊項目並更新版本.. 然后在下拉列表中選擇工作副本,選擇通知您合並沖突的選項。 有關更多信息,請參閱圖像。 在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM