SVN 1.7,单个工作副本和多个客户端

时间:2013-03-13 11:12:07

标签: svn subclipse

我的工作流程在Subversion 1.6中运行良好,但在1.7中不再有效。

我的代码位于笔记本电脑(Mac)上的Linux虚拟机中。要编辑代码,我将目录通过Samba挂载到主机上,并将Eclipse与Subclipse一起使用。

使用SVN 1.6,我可以在Linux命令行上执行'svn switch',Eclipse会在刷新项目后看到更改。

使用SVN 1.7,情况不再如此。在svn切换之后,Eclipse仍然认为即使在手动刷新之后它也在使用旧分支。这不仅仅是一个视觉问题,尝试检入代码将其发送到旧的(错误的)分支。

为什么会发生这种情况并且有解决方案?

2 个答案:

答案 0 :(得分:2)

在操作系统和/或网络共享之间共享工作副本从未是推荐或支持的配置。它可能似乎与1.6一起工作,但总是有警告说它可能会随着时间的推移而不太好用。

随着工作副本格式越来越依赖于SQLite而不是普通文件,这已经变得越来越真实。

解决方案:不要这样做。将您的工作副本保留在客户本地。

答案 1 :(得分:1)

提交本身是通过Subversion API完成的,你不会告诉API在哪里“发送它”。在内部,API根据它从工作副本元数据中读取的内容来决定。所以说实话,这种情况看起来很牵强,也不太可能。你真的试图提交,或者你是按照用户界面所说的去做的?

SVN 1.7有工作副本布局,其中Eclipse外部的更改不会显示在Eclipse中。我们添加了一个显式选项(Team> Cleanup / Refresh)来处理这些场景。这将绕过Eclipse的触发器,这些触发器通常会导致刷新并迫使我们去读取SVN元数据。

在较旧的SVN版本中,由于工作副本元数据存在于每个文件夹中,因此将始终在任何元数据更新上触发正常的Ec​​lipse资源刷新。