【问题标题】:What's the point of a read-only copy of your repository via svnsync?通过 svnsync 获取存储库的只读副本有什么意义?
【发布时间】:2023-03-29 05:51:01
【问题描述】:

我一直在阅读 svnsync 以创建我们存储库的只读副本,但我真的不明白拥有存储库的只读副本有什么意义。如果master由于某种原因宕机了,只读副本可以变成读/写,这样人们就可以提交了吗?如果不是,那么只读副本的意义何在?

【问题讨论】:

    标签: svn svnsync


    【解决方案1】:

    由 svnsync 维护的只读存储库通常设置为提供主存储库的近实时备份。该副本被认为是只读的,因为通过 svnsync 以外的方式对其进行更改会阻止 svnsync 正常工作。

    在您的主存储库丢失的情况下,您的备份存储库可以成为新的主存储库。出于所有实际目的,该副本与上次运行 svnsync 时的原始 master 相同。您可以通过从备份存储库复制文件并像以前一样继续来重建原始存储库。

    或者,具有基于原始主服务器的工作目录的客户端可以执行svn switch --relocate 操作以更新服务器 URL 以指向副本并继续顺利工作。当然,一旦客户端开始使用备份进行提交,它就不再是 svnsync 命令的目标,而是有效地成为一个新的主存储库,您需要创建一个新的备份。

    【讨论】:

      【解决方案2】:

      假设您谈论的是您自己的私有存储库,任何内容(数据库或源代码存储库或 xyz)的只读/只读副本的两个原因是减轻负载并提高性能。

      如果您在存储库上运行任何类型的分析,比如涉及每个修订的进程,那么这可能会给您的主存储库带来高负载,从而降低开发人员的性能。同步只读/只读副本是减轻这种负担的一种方式,让您可以在不影响关键用户的情况下完成工作。

      可以对延迟提出类似的论点 - 从本地只读副本(本质上是缓存)拉取比通过 VPN 或类似链接从另一个办公室拉取更容易。

      【讨论】:

        【解决方案3】:

        我不知道你是否可以让你同步读/写,但在很多情况下你想要检查存储库的内容而不允许提交它。以下是与我们在我工作的地方所做的非常相似的两个案例:

        • 假设这是一个公共开源项目,您可以允许任何人签出,但只能期望通过补丁或错误报告做出贡献(副本也放在公共服务器上,主要的保存在受保护的专用网络)。

        • 您可能希望在自动构建系统(或某些分析工具)中通过 svn 导出使用 svn 的内容,但选择不是一直同步,而是仅在主 svn 处于稳定状态时同步(想象一些中间提交可能会使代码处于无法编译的不稳定状态)。

        【讨论】:

          【解决方案4】:

          备份您最喜欢的开源程序源代码:)。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2013-08-06
            • 2013-11-10
            • 2011-08-03
            • 2012-09-09
            • 2010-09-29
            • 2022-11-18
            • 2015-05-23
            • 1970-01-01
            相关资源
            最近更新 更多