簡體   English   中英

顛覆性:svn:E195016:無法合並到帶有切換子樹的工作副本

[英]Subversive: svn: E195016: Cannot merge into a working copy with a switched subtree

我有Eclipse和Subversive的問題。

我正在嘗試將項目的一個分支重新集成到主干中。

這些是我正在遵循的操作:

  1. 切換到項目的主干版本
  2. 我確保沒有任何待處理的操作,執行還原和更新,以便從“干凈”的工作副本開始,與主干的遠程副本完美同步
  3. 我去“團隊 - >合並......”
  4. 我轉到“重新整合”選項卡,然后選擇要在主干內合並的分支,指向分支的“頭部修訂”。
  5. 我按下確定按鈕,但這是我獲得的錯誤:

 Merge operation failed.
Can't overwrite cause with org.tmatesoft.svn.core.SVNException: svn: E195016:
Cannot merge into a working copy with a switched subtree

我不明白什么是錯的。

我正在使用這個Eclipse和SVN配置:

Eclipse Java EE IDE for Web Developers.
Version: Neon.1 Release (4.6.1)
Build id: 20160913-0900

Subversive SVN Team Provider    4.0.3.I20161129-1700    

SVNKit 1.8.14 Implementation (Optional) 6.0.3.I20161124-1700

SVN 1.9

提前致謝。

我不確切知道為什么會出現這個問題,但我注意到如果我們在Merge操作之前在分支之間執行一些“切換”操作,就會發生這種情況。

出於某些原因,在這種情況下,可以避免執行合並操作。

我找到的“解決方法”是在SVN簽出中繼后,在干線的干凈副本上執行合並操作,而不進行任何切換操作。

這樣,錯誤就不再發生了。

這不是一個實用的解決方案,但它確實有效。

默認情況下,SVN 1.8和更新版本中的重新集成合並會自動完成 如果您的工作副本是混合版本或已切換路徑,則無法執行自動重新集成合並。

但是,SVNKit可能與實際的Apache Subversion不同。

閱讀SVNBook中的自動合並:

您的主干工作副本不能具有任何本地編輯,切換路徑或包含修訂的混合(請參閱“混合修訂工作副本”一節)。 雖然這些通常是合並的最佳實踐,但它們是自動重新集成合並所必需的。

我想我已經找到了兩種進入E195016的方法:無法合並到具有切換子樹狀態的工作副本

1)從主干切換到分支(帶編輯和提交),然后切換到不同的分支(帶編輯和提交),然后切換到主干並嘗試重新集成其中一個分支。

提示:切勿在分支之間切換,始終切換回分支之間的主干。

2)意外地在后備箱中編輯然后實現你的錯誤。 恢復中繼,創建分支(使用開關,編輯和提交),切換回主干,然后嘗試重新集成分支。

提示:永遠不要恢復行李箱。 使用(右鍵單擊)上下文菜單中的替換為最新存儲庫

我只找到了一種從這種狀態可靠恢復的方法。

  1. 備份您的工作區。
  2. 從原始工作區中刪除項目,選擇“ 刪除磁盤上的項目內容”(無法撤消)
  3. 創建一個新項目來替換它。

如果您成功恢復,則不會使用備份,如果您犯了一個災難性的錯誤,它只是一個安全網。

在我的例子中,替換項目意味着從SVN創建一個新項目並使用該選項使用新項目向導(在我的案例中為PyDev Project)完成項目。 在您的情況下,您需要開發自己的恢復方法。 別忘了寫下來。

當然,您可以選擇啟動全新的工作區。 如果您選擇此方法,請不要忘記導出首選項和啟動器(至少),以便將它們導入新工作區。 這樣你仍然有你熟悉的配置。

暫無
暫無

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

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