【问题标题】:Mercurial list files from changegroup来自变更组的 Mercurial 列表文件
【发布时间】:2015-09-04 17:00:13
【问题描述】:

我想要一个简单的命令来获取推送到服务器上的 mercurial 存储库后不同的文件列表, 这就是上一次推送和当前推送的区别。 在服务器上,我对调用 bash 脚本的 changegroup 事件有一个钩子。 $HG_NODE 是更改组中第一次提交的修订。

我的尝试:

hg status --rev $HG_NODE::

排除在第一次提交中所做的更改

hg status --rev $HG_NODE^1::

包括通过其他推送影响父修订的更改。

hg log -v --rev $HG_NODE:: | grep ^files

包括已提交然后恢复的更改,仍然有“文件:”并且文件不是每行一个

hg status --rev $HG_NODE:: && hg status change --rev $HG_NODE

没有给出我想要的,而是父级到更改组中的第一个提交之间的更改 + 这个更改之间的更改(而不是合并的两个更改集)

hg status --rev some_tag ; hg tag --remove some_tag ; hg tag --local some_tag

(没试过,是个好主意吗?)使用本地标签来跟踪最后一次推送的头部,每次更新。

另外我只想监控默认分支,所以我假设我会使用类似 --rev "revision and branch(default)" 或 hg log 的分支选项。

至于为什么,我需要通过更改来确定自动构建的参数。

【问题讨论】:

    标签: mercurial hook mercurial-hook


    【解决方案1】:

    hg stat -r 是列出删除的文件。要获取不同的文件列表,您应该使用hg st --rev,如下所示。

    hg st -m --rev tip^:tip
    

    【讨论】:

    • 我的错,我实际上已经在使用--rev,我在帖子中使用了-r来缩短代码,认为它会是相同的(我修复了它)。我已经尝试过使用 ^,但我的案例的修订父级可能与之前的提示不同
    猜你喜欢
    • 2013-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多