gpt4 book ai didi

Mercurial 中的版本控制扩展配置

转载 作者:行者123 更新时间:2023-12-01 20:06:30 26 4
gpt4 key购买 nike

通常,我会通过将以下内容添加到 .hg/hgrc 来启用扩展:

[extensions]
hgext.win32text=
[encode]
** = cleverencode:
[decode]
** = cleverdecode:

但是,我希望此配置进行版本控制,即存储库的一部分,以便其他任何人(同事、构建机器)克隆存储库时都可以使用它。请注意,克隆存储库的任何人都不需要执行任何操作来启用这些扩展。

the documentation 看来这是不可能的,但是有人知道可以帮助我的巧妙技巧吗?

最佳答案

您希望 Mercurial 在克隆存储库时自动执行某些操作(更新 Hook 或配置)。 Documentation说这是不可能的,并给出了一些很好的理由:

Hooks do not propagate

In Mercurial, hooks are not revision controlled, and do not propagate when you clone,
or pull from, a repository. The reason for this is simple: a hook is a completely
arbitrary piece of executable code. It runs under your user identity, with your
privilege level, on your machine. No comments

It would be extremely reckless for any distributed revision control system to
implement revision-controlled hooks, as this would offer an easily exploitable way to
subvert the accounts of users of the revision control system. No comments

很明显,mercurial 本身并不能解决你的问题。您明确表示您只想用 Mercurial 来解决您的问题,所以答案是:您所要求的是不可能的。

解决问题的唯一方法是,所有用户都必须至少运行/安装一次给定脚本来执行您想要的操作,例如安装正确的 Hook 。

如果你想聪明一点:

  • 创建一个一次性脚本来运行,该脚本将安装一个 Hook 以将正确的配置复制到 .hg 或用户中
  • 确保 Hook 安装后可以更新脚本以将配置更新分发给用户
  • 让钩子(Hook)添加一些特殊标记来提交消息
  • 拒绝不携带特殊消息的中央存储库提交

有点复杂,但这是我能想象到的最接近您的要求的:

  • 用户运行一次脚本后就忘记了
  • 您可以确保如果他们没有运行它,他们就无法提交到您的中央存储库

关于Mercurial 中的版本控制扩展配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/856523/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com