我怎样才能正确地从VisualSVN服务器(Windows)的SVN存储库转移到Apache SVN(Linux)?

我的目标是将旧的SVN存储库从Windows VisualSVN服务器转移到Linux的Apache SVN服务器。 第一步是使用svnadmin dump命令转储所有存储库。 之后,我把这些转储加载到我的Linux服务器上。 导入存储库时没有错误。 但是,对于某些文件,在提交更改时会出现500内部服务器错误。

为了检查什么是错误的,我打开了一些生成错误的文件到我的网页浏览器。 我发现这些文件的最后几行已损坏。 没有数据丢失,但文件末尾有奇怪的字符。 它们在我的networking浏览器中显示为“???”。

我试图做多个出口,但所有的出口将导致同样的问题。 是否有可能纠正存储库或转储? 你有什么想法我可以防止这种情况发生?

  • AFAICR在某些版本的版本库中存在一些变化:如果VisualSVN Server和apache版本的Subversion版本是相同的(即升级VisualSVN Server,那么它会更加防弹)需要)
  • 从FS-view来看,VisualSVN Server和Linux的Apache库是一样的 – 只是带有文件和一些非库文件的目录。 因此,在最简单的情况下,您可以将树从RepoRoot复制到新服务器(根据新的操作系统要求修复所有者和权限),添加(旧)passwd文件(如果需要),置于回购树和(旧)authz (如果需要的话),将svn相关的部分从VisualSVN Server的httpd.conf迁移到新的环境中(应用所有需要的更改,主要是path相关的),并在新的位置

PS:我执行了这种懒惰的“复制 – 迁移”迁移,没有大的头痛

提交时发生500个内部服务器错误

可能有两个主要原因:没有迁移用户库和(或遗忘)ACL(可能缺less或空的)authz文件 – 转储库不会传输这些文件