还原Eclipse Subversion项目连接
我有一个颠覆项目,我正在开发使用Eclipse。 我从Eclipse内部的svn仓库中进行了原始签出。 所有这一切好几个星期,然后由于某种未知的原因,Eclipse(特别是:在Ganymede subclipse)不再承认我的项目是在svn控制之下。 团队上下文菜单只显示基本的“应用补丁”/“共享这个项目”菜单选项。 从shell中,我仍然可以使用svn命令行工具更新项目,所以我知道svn凭证仍然可以工作。 在同一个Eclipse副本下的其他项目仍然有效。
我意识到,我可以删除本地副本,并再次检查出来,但我宁愿明白出了什么问题 – 解决问题,而不是掩盖症状。 Eclipse在哪里存储了哪些项目受版本控制的知识? 我查看了.project
文件和.settings
目录,但是看不到任何明显提及的svn nature或类似的东西,即使在仍然正常工作的项目中。
如果您使用sublipse作为您的SVN提供商,我build议您执行以下操作
团队 – >共享项目通常足以连接元数据。
(也就是说,假设.svn文件仍然存在,如果您可以在命令行上工作,那么它们似乎就是这样)。
希望这有助于为什么会发生,我不知道
我发现一个简单的方法只是重新导入项目
只是做团队 – >分享项目(根据@Paul Whelan提供的这个问题的答案)不适合我。 “共享项目”向导的作用就像项目还没有在SVN中(尽pipe我的项目中存在.svn文件夹)。
我最终通过卸载Subversive和JavaHL插件(通过帮助|关于Eclipse |安装详细信息button|安装的软件选项卡|卸载…),然后重新安装Subversive来解决问题。 当重新启动Eclipse后出现提示时,我select安装SVNKit连接器而不是JavaHL连接器。
完成之后,当我再次尝试Team – > Share Project …时,Eclipse正确地识别出我的项目已经存在于SVN中,并且成功地恢复了连接。
附录:事实certificate,当我在公司vpn之外启动Eclipse时,出现了问题,工作区中的项目连接到vpn内的svn存储库。 幸运的是,将Eclipse svn插件从subversion转换到subclipse确实解决了这个问题。
伊恩
从月食,我closures了项目,并重新开放,解决了问题。 所有通过SVN链接都返回到我的工作区中的所有项目。
我有同样的问题,这个论坛帮助我find正确的答案。
我之前的项目是使用subclipseconfiguration的。 新的日食已subvesive。
安装subclipse帮助我找回团队下的svn选项!
希望它可以帮助别人。
问候
安舒Prateek
不知道你的平台是什么,我不知道你的问题是否与我的相似。 然而,我最近(实际上在两个不同的平台!)有一个问题,更新Subversive(或者也许Eclipse本身,不清楚)导致连接器不再加载。 没有连接器,Subversive无法连接到项目。 但是Eclipse不会把你锁在你的项目之外,它只会删除与SVN相关的function。
查看Errors视图,它是Eclipse各种错误(类未发现的exception等)的日志,查看是否有与Subversive组件相关的任何行。 不幸的是,我不能真正推荐一个解决scheme – 在我的Mac OSX平台上,重新安装Subversive核心元素和连接器就足够了。 在我的Linux机器上(可能是由于操作系统升级),我不得不彻底重新安装Eclipse,因为我已经积累了太多的东西来完全调查它。
在与Subversive的Juno版本中,我做了:
- 文件/导入将popup“导入”popup窗口。
- 从那里,select一般/现有项目到工作区。
- 在下一个窗格中,select根目录。 然后它会显示你所有的子目录。 他们都将被默认选中。
- 取消select你不想要的。
然后它将“导入”你现有的目录,这个目录可以就地使用,它们已经在你的工作区目录中。
同样在我的情况:.svn dirs在那里,但我的项目不支持svn操作。
捅了一下之后,事实certificate,颠覆性的插件在一次强迫戒烟后就消失了。
解决scheme是(重新)安装颠覆,现在一切都很好。
干杯诉
更新:我已经切换到一个新版本,只是没有安装插件,这就是为什么我不得不从头安装它的原因。
这工作对我来说:右键单击 – > TortoiseSVN – >设置 – >图标覆盖属性,selectshell作为状态caching。 点击确定,刷新页面。
我可以可靠地重现这个问题 – 它通过运行“签出Maven项目…”检查某些Maven项目时不是在包含POM本身的文件夹上,而是在父目录(如“trunk”)上。 在这种情况下,Subclipse检出项目没有任何抱怨,把它放在带有占位符名称(如maven.1424425443350
的工作空间目录中。 在这个目录下,它创build一个名为Maven工件的子目录。 这使Subclipse和Subversion都感到困惑:正如我们所看到的,Subclipse会立刻忘记这个项目是否受版本控制,如果你从maven.1424425443350
目录的命令行调用svn status
,它会告诉你这个目录是在版本控制下,但所有版本控制的文件都丢失了。
如果这是导致Subsclipse忘记其SVN连接的其他解决scheme中提供的解决方法都不会工作。 相反,唯一的解决方法是删除项目并再次检出,这次确保在包含POM的目录上执行签出,而不是在某个更高级目录下执行。
一个更好的整体解决scheme是Subclipse拒绝在不包含POM的目录上运行“Check out as Maven Project …”,否则为了更好地处理通过searchMaven项目的子目录来处理它的情况。
我在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,并按预期工作。