问题标签 [mercurial-hook]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2026 浏览

mercurial - Mercurial:如何在拉动时添加钩子

我已经为此搜索了一段时间,但什么也没看到。这可能意味着,它不应该完成,或者它就是不能完成。

我查看了 mercurial 的钩子列表,但在您发出 hg pull 命令后,我似乎找不到(或让一个工作)执行脚本。

谢谢

0 投票
1 回答
129 浏览

mercurial - Mercurial:在远程存储库中创建远程存储库的本地副本

我在台式机上使用 Mercurial,然后将本地存储库推送到中央服务器。我注意到这个远程服务器在它的存储库中没有保存文件的本地副本(目录是空的,显然除了那个目录.hg)。

用本地副本填充这些目录的首选方法是什么?(反过来又被该服务器上的各种不相关服务使用)。

到目前为止,我想出的是使用钩子并hg archive创建本地副本。这将是一个令人满意的解决方案,但我需要为每个存储库配置一个hgrc文件(这很乏味,但我没有找到将其集中在/etc/mercurial/hgrc. 也许是一个全局脚本(在 /etc/mercurial/hgrc,为每个变更组事件运行)?(在这种情况下,我怎样才能获得要在if...then场景中使用的存储库名称?)

0 投票
1 回答
43 浏览

mercurial-hook - 即使使用 --remove 选项也调用 Mercurial pretag 钩子

我是 Mercurial 的新手,我正在编写一个 pretag 钩子来检查标签名称的策略。

我有下面的代码。

当我标记时,这个钩子非常有效。但是,当我想使用 --remove 选项删除无效标签时,也会执行此挂钩。

那么,有什么办法可以避免他的处境呢?

0 投票
1 回答
74 浏览

mercurial - Mercurial 预提交挂钩以修改设置

我正在尝试设置我的网络应用程序(浏览器扩展),以便我可以在开发、测试和生产之间无缝移动。在大多数情况下,我避免将任何 URL 硬编码到应用程序中,但在少数地方这是不可能的:

  • 作为一个注入 js 的浏览器扩展,我在页面上插入 iframe 时不能使用相对路径(或 location.host),因为它将默认为其插入的域。(但我实际上需要将其作为 localhost 进行测试,然后在我推送直播时将其作为 www.mydomain.com )
  • 我有时也喜欢同时针对测试数据库和实时数据库进行测试,但不想总是切换该标志并冒着提交测试数据库设置的风险。

我真正想做的是在我提交(在几个文件 x.php、y.js 上)之前搜索/替换以将 localhost 替换为 www.mydomain.com。

谁能告诉我如何使用预提交挂钩(或任何其他技术)来做到这一点?

编辑:

虽然我在 mercurial hooks 下发布了这篇文章——我 100% 对任何其他自动化更改的方法持开放态度......

  • 在拉动更改后,我也可以在实时服务器上进行更改..
  • 我想对于数据库更改,我可以从我的存储库中删除配置文件并在我的实时服务器上保留一个预配置版本——但我不喜欢这个,因为从我的存储库拉到一个新的服务器/路径会拉整个没有任何数据库设置的应用程序......(只是在这里倾倒我的想法,以防它帮助某人解决问题)

谢谢!

0 投票
1 回答
1073 浏览

mercurial - 如何将提交限制到 Mercurial 中的特定分支?

我本质上是在寻找一种方法来管理对特定分支的写权限。

这可以在提交之前(本地),也可以在提交之后但在推送之前(远程)。

我需要保护某些分支不被写入,以强制执行发布分支只能由某些人编辑的工作流。

0 投票
2 回答
166 浏览

mercurial - Mercurial:如何在 [pretxn]changegroup 挂钩中修改 changegroup

我正在尝试使用检查提交的更改组或 pretxnchangegroup 挂钩创建一个 Mercurial 存储库,可能对其进行一些更改,然后提交更改。我的钩子做了类似的事情:

但是当我推送到具有钩子的远程存储库时,它会挂起等待锁,我必须杀死它:

这是有道理的,因为我知道更改组必须在存储库上持有写锁,钩子内的提交也必须如此。但是我该如何解决这个问题呢?

我可以想到两种可能可行的方法,但不知道它们是否可行:

  1. 如果在更改组完成并释放锁之后运行了一个钩子,我可以在那里运行提交。
  2. 将变更集附加到传入的变更组。
0 投票
0 回答
116 浏览

python - 修改提交时更改提交消息

当有人修改提交消息时,我是否可以通过钩子更改提交消息?

我尝试使用precommit钩子,但修改时没有调用这个钩子。

我也尝试hg commit --amendchangegroup钩子中调用,但这会导致错误。

我设法通过调用外部 python 脚本来做到这一点,但这需要安装 python,而且当然感觉不是正确的方法。

0 投票
1 回答
65 浏览

mercurial - 推送时自动合并新头

是否可以使用钩子对推送到存储库做出反应并合并由此推送创建的所有新头?

我的用例如下:我正在尝试设计一个仅允许使用提交挂钩进行非常特定更改的存储库。基本思想是只允许用更好的文件替换现有文件(更好的是可以由外部程序检查的东西)。每个用户都可以克隆一个中央存储库并提交对克隆的更改。当用户将他的更改推送到中央存储库时,钩子会检查每个分支的质量是否增加,否则拒绝推送。如果用户推送不同步,这将创建理论上可以自动合并的多个头(获取每个文件的最佳版本)。

0 投票
2 回答
321 浏览

mercurial - 在 mercurial 中变基后修改本地提交

一开始,我的本地
C1 -> C2 -> My1
仓库看起来像: 远程仓库看起来像:
C1 -> C2 -> R1 -> R2
所以我做了:
$ hg pull
$ hg rebase
现在仓库看起来像:
C1 -> C2 -> R1 -> R2 -> My1

现在我对文件“File1.java”做了一些更改,并希望这些更改成为最后一次提交的一部分My1。当我执行以下操作时:
$ hg commit File1.java --amend
我收到的错误消息是:
abort: cannot amend merge changesets
在谷歌搜索时我发现了这个,据此它看起来像是 mercurial 中的一个问题,但我确信有办法解决它。
请告诉我在上次本地提交中修改新更改的一组步骤。

0 投票
1 回答
261 浏览

mercurial - mercurial changegroup hook - 指定最近的节点

当开发人员从本地存储库推送到中央远程存储库时,我想使用 mercurial 挂钩来触发回归构建(在 Jenkins 中)。

在路径/to/repo/.hg/hgrc

和詹金斯.py:

但在这种情况下,节点指的是变更组中最早的变更集,我想针对最新的开始构建和测试。我有一个使用的解决方法:

这会得到适当的变更集,但我不确定这是最好的方法。我缺少一个更标准的成语吗?

谢谢