我有蚀和颠覆性的问题。
我正在尝试将项目的分支重新整合到后备箱中。
这些是我关注的操作:
- 切换到项目的中继版
- 我已经确保没有任何待处理的操作,进行恢复和更新,以便从"干净"工作副本开始,与TRUNK的远程副本完美同步
- 我去"团队 ->合并..."
- 我转到"重新融合"选项卡,然后选择要在行李箱中合并的分支,指向分支的"头部修订"。
- 我按确定按钮,但这是我获得的错误:
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)意外编辑中心,然后意识到您的错误。恢复行李箱,创建一个分支(使用开关,编辑和提交),切换回中继,然后尝试重新融合分支。
提示:永远不要恢复行李箱。使用替换为最新的存储库的最新替代(右键单击)上下文菜单。
我只找到了一种可靠地从这种状态恢复的方法。
- 备份您的工作区。
- 从原始工作区删除您的项目删除磁盘上的项目内容(无法撤消)。
- 创建一个替换它的新项目。
如果您成功康复,则不会使用备份,如果您犯了灾难性的错误,那只是一个安全网。
就我而言,替换项目意味着从SVN 创建一个新的项目,并使用该选项使用新项目向导(我的情况下的PYDEV项目)来完成项目。就您而言,您需要开发自己的恢复方法。不要忘记写下来。
当然,您可以选择启动一个全新的工作区。如果您选择了这种方法,请不要忘记导出您的偏好和发射器(至少),以便将它们导入新工作区。这样,您仍然具有熟悉的配置。