如何使用AnkhSVN在Visual Studio中切换subversion仓库?

12

我一直在本地开发一个项目,并在Visual Studio中使用本地svn服务器进行版本控制。现在我想切换到xp-dev托管的版本控制,但似乎无法摆脱我的解决方案上的svn绑定?有没有一种简单的方法可以复制一个解决方案而不带其版本控制设置,或者只是切换到另一个完全为空的svn?


如果您需要本地svn服务器中的原始源代码,您可能需要查看如何导出(然后导入)Subversion存储库?的答案。 - Richard Chambers
7个回答

39

这里有一个内置的开关/重定位功能:

  • 打开视图 -> 待处理更改
  • 点击下拉框,显示当前存储库的URL或右侧的按钮
  • 输入/浏览到新位置
  • 会出现一个对话框询问您是否要重新定位(因为在这里仅切换是不够的)

1
只是补充一下,这是通过开关实现的,如果开关出现故障,还具有自动重定位支持。 - Bert Huijben
AnkhSVN已更改了菜单选项。现在,待处理更改视图位于“文件”下的Subversion子菜单之外。因此,请执行“文件”->“Subversion”->“待处理更改”。 - Dimitar Darazhanski

4

编辑:请注意,这假定您正在尝试移动到一个新的存储库,删除所有历史记录,而不是移动存储库。考虑到这一点,您可能想用将文件夹导出到新创建的工作区中来替换删除所有 .svn 文件夹。

据我所知,没有这样的方法。我可能会这样做:

  • 从解决方案中删除所有 .svn 文件夹
  • 在新的存储库中创建一个解决方案文件夹
  • 检出该文件夹
  • 将当前的解决方案移动到该文件夹中
  • 在 Visual Studio 中加载该解决方案
  • 使用 AnkhSvn 再次添加它。它应该能够识别出它在一个 Subversion 目录中,并允许您这样做。

1
这会使你失去历史记录。最后一点也无效。当你移除所有的.svn文件夹时,它不再是一个工作副本或“版本控制目录”。 - Sander Rijken
是的,我认为他试图移动到一个新的Subversion服务器而不是移动Subversion存储库。否则,我会建议他重新安置它。 - Colin Newell
1
将存储库迁移到新服务器时,最好查看此网址:http://svnbook.red-bean.com/nightly/en/svn.reposadmin.maint.html#svn.reposadmin.maint.migrate。如果按照您所说的方式执行,仍会丢失所有历史记录。 - Sander Rijken
1
是的,我不反对,只是我认为原问题提出者并不关心历史。 - Colin Newell
2
您也可以右键单击解决方案或项目,在Subversion菜单上选择“切换项目”选项。 - user181799
显示剩余2条评论

2
尝试前往“文件”>“Subversion”>“更改源代码控制…”并更改SCC绑定URL。
编辑: 我看到它不能编辑。您可能需要通过命令行进行此操作。
在您的基本目录中,发出以下svn命令:
svn switch --relocate http://old.repo.location http://new.repo.location

当然要使用您具体的URL。我建议您了解一下switch命令,以确保您知道自己在做什么。重新打开VS时,AnkhSVN应该会捕获新的绑定信息。如果您是通过“文件”>“Subversion”菜单添加解决方案的,则可能需要编辑.sln文件。只需在文本编辑器中打开它,并将所有旧的存储库URL更改为新的URL即可。

您也可以安装TortoiseSVN,并使用上下文菜单发出“Relocate”命令。 这将是最简单的方式。

在进行任何更改之前备份您的目录,当然。


哎呀,它不让我更改那个字段中的文本。 - Paulo
重新定位是在你刚刚移动了代码库时所做的操作,比如你改变了它所在的文件夹或将其移动到了 Web 服务器上。如果你要指向另一个完全不同的代码库,我认为这种方法是行不通的。我相信修订号、历史记录等基本上必须相同,也就是说必须是基本上相同的代码库才有用。 - Colin Newell
@Colin:--relocate 检查仓库 UUID 是否相同。如果仓库在 xp-dev 上正确导出和导入,它们将是相同的。 - Sander Rijken

2

另一种方法是编辑位于“.svn”文件夹中的wc.db(SQLite文件),其中包含存储库URL。

我使用了Firefox插件SQLITE editor,然后在REPOSITORY表中只有1行表示您的存储库URL,将其更改为新主机即可。

我的情况是我有一台新电脑和新主机,因此我所有添加到SVN存储库中的项目都有一个旧的URL(旧主机名)。


2

0
在我的情况下,我不得不更改 SVN 的 URL,因为 DNS 不知道主机名,所以我不得不使用 IP 地址。
您可以编辑位于以下位置的hosts文件: C:\Windows\System32\drivers\etc 然后简单地输入一行,例如:
xxx.xxx.xxx.xxx     hostname

0

我从SVN中“导出”,然后在SVN Repo Browser中对仓库进行了“添加文件夹”的操作,最后在Visual Studio中打开了.sln文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接