【问题标题】:in Mercurial prevent to up to a older version (tag or branch)在 Mercurial 中阻止到旧版本(标签或分支)
【发布时间】:2018-10-28 13:17:24
【问题描述】:

有什么方法可以防止退回到旧版本?

我的意思是,我想一直向前而不是向后。

【问题讨论】:

  • 当历史无法访问时,版本控制系统的意义何在?
  • 我很好奇你为什么需要这个限制。
  • 重点是防止开发者部署旧版本或其中一些没有回滚的版本!
  • @FedericoAguirre 我宁愿使用自动构建/部署过程来确保软件的正确性
  • 如我的回答中所述:我自动构建推送到我的仓库的任何内容。对于推送到存储库的任何标签,都会触发一个新的发布版本。无需人工干预。但是:我允许在手动触发时部署任何新旧标签(通常不需要 - 但如果我这样做,我可能有充分的理由这样做)。我建议类似的系统。没有任何手动覆盖选项可以证明是一个坏主意。通常的例程可以非常自动化。

标签: mercurial repository


【解决方案1】:

利用 mercurial 提供的 hooks 并实现更新命令的挂钩,该命令将所需版本与当前签出的版本进行比较。当所需的版本比当前签出的版本旧时,挂钩失败。请参阅docs 了解可用的挂钩和一些examples

也就是说,这可能是对使用 VCS 的不利限制。如果是关于在生产系统上部署,那就更理智了;然而,您不需要复制整个存储库及其历史记录,只需将当前版本复制到部署目标。

出于我的部署目的,我只检查构建是否设置为发布构建(标记,或在 jenkins 中手动选择)或者它是否是分支的 HEAD。在这些情况下,我会在构建通过回归测试后触发部署到生产环境:https://github.com/OpenTTD/nml/blob/master/.devzone/build/jenkins_postbuild.sh

【讨论】:

    猜你喜欢
    • 2012-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-27
    • 2017-04-27
    • 2010-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多