恢复Eclipse subversion项目连接

时间:2008-10-03 10:21:33

标签: eclipse svn

我在subversion中有一个项目,我正在使用Eclipse开发。我从Eclipse内部的svn存储库中完成了原始签出。一段时间以来一切都很好,然后由于某种未知的原因,Eclipse(特别是:Ganymede中的subclipse)不再认识到我的项目受到svn控制。团队上下文菜单仅显示基本的“应用补丁”/“共享此项目”菜单选项。从shell,我仍然可以使用svn命令行工具更新项目,所以我知道svn凭证仍然有用。在Eclipse的同一副本中的subversion下的其他项目仍然有效。

我意识到我可以删除本地副本并再次检查它,但我宁愿了解出了什么问题 - 修复问题,而不是掩盖症状。 Eclipse存储哪些项目受版本控制的知识?我查看了.project文件和.settings目录,但是看不到任何明显提及的svn性质或类似内容,即使在仍然正常工作的项目中也是如此。

12 个答案:

答案 0 :(得分:123)

如果您使用sublipse作为SVN提供程序,我建议您执行以下操作

团队 - >共享项目通常足以连接元数据。

(也就是说,如果你可以在命令行上工作,假设.svn文件仍然存在。)

希望这有助于为什么会发生这种情况我不知道

答案 1 :(得分:22)

我找到了一种简单的方法来重新导入项目

答案 2 :(得分:7)

正在做团队 - >分享项目(根据@Paul Whelan提供的这个问题的答案)对我不起作用。 “共享项目”向导的行为就像项目尚未在SVN中一样(即使我的项目中存在.svn文件夹)。

我最终通过卸载Subversive和JavaHL加载项(通过帮助|关于Eclipse |安装详细信息按钮|已安装的软件选项卡|卸载...)解决了该问题,然后重新安装Subversive。重新启动Eclipse后出现提示时,我选择安装SVNKit连接器而不是JavaHL连接器。

完成后,当我再次尝试团队 - >分享Project ...,Eclipse正确识别我的项目已经存在于SVN中,并且它已成功恢复连接。

答案 3 :(得分:4)

附录:事实证明,当我在公司vpn外部启动Eclipse时,我的问题就出现了,工作区中的项目附加到vpn中的svn存储库。幸运的是,将Eclipse svn插件从颠覆切换到subclipse确实解决了它。

伊恩

答案 4 :(得分:3)

从eclipse开始,我关闭了项目并重新打开了解决问题的方法。所有SVN链接都返回到我工作区中的所有项目。

答案 5 :(得分:2)

我遇到了同样的问题,这个论坛帮助我找到了正确的答案。

我之前的项目是使用subclipse配置的。 新日食具有副食性。

安装subclipse帮我恢复了团队下的svn选项!

希望它可以帮助别人。

问候

Anshu Prateek

答案 6 :(得分:1)

在不知道你在哪个平台上,我不知道你的问题是否与我的相似。但是,我最近(实际上在两个不同的平台上!)有一些问题,Subversive(或者Eclipse本身,不清楚)的更新导致连接器不再加载。没有连接器,Subversive无法连接到项目。但Eclipse并不会因此而将您锁定在您的项目之外,它只会删除与SVN相关的功能。

查看Errors视图,它是Eclipse的各种错误(类未找到异常等)的日志,并查看是否存在与Subversive组件相关的任何行。不幸的是,我不能真正推荐一个解决方案 - 在我的Mac OSX平台上,重新安装Subversive核心元件和连接器就足够了。在我的Linux机器上(可能是由于操作系统升级)我不得不完全重新安装Eclipse,因为我已经积累了太多的东西以便能够完全调查它。

答案 7 :(得分:1)

在与Subversive的Juno发行版中,我做了:

  • 文件/导入会显示导入弹出窗口。
  • 从那里,选择工作区中的常规/现有项目。
  • 在下一个窗格中,选择根目录。然后它会告诉你所有的 子目录。它们都将被默认选中。
  • 取消选择您不想要的。

然后它将“导入”您现有的目录,该目录可以就地放置在工作区目录中。

答案 8 :(得分:0)

同样在我的情况下:.svn dirs在那里,但我的项目不支持svn动作。

经过一番调查后发现,在强行退出日食后,颠覆性插件才消失。

解决方案是(重新)安装颠覆性的,现在一切都很好了。

干杯 诉

更新:我已经将eclipse切换到一个没有安装插件的新版本,这就是为什么我必须从头开始安装它。

答案 9 :(得分:0)

这对我有用: 右键单击 - > TortoiseSVN - >设置 - >图标叠加属性, 选择 Shell 作为状态缓存。单击“确定”,“刷新页面”。

答案 10 :(得分:0)

我可以可靠地重现这个问题 - 当通过运行“Check out as Maven Project ...”而不是在包含POM本身但在父目录(例如“trunk”)上的文件夹中检出某些Maven项目时会发生这种情况。在这种情况下,Subclipse会在没有任何投诉的情况下检出项目,将其放在带有占位符名称的工作区目录中,例如maven.1424425443350这个目录中,它创建了一个具有Maven工件名称的子目录。这会混淆Subclipse和Subversion:正如我们所见,Subclipse会立即忘记项目受版本控制,如果从svn status目录中的命令行调用maven.1424425443350,它会告诉它您,该目录受版本控制,但缺少所有版本控制的文件。

如果这是导致Subsclipse忘记其SVN连接的原因,那么其他答案中提供的解决方法都不会起作用。相反,唯一的解决方案是删除项目并再次检出,这次确保在包含POM而不是某个更高级别目录的目录上执行检出。

更好的整体解决方案是Subclipse拒绝在不包含POM的目录上运行“Check out as Maven Project ...”,或者更好地处理它尝试这样做的情况,无论如何通过搜索子目录Maven项目。

答案 11 :(得分:0)

我在SVN存储库版本(1.8.x)中同时使用了两个SVNKit实现(1.7.x和1.8.x)。

因此团队 - >共享项目...... 始终请求提交消息。显然,使用的SVNKit 1.7.x与SVN 1.8.x不兼容。

删除SVNKit 1.7.x之后,eclipse使用了唯一可用的正确SVNKit版本1.8.x,一切都按预期工作。