恢复Eclipse Subversion项目连接


100

我有一个Subversion项目,正在使用Eclipse开发。我从Eclipse内部从svn存储库中进行了原始签出。几周来一切都很好,然后由于某种未知原因,Eclipse(特别是:Ganymede中的subclipse)不再认为我的项目处于svn控制之下。团队上下文菜单仅显示基本的“应用补丁” /“共享此项目”菜单选项。从外壳程序中,我仍然可以使用svn命令行工具更新项目,因此我知道svn凭据仍然有效。在同一Eclipse副本中进行颠覆的其他项目仍然可以使用。

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

Answers:


124

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

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

(也就是说,假设.svn文件仍然存在,并且可以在命令行上使用的话)。

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


9
我有同样的问题,但是这个答案对我没有帮助。Eclipse让我在Subversion中创建一个新项目。无法重新连接项目。
migu

1
确定的做这件事的方式。
pestaa

1
非常感谢您的回答,为我节省了很多时间。现在,我终于可以更新整个工作集了。
Cedric Meury 2011年

1
这对我有用(使用Eclipse Indigo 64位和Subclipse),谢谢!我只是想补充一下,“假设.svn文件仍然存在”的注释可能并不完全正确。也就是说,我很惊讶地看到,尽管我的项目仍与我的存储库相关联(正如TortoiseSVN所确认的那样),但项目目录中没有.svn目录!我一直以为每个 SVN控制的目录中都有这样一个目录,但现在我知道情况并非如此。无论如何,OP的要点是,如果目录仍在config下,则应该可以正常工作。
Rob Cranfill

1
也从事颠覆性工作...谢谢!
jaibatrik 2012年

23

我发现重新导入项目的简单方法


1
你是男人... :)我只有“ Apply Patch”选项,它解决了...为什么我没想到:)
IncrediApp 2011年

是的,重新导入似乎是最简单的:-)
user942640

我也只有“应用补丁”菜单选项。重新导入有效。某个地方必须有一个配置文件来确定这一点。回想一下,我希望我已经备份了相关的配置工作区和项目文件/文件夹,以便可以看到发生了什么变化。希望下一个阅读此解决方案的人会这样做并分享更改的内容。
Pixelstix

7

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

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

完成此操作后,当我再次尝试使用Team-> Share Project ...时,Eclipse正确地识别出我的项目已经存在于SVN中,并且它成功地恢复了连接。


为什么要共享项目?共享项目会将您的本地项目发布到svn服务器,如果您在本地不应该去svn机器,这可能会导致问题,他想做的是重新建立连接,这显然是不可能的,解决方案将会是一个新的结帐,最终,安装
subclipse

4

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

伊恩


3

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


1
我尝试了关闭并重新打开的项目,但这对我没有用。
2012年

2

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

我以前的项目是使用subclipse配置的。新的月食具有隐性。

安装subclipse帮助我重新获得了team下的svn选项!

希望它可以帮助其他人。

问候

安舒·普拉泰克


我无法在开普勒中安装subclipse。有什么办法吗?
Vivek

1

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

查看“错误”视图,该视图记录了Eclipse的各种错误(未找到类的异常等),并查看是否有任何与Subversive组件相关的行。不幸的是,我不能真正推荐一个解决方案-在我的Mac OSX平台上,足以重新安装Subversive核心元素和连接器。在我的Linux机器上(可能由于操作系统升级),我不得不完全重新安装Eclipse,因为我已经积累了太多的麻烦,无法完全对其进行研究。


1

在具有Subversive的Juno版本中,我做到了:

  • 文件/导入将弹出“导入”弹出窗口。
  • 在此处,选择“工作区”中的“常规/现有项目”。
  • 在下一个窗格中,选择根目录。然后它将显示所有子目录。默认情况下将全部选中它们。
  • 取消选择您不想要的。

然后,它将“导入”您现有的目录,该目录可以在已经位于您的工作空间目录中的位置使用。


0

我的情况也一样:.svn目录存在,但是我的项目不支持svn操作。

经过一番戳后,发现颠覆性插件在强制退出日食后消失了。

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

干杯v。

更新:我已经将eclipse切换到了一个新版本,即没有安装插件,这就是我不得不从头开始安装它的原因。


0

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


0

我可以可靠地重现此问题-通过运行“签出为Maven项目…”而不是在包含POM本身的文件夹中,而是在父目录(例如“ trunk”)上运行“签出为Maven项目…”时,会发生此问题。在这种情况下,Subclipse会毫无问题地签出项目,并将其放在带有占位符名称(例如)的工作空间目录中maven.1424425443350该目录内,它创建一个带有Maven工件名称的子目录。这使Subclipse和Subversion混淆了:正如我们所看到的,Subclipse立即忘记了该项目处于版本控制之下,并且如果您svn statusmaven.1424425443350目录中的命令行调用,它将告诉您该目录处于版本控制之下,但是所有版本控制的文件均丢失。

如果这是导致Subsclipse忘记其SVN连接的原因,则其他答案中提供的所有解决方法均无效。相反,唯一的解决方案是删除项目并再次签出,这一次确保签出是在包含POM的目录而不是在更高级别的目录上执行的。

一个更好的整体解决方案是让Subclipse拒绝在不包含POM的目录上运行“以Maven项目形式签出...”,或者通过搜索Maven项目的子目录来更好地处理试图这样做的情况。


0

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

结果,团队->共享项目...总是要求提交消息。显然,使用了与SVN 1.8.x不兼容的SVNKit1.7.x。

删除SVNKit 1.7.x之后,eclipse使用了唯一可用的正确SVNKit版本1.8.x,并且一切正常。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.