我可以从 Eclipse 切换 SVN 存储库吗?

Posted

技术标签:

【中文标题】我可以从 Eclipse 切换 SVN 存储库吗?【英文标题】:Can I switch SVN repositories from Eclipse? 【发布时间】:2010-10-15 08:11:31 【问题描述】:

我正在将我的 Subversion 存储库从一台机器移动到另一台机器。我在各种机器上都有一些零散的工作副本,我发现我可以使用以下命令轻松地将工作副本从旧服务器切换到新服务器:

svn --relocate svn://oldServer/repo svn://newServer/repo

但是,在我的一台机器上,我使用带有 Subclipse 的 Eclipse,我不喜欢在我的 Eclipse 项目中使用命令行 SVN。我的问题是是否可以使用 Subclipse 或 Subversive 从 Eclipse 中切换 SVN 存储库。

【问题讨论】:

【参考方案1】:

我认为您需要进入“存储库浏览器”透视图,在此处右键单击当前存储库并将其“重新定位”到另一个域。

【讨论】:

这在我运行 Subclipse 的机器上完美运行,并且在使用 Subversive 的机器上运行非常相似。 Subversive 的技巧原来是在存储库浏览器中修改“位置属性”。非常感谢! 颠覆性不能跨协议重定位。从 SVN+SSH 转到 HTTPS 似乎是不可能的,继续构建 SVN+SSH URL 并为其请求凭据。 Subclipse 怎么样? 注意,您需要使用旧存储库打开任何现有项目,因为“重新定位”命令只会更新打开的项目。这很重要,因为在您重新定位之后,在您错过的任何已关闭项目上再次运行重新定位并不容易。我犯了这个错误,不得不清除我关闭的项目并重新结帐。 @Ain,它在 Eclipse 3.7 中使用 Subclipse 1.6 对我来说完美无缺。但是,请务必设置对远程服务器的无密码 SSH 访问。否则,Subclipse 每次都会提示您输入密码,因为它仅依赖于本地 SSH 客户端。 @Cerin:很好的提示,谢谢,下次我会试一试,谢谢!【参考方案2】:

不要使用“团队/切换”选项,而是更改为“SVN 存储库探索”透视图并在存储库的位置属性中更改 URL 位置。就像 Indigo 上的魅力一样——在我的例子中使用 Subversive。

使用 Subversive 时,这将显示警告“附加的项目将被重新定位,因为存储库根 URL 与之前输入的不同”,这正是您想要的。在执行此操作之前,请务必打开所有要重定位的项目。

当得到 “无法重新定位连接的项目”“无法执行重新定位,因为新 URL 引用了不同的存储库” 那么您的存储库根目录可能没有主干/tags/branches 文件夹,或者在子文件夹中也有这样的文件夹。然后在“高级”选项卡上,禁用“启用结构检测”选项可能会有所帮助。

如果您得到 “无法执行重定位,因为新 URL 引用了无效的存储库(指定的 URL 或凭据不正确)”,那么还要确保新存储库 URL 中的根路径匹配旧 URL 的根。 (换句话说:确保上面屏幕截图中的/new/path 与旧网址具有相同的子文件夹。)

【讨论】:

这是较新 Eclipse 安装的正确答案。【参考方案3】:

只需右键单击项目->团队->断开连接。

然后再右击项目->团队->分享->到你的新SVN。

就是这样!

【讨论】:

【参考方案4】:

在 Eclipse Navigator 中,如果您右键单击项目名称,则会出现一个子菜单。在该子菜单上选择 Team,它将提供一些额外的菜单选项。选择“Swich to another Branch/Tag/Revision ...”,将出现一个窗口,允许您指定新分支或在您的情况下指定新存储库位置。

【讨论】:

我有权发表评论,所以我会指出 Stefan 下面的评论(以及 Luke 上面接受的答案)是正确的。 我试过了,但没有成功:SVN Swtich 遇到了问题。 org.tigris.subversion.javahl.ClientException: svn: ... is not the same repository as ...【参考方案5】:

您可以执行以下操作:

转到项目资源管理器视图 -> 右键单击​​您的项目 -> 团队 -> 切换...现在选择新 URL。

就是这样!

【讨论】:

这不起作用,因为主机名不同,它会抱怨说找不到层次结构【参考方案6】:

我无法从日食中重新定位。我在同一个存储库的不同分支和标签上有不同的项目(只读,仅用于比较不同版本)。当我们的 svn 服务器的 ip 改变时,我可以通过 TortoiseSVN 而不是从 Subclipse 重新定位。

http://oldserver/svn/PROJECTNAME 更改为http://newserver/svn/PROJECTNAME 我明白了:

org.apache.subversion.javahl.CientException: Invalid operation on the current working directory
svn: Cannot relocate 'E:\…\workspaces\PROJECTNAME\tags\modulename\2.4.007\base' as it is not the root of a working copy; try relocating 'E:\…\workspaces\PROJECTNAME\tags\modulename\2.4.007' instead

好的,但我无法控制。我以涉及我的主机文件的解决方法结束。

【讨论】:

【参考方案7】:

在 Eclipse 中,转到 Window -> Perspective -> Open Perspective -> Other -> SVN Repository Exploring。点击确定

然后右键单击要更改的存储库 -> 位置属性。

更改网址点击完成。

就是这样!

【讨论】:

【参考方案8】:

您可以只交换 DNS 中的服务器名称;这可能比切换所有工作副本更容易。

【讨论】:

【参考方案9】:

团队 -> 断开连接

团队 -> 分享 -> 到您的新 SVN

这是比 switch 更好的解决方案。

【讨论】:

以上是关于我可以从 Eclipse 切换 SVN 存储库吗?的主要内容,如果未能解决你的问题,请参考以下文章

eclipse版本管理工具svn切换git

ECLIPSE下SVN的创建分支/合并/切换使用

Subclipse svn:忽略

删除Eclipse中的SVN账号信息-SVN切换用户

Eclipse下svn的创建分支/合并/切换使用

如何清除Eclipse中的SVN账号信息 | SVN 如何切换用户