将 SVN 服务器/存储库从 Linux 移动到 Windows 有哪些陷阱?

将 SVN 服务器/存储库从 Linux 移动到 Windows 有哪些陷阱?

我们有一台运行 Fedora 7 的服务器,我们将其用作 SVN 存储库服务器。我工作的地方的新 IT 政策规定,如果我们想让我们的服务器接入网络,就必须使用 Windows 机器。

要实现这一举措,必须克服哪些挑战?其中一些项目可用于实施政策例外。

答案1

一个小清单:

  • 访问方法。如果你通过 SSH 访问 SVN 服务器,你可以考虑切换到 HTTP,因为它很多在 Windows 上更为主流。
  • 唯一唯一标识符。如果您移动了存储库,请不要忘记将旧存储库设为不可访问或只读。然后,您甚至可以重复使用相同的 UUID,并享受客户端上--relocate的子命令选项switch以实现无缝迁移(无需全新签出)
  • 阿帕奇。您可能已经有一个 IIS(或盒子上的另一个 Web 服务器),因此您应该更改
  • 数据库。如果您使用 FSFS 作为存储库数据库,则只需将其复制过来即可。BDB 需要循环svn dump/load。如果您想将数据库放在网络共享上,请仔细考虑:只有 FSFS 才有效(尽管并不推荐)。
  • 用户。您必须考虑如何验证用户身份。这可能就像复制htpasswd文件一样简单。
  • SVN 版本。请注意,您使用的 SVN 服务器版本必须相同。如果不是,您可能需要一个svn dump/load循环。
  • 钩子。如果您的 SVN 服务器上有钩子,则可能需要移植它们。要么安装相同的脚本语言(例如 ActivePython 或 ActivePerl),要么用 vbs 或等效语言重写它们。
  • 防火墙。如果您的服务器是工作站版本,请不要忘记打开防火墙端口(这很简单,但我遇到过一次麻烦)。

答案2

不确定所有的细节,但请记住,您在存储库上运行的任何挂钩/脚本都需要重写为批处理文件。

答案3

卸载/加载是正确的程序,可以保证您免受任何问题的困扰。请参阅svn 手册

答案4

如果您尝试反向移动 - 使用 Windows 中的 svnadmin 创建存储库的转储文件 - 请确保使用 cmd.exe 提示符而不是 powershell。

我这样做了,但(很费劲地)发现,重定向 powershell 的输出会导致 Unicode 文件,而当您将同一个文件加载到目标存储库时,svnadmin 无法读取该文件。而且运行时间也更长(而且,显然文件大小是原来的两倍)。

相关内容