Jay R. Asked: 2009-05-05 05:07:32 +0800 CST2009-05-05 05:07:32 +0800 CST 2009-05-05 05:07:32 +0800 CST 将 SVN 服务器/存储库从 Linux 迁移到 Windows 有什么问题? 772 我们有一台运行 Fedora 7 的服务器,用作我们的 SVN 存储库服务器。我工作的新 IT 政策规定,如果我们想允许我们的服务器在网络上,我们必须使用 Windows 机器。 采取这一举措必须克服哪些挑战?其中一些项目可用于获得政策例外。 windows linux svn 5 个回答 Voted Best Answer Steve Schnepp 2009-05-05T06:35:50+08:002009-05-05T06:35:50+08:00 一个小清单: 访问方法。如果您通过 SSH 访问您的 SVN 服务器,您可能会考虑切换到 HTTP,因为它在 Windows 上更为主流。 UUID。如果您移动您的存储库,请不要忘记将旧存储库设置为不可访问或只读。然后您甚至可以重用相同的 UUID,并享受客户端子命令的--relocate选项switch以实现无缝重定位(无需重新结帐) 阿帕奇。您可能已经有一个 IIS(或盒子上的另一个 Web 服务器),因此您应该更改 数据库。如果您使用 FSFS 作为存储库数据库,您可以将其复制过来。BDB 需要一个svn dump/load循环。如果您想将数据库放在网络共享上,请仔细考虑:只有 FSFS 可以工作(但实际上并不推荐)。 用户。您必须考虑如何对您的用户进行身份验证。它可能就像复制htpasswd文件一样简单。 SVN 版本。请注意,您使用相同版本的 SVN 服务器。如果没有,您可能需要一个svn dump/load循环。 挂钩。如果您的 SVN 服务器上有钩子,则可能需要移植它们。通过安装相同的脚本语言(想想 ActivePython 或 ActivePerl),或者只是用 vbs 或等效的方式重写它们。 防火墙。万一你的服务器是工作站版,别忘了打开防火墙端口(很简单,但我被咬过一次)。 Chris Shaffer 2009-05-05T05:22:11+08:002009-05-05T05:22:11+08:00 不确定所有细节,但请记住,您在存储库上运行的任何挂钩/脚本都需要重写为批处理文件。 Vincent De Baere 2009-05-05T05:21:08+08:002009-05-05T05:21:08+08:00 转储/加载将是正确的程序,可以让您远离任何问题。看svn书 gimel 2009-05-05T05:22:05+08:002009-05-05T05:22:05+08:00 在 Windows 上运行VisualSVN Server已经非常流畅了。VisualSVN Server 可以托管任意数量的独立 Subversion 存储库。 您可以通过任何 Subversion 推荐的方法移动存储库,它是双方的标准存储库。注意存储库版本,您可能需要升级。访问权限是面向 Windows 的,您可能必须更改客户端对服务器进行身份验证的方式。如果有的话,祝你好运。我希望它们是用可移植的脚本语言编写的,例如Perl或Python. Tim Dunnington 2011-08-18T18:16:26+08:002011-08-18T18:16:26+08:00 如果您尝试反向移动——在 Windows 中使用 svnadmin 来制作存储库的转储文件——请务必使用 cmd.exe 提示符而不是 powershell。 我这样做并发现(很难)从 powershell 重定向输出会导致 Unicode 文件,当您将相同的文件加载到目标存储库时 svnadmin 无法读取该文件。运行也需要更长的时间(而且,很明显,文件是原来的两倍)。
一个小清单:
--relocate
选项switch
以实现无缝重定位(无需重新结帐)svn dump/load
循环。如果您想将数据库放在网络共享上,请仔细考虑:只有 FSFS 可以工作(但实际上并不推荐)。htpasswd
文件一样简单。svn dump/load
循环。不确定所有细节,但请记住,您在存储库上运行的任何挂钩/脚本都需要重写为批处理文件。
转储/加载将是正确的程序,可以让您远离任何问题。看svn书
在 Windows 上运行VisualSVN Server已经非常流畅了。VisualSVN Server 可以托管任意数量的独立 Subversion 存储库。
您可以通过任何 Subversion 推荐的方法移动存储库,它是双方的标准存储库。注意存储库版本,您可能需要升级。访问权限是面向 Windows 的,您可能必须更改客户端对服务器进行身份验证的方式。如果有的话,祝你好运。我希望它们是用可移植的脚本语言编写的,例如
Perl
或Python
.如果您尝试反向移动——在 Windows 中使用 svnadmin 来制作存储库的转储文件——请务必使用 cmd.exe 提示符而不是 powershell。
我这样做并发现(很难)从 powershell 重定向输出会导致 Unicode 文件,当您将相同的文件加载到目标存储库时 svnadmin 无法读取该文件。运行也需要更长的时间(而且,很明显,文件是原来的两倍)。