如何在NetBeans中切换Subversion存储库?

时间:2012-06-03 19:55:43

标签: java svn version-control netbeans

我一直在riouxsvn.com上使用NetBeans作为项目并托管Subversion存储库,但最近服务器刚刚停止运行。由于服务器已关闭,我无法使用从URL导入功能将其导入到assembla中。所以现在我需要在assembla.com的新存储库中检查代码,但是使用菜单选项 Team > 重新定位给了我以下错误:

  

org.tigris.subversion.javahl.ClientException:svn:'https://subversion.assembla.com/svn/opmtoolset'的存储库有uuid'36c7bd81-9045-4dfa-9d2c-2ba0fa0ee7f3',但WC有'7f9aa1f8-8c2b-44dd- B220-ac62e04eeab0'

     

您可能正在尝试重定位到错误的存储库。您的工作副本是从另一个创建的。   再次检查URL。

     

您还可以签出目标存储库并创建新的工作副本。

我理解基本信息,但我不确定如何解决它。我知道我现在有两个存储库(新的存储库显然是空的)并且UUID有所不同,但我希望告诉NetBeans我想要重新定位它是可行的方法。

所以我的问题是:有没有办法告诉NetBeans我想为我的存储库使用新的URL?

次要问题:如果存储库(显然)不能按照我期望的方式工作,我该如何解决这个问题?我是否在NetBeans中创建一个新项目并在新主机上再次检查所有代码?在这种情况下,NetBeans中的 Relocate 功能有什么作用?

2 个答案:

答案 0 :(得分:4)

有没有办法告诉Netbeans我想为我的存储库使用新的URL?是的,如果旧的存储库仍然可用,请使用Netbeans Relocate功能。如果旧存储库不再可用,则无法更换存储库URL并继续使用相同的工作副本。您必须创建一个访问新存储库的新工作副本。但是,您可以通过删除所建议的Jim Garrison .svn目录的所有实例来改进当前工作副本。然后,在Netbeans中,使用Team-> Subversion-> Check into Repository并输入新的存储库URL。

如果存储库(显然)不能按照我期望的方式工作,我该如何解决这个问题呢?工作副本链接到存储库。如果要更改存储库,则需要对工作副本进行更改。或者,您可以使用Netbeans提供的Relocate功能,因为旧存储库仍然可用。此外,您可以使用上面提到的改造解决方案,而不是在Netbeans中创建新项目。

我是否在Netbeans中创建一个新项目并在新主机上再次检查所有代码?可以在Netbeans中创建一个新项目并复制所有源代码文件进入新项目。之后,您可以将新项目检入新存储库,从而创建新的工作副本。但是,如上所述,如果您遵循改造解决方案,则创建新项目并非必要

在这种情况下,Netbeans中的“重定位”功能有什么作用? Netbeans中的重定位功能解决了在工作副本上更改存储库的问题,但仅在旧存储库仍然存在的情况下才有效可用。它无法将工作副本重定位到存储库中,只需将一个存储库移动到另一个存储库中,从而节省了手动传输的工作量。它不适用于此方案,因为第一个存储库不再可用。如果您使用的存储库脱机,丢失您的历史记录,需要将代码检入新存储库,就像第一次一样。

答案 1 :(得分:3)

如果原始存储库永远消失,那么您需要做的是将当前工作副本作为新源签入新存储库。最简单的方法是

  1. 对当前来源进行完整备份
  2. 删除工作副本中任何位置的所有.svn目录
  3. 在新存储库中创建顶级目录并将其签出
  4. 移动旧树(到新的顶级目录)
  5. svn add新存储库的来源
  6. 签入
  7. 正如ChristopheD指出的那样,你将失去你的历史,但那已经消失了。