我在subversion中有一个项目,我正在使用Eclipse开发。我从Eclipse内部的svn存储库中完成了原始签出。一段时间以来一切都很好,然后由于某种未知的原因,Eclipse(特别是:Ganymede中的subclipse)不再认识到我的项目受到svn控制。团队上下文菜单仅显示基本的“应用补丁”/“共享此项目”菜单选项。从shell,我仍然可以使用svn命令行工具更新项目,所以我知道svn凭证仍然有用。在Eclipse的同一副本中的subversion下的其他项目仍然有效。
我意识到我可以删除本地副本并再次检查它,但我宁愿了解出了什么问题 - 修复问题,而不是掩盖症状。 Eclipse存储哪些项目受版本控制的知识?我查看了.project
文件和.settings
目录,但是看不到任何明显提及的svn性质或类似内容,即使在仍然正常工作的项目中也是如此。
答案 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,一切都按预期工作。