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


77

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

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

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

Answers:


99

我认为您需要进入“存储库浏览器”角度,右键单击当前存储库,然后将其“定位”到另一个域。


7
这在我运行Subclipse的盒子上工作得很好,而在Subversive的盒子上工作得非常相似。颠覆性的窍门原来是在存储库浏览器中修改“位置属性”。非常感谢!
布兰登·雅伯

3
Subversive无法跨协议进行重定位。从SVN + SSH转到HTTPS似乎是不可能的,因此不断构造SVN + SSH URL并为其请求凭据。Subclipse怎么样?
艾因·托夫里

3
注意,您需要使用旧的存储库打开任何现有项目,因为“ relocate”命令将仅更新打开的项目。这很重要,因为在您重定位后,要对丢失的任何已关闭项目再次运行重定位并不容易。我犯了这个错误,不得不清除所有已关闭的项目并重新结帐。
塞林2012年

2
@Ain,它与Eclipse 3.7中的Subclipse 1.6完美兼容。但是,请确保设置对远程服务器的无密码SSH访问。否则,Subclipse每次都会提示您输入密码,因为它仅依赖于本地SSH客户端。
塞林2012年

@Cerin:很好的提示,谢谢,下次我尝试它时,请尝试一下,谢谢!
艾因·托夫里

15

不要使用“ Team / switch”选项,而是改为使用“ SVN信息库浏览”透视图,并在信息库的位置属性中更改URL位置。在Indigo上像魅力一样工作-在我的情况下使用Subversive。

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

当通过“由于新的URL指向不同的存储库而无法进行重新定位获得“无法重新定位连接的项目”时,您的存储库根目录可能没有主干/标签/分支文件夹,或者在子文件夹中也包含此类文件夹。然后在高级选项卡上,禁用选项启用结构检测可能会有所帮助。

如果您收到“因为新URL指向无效的存储库而无法执行重定位(指定了错误的URL或凭据)”,那么还请确保新存储库URL中的根路径与旧URL的根匹配。(换句话说:确保/new/path上面的屏幕快照中的子文件夹与旧的URL相同。)


1
对于较新的Eclipse安装,这是正确的答案。
罗里·拉甘德

13

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

然后,右键单击项目->团队->共享->您的新SVN。

而已!


4

在Eclipse Navigator中,如果右键单击项目名称,将出现一个子菜单。在该子菜单上,选择“团队”,它将提供一些其他菜单选项。选择“ Swich to another Branch / Tag / Revision ...”,将出现一个窗口,您可以指定新的分支,也可以指定新的存储库位置。


我有幸发表评论,所以我要指出,斯特凡在下面的评论(以及卢克在上面可接受的答案)是正确的。
布兰登·雅伯

我尝试了一下,但没有成功:SVN Swtich遇到了问题。org.tigris.subversion.javahl.ClientException:svn:...与...的存储库不同
PiTheNumber 2012年


1

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

从更改http://oldserver/svn/PROJECTNAMEhttp://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

好的,但是我对此没有控制权。我以涉及我的主机文件的解决方法结束了。


1

在Eclipse中,转到窗口->透视图->打开透视图->其他-> SVN存储库浏览。点击确定

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

更改URL单击完成。

而已!


0

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


0

团队->断开连接

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

这比开关更好。

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.