将SVN服务器/存储库从Linux迁移到Windows有什么困难?

我们有一台运行Fedora 7的服务器,我们用它作为我们的SVN版本库服务器。 在我工作的新IT策略中,如果我们希望允许我们的服务器在networking上,那么我们需要一个Windows盒子。

这一举措必须克服哪些挑战? 其中一些项目可能被用来获得政策例外。

一个小清单:

  • 访问方法 。 如果你通过SSH访问你的SVN服务器,你可能会考虑切换到HTTP,因为它在Windows上更为主stream。
  • UUID 。 如果您移动回购,请不要忘记让旧回收不可访问或只读。 然后,您甚至可以重复使用相同的UUID,并享受客户端上的switch子命令的--relocate选项,以实现无缝重定位(无需重新检出)
  • 阿帕奇 。 您可能已经有一个IIS(或另一个Web服务器的框),所以你应该改变
  • 数据库 。 如果您使用FSFS作为存储库数据库,则可以将其复制。 BDB需要svn dump/load循环。 如果你想把你的数据库放在一个networking共享上,可以考虑一下:只有FSFS可以工作(尽pipe如此,这还不是很推荐)。
  • 用户 。 你必须考虑你的用户如何被authentication。 这可能就像复制一个htpasswd文件一样简单。
  • SVN版本 。 只要注意你使用的是同一版本的SVN服务器。 如果没有,你可能需要一个svn dump/load循环。
  • 挂钩 。 如果你的SVN服务器上有挂钩,你可能需要移植它们。 或者通过安装相同的脚本语言(想想ActivePython或ActivePerl),或者只是用vbs或其他方式重写它们。
  • 防火墙 。 以防万一您的服务器盒在工作站版本,不要忘记打开防火墙端口(相当微不足道,但我被咬了一次)。

不知道所有的细节,但记住你的仓库上运行的钩子/脚本将需要重写为batch file。

转储/加载将是正确的程序,并保持您的安全,以免出现任何问题。 看svn书

在Windows上运行VisualSVN Server非常stream畅。 VisualSVN Server可以托pipe任意数量的独立Subversion版本库。

您可以通过任何Subversion推荐的方法移动存储库,它是双方的标准存储库。 请注意存储库版本,您可能需要升级。 访问权限是面向窗口的,您可能必须更改客户端对服务器的身份validation方式。 祝你好运钩子脚本,如果有的话。 我希望它们是用便携式脚本语言编写的,例如PerlPython

如果您正在尝试反向移动 – 在Windows中使用svnadmin来创build存储库的转储文件,请务必使用cmd.exe提示符,而不要使用powershell。

我这样做,并发现(困难的方式)redirect输出的PowerShell的结果是一个Unicode文件,svnadmin无法读取时,你去加载到目的地的资料库相同的文件。 运行也需要很长时间(显然,文件是两倍)。