颠覆性:SVN:E195016:无法与开关子树合并成工作副本



我有蚀和颠覆性的问题。

我正在尝试将项目的分支重新整合到后备箱中。

这些是我关注的操作:

  1. 切换到项目的中继版
  2. 我已经确保没有任何待处理的操作,进行恢复和更新,以便从"干净"工作副本开始,与TRUNK的远程副本完美同步
  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

预先感谢。

我不知道为什么会出现这个问题,但是我注意到,如果我们在分支之间执行某些"开关"操作,则会发生合并操作。

由于某些原因,在这种情况下,可以避免执行合并操作。

我发现的"解决方法"是在干净的中继线结帐后,在干净的中继副本上执行合并操作,而无需进行任何切换操作。

以这种方式,错误不再发生。

这不是一个实用的解决方案,但可以工作。

svn 1.8中的重新整合合并,默认情况下将自动完成。如果您的工作副本混合修订或切换路径,则无法执行自动重新整合合并。

svnkit可能与实际的apache颠覆不同。

在SVNBook中阅读有关自动合并的信息:

您的中继工作副本不能具有任何本地编辑,切换路径, 或包含修订的混合物(请参阅称为的部分 "混合革命工作副本")。虽然这些通常是最好的 无论如何合并的实践,它们都是自动的 重新整合合并。

我想我找到了两种方法来进入 e195016:无法与交换的子树 state

合并成工作副本。

1)从躯干切换到分支(带有编辑和提交),然后切换到其他分支(带有编辑和提交),然后切换到中继线,然后尝试重新融合其中一个分支。

>

提示:切勿在分支之间切换,请始终切换回分支之间的躯干。

2)意外编辑中心,然后意识到您的错误。恢复行李箱,创建一个分支(使用开关,编辑和提交),切换回中继,然后尝试重新融合分支。

提示:永远不要恢复行李箱。使用替换为最新的存储库的最新替代(右键单击)上下文菜单。

我只找到了一种可靠地从这种状态恢复的方法。

  1. 备份您的工作区。
  2. 从原始工作区删除您的项目删除磁盘上的项目内容(无法撤消)
  3. 创建一个替换它的新项目。

如果您成功康复,则不会使用备份,如果您犯了灾难性的错误,那只是一个安全网。

就我而言,替换项目意味着从SVN 创建一个新的项目,并使用该选项使用新项目向导(我的情况下的PYDEV项目)来完成项目。就您而言,您需要开发自己的恢复方法。不要忘记写下来。

当然,您可以选择启动一个全新的工作区。如果您选择了这种方法,请不要忘记导出您的偏好和发射器(至少),以便将它们导入新工作区。这样,您仍然具有熟悉的配置。

最新更新