1

我们的 VisualSVN 服务器 (SE) 当前将其存储库存储在“C:\Repositories”中,但鉴于我们存储库的增长,C: 驱动器开始填满。我们希望将整个存储库根目录移动到服务器中的第二个驱动器 (D:),在可预见的未来它有足够的空间。

我发现这个问题告诉我如何更改根目录,但是由于该问题涉及全新安装,因此不必担心现有数据的保存。经过一些研究,我发现有几种方法可以保留现有存储库:

  • 资源管理器中的直接文件副本:应该保留所有数据,但我不愿信任 Windows 来完成这项任务
  • svnadmin dump到转储文件,然后在新位置加载转储文件
  • svnadmin hotcopy存储库到新位置

我想听听您对哪种方法更可取的意见。如果它足够强大,我更喜欢 hotcopy 方法,因为转储所有存储库需要相当长的时间。转储方法在此处进行了描述,但似乎包括对我的情况而言不必要的步骤,因为我将所有内容都保存在同一台服务器上。

此外,我想问一下我们将如何最好地进行此迁移以将停机时间降至最低。我想防止用户在复制文件时提交更改。我可以在更改根目录和复制文件时关闭 SVN 服务吗?

最后,我想借此机会将服务器从 2.5.2 升级到 2.5.8。我应该在文件复制后这样做吗?我应该先重新启动服务,然后再次将其关闭,以便它处理并检查移动的存储库吗?

4

3 回答 3

2

我建议您使用svnadmin hotcopy每个存储库或xcopy /E /H C:\Repositories D:\Repositories. 不要忘记复制授权文件(authz、authz-windows 和 htpasswd)。您必须在迁移之前停止 VisualSVN Server。

svnadmin dump不是必需的,正如你提到的那样非常耗时的过程。

最好在存储库迁移和需要重新配置后升级 VisualSVN 服务器。在某些升级中,VisualSVN 服务器需要访问存储库文件夹以进行升级。

于 2013-01-25T15:35:47.230 回答
1

这些是您可以使用的一些步骤。使用此 python 脚本将使您的任务更轻松,并在将来对您的存储库进行每日备份时受益。

  1. 在 VisualSVNServer 上,转到属性并将存储库根更改为您的新位置。假设“D:\Repositories”。
  2. 下载 Python 2.7(如果您尚未安装它)。
  3. 下载“热备份.py”
  4. 从命令窗口执行以下操作。

    hot-backup.py C:\Repositories\<YourRepoName>  D:\Repositories\<YourRepoName>
    
  5. 升级您的 SVN 版本

这应该可以解决问题。祝你好运 !!!

于 2013-01-25T15:50:47.387 回答
1
  • Xcopy SVN-Parent 到新位置
  • (手动)编辑 VisualSVN 服务器的 httpd.conf,SVNParentPath参数
  • 从它的 MMC 小程序重新启动 VisualSVN 服务器
于 2013-01-25T16:30:53.730 回答