我有以下问题:
我使用的是安装了 Subclipe SVN 插件的 Eclipse。当我在 Eclipse 之外更新源代码(例如svn update
在工作副本中执行)并在 Eclipse 中“刷新”时,所有源代码似乎都不再受版本控制。它们都带有问号和“添加到版本控制...”选项。当我尝试执行更新或其他一些颠覆操作时,我收到以下错误消息:
org.tigris.subversion.javahl.ClientException: svn: '/home/tim/workspace/myproject' is not a working copy
svn: Cannot read from '/home/tim/workspace/myproject/.svn/format': /home/tim/workspace/myproject/.svn/format (No such file or directory)
org.tigris.subversion.javahl.ClientException: svn: '/home/tim/workspace/myproject' is not a working copy
svn: Cannot read from '/home/tim/workspace/myproject/.svn/format': /home/tim/workspace/myproject/.svn/format (No such file or directory)
当我断开项目并再次共享时,一切恢复正常。我猜这可能是集成的 Subversion SVN lib 和 svn-command 版本之间的版本冲突,对吗?
所以我的问题是:我怎样才能让它恢复正常工作?
版本:
Eclipse 3.5.1 Subclipse 1.4.8 Subversion 客户端适配器 1.5.3 Subversion 本机库适配器 (JavaHL) 1.5.7 SVNKit 客户端适配器 1.5.6.1 SVNKit 库 1.2.3.5521
svn,版本 1.6.5 (r38866) 2009 年 8 月 31 日,18:42:02
最近更新至 Ubuntu 9.10 Karmic
编辑:
刚刚检查了另一个工作区。当我执行 时svn update
,名为“format”的文件被删除。
解决了:
作为乔尔指出,问题是版本冲突。我已经尝试在 Eclipse 中查找更新,但没有成功,因为 SubClipse 会更改每个小版本的更新站点。正如您所读到的这里:
将 Subclipse 升级到新的 1.x 到 1.y 版本的推荐步骤是遵循首次安装说明。将新版本流的更新站点 URL 输入 Eclipse 更新管理器,这将在现有安装之上安装新版本。此过程比要求 Eclipse 检查更新更可靠。
答案1
是的,您需要升级您的 subclipse 插件和 svn 连接器,无论是 javahl (1.6.x) 还是 svnkit (1.3.x),以便它们匹配支持您安装的 subversion (1.6.5)。请参阅项目现场如果您还没有升级站点 URL,请获取这些 URL。
或者降级你的 ubuntu subversion 包,但我不建议这样做。
答案2
当时的情况是,我正在处理一个文件,但其他人在 SVN 版本控制下删除了它。这没什么,因为我只是表面上修改了该文件中的单元测试。
在 eclipse 下我进行了同步和更新,删除了有问题的文件。
随后在 eclipse 下使用 SVN 时,版本控制中不再存在相关文件。这很好,因为它似乎不再存在于我的文件系统中。那么它为什么会抱怨呢?
该文件不在我的文件系统上,但是“svn 更新“一直抱怨该文件不在版本控制之下:
svn update
svn: 'blah blah blah...' is not under version control
解决这个问题(这是一个类似 nfs 的文件系统)的方法是刷新文件系统缓冲区,然后执行 svn update。更新确实成功了:
sync
svn update
同步刷新文件系统缓冲区的问题已解决。