【问题标题】:How to get list of files that were affected since a specific revision in Mercurial如何获取自 Mercurial 中的特定修订版以来受影响的文件列表
【发布时间】:2011-02-15 18:21:04
【问题描述】:

如何获取自 3456 版以来变更集中受影响的所有文件的列表?

注意: 我试过hg log --rev 3456:tip --template "{files}"\n,但有几个问题

  1. 如果一个变更集影响多个文件,它们都会出现在同一行。
  2. 如果一个文件涉及多个变更集,这也会多次显示同一个文件。

【问题讨论】:

  • 3 听起来像一个错误。您是否有一个示例,其中合并更改了第一个父级的文件但未显示在 hg 日志中?
  • @John:这不是错误。我误解了一些关于合并变更集的事情。我已经从问题中删除了问题 3。

标签: mercurial


【解决方案1】:

hg stat --rev 3456

hg stat --rev 3456:tip 排除未提交的更改

【讨论】:

  • 在我的 repo 中,变更集 3456 是提示。 Tortoise hg 显示变更集 3456 的 3 个文件,但 "hg stat --rev 3456" 没有显示任何文件。该变更集是一个合并。
  • 嗯?如果 3456 是提示(提示意味着添加到 repo 的最新变更集),那么您如何希望“自 rev 3456 以来变更集中受影响的所有文件”?要获取所有更改的列表,@robert 建议您需要 --rev 选项或带有冒号的选项。
【解决方案2】:

previous question 涵盖了同样的问题,但增加了限制,即搜索仅限于属于“我自己”的文件。您可以简单地删除“--user”,它应该可以满足您的需要。

【讨论】:

    【解决方案3】:

    创建一个名为“mystyle”的文件

    changeset = "{files}"
    file="{file}\n"
    

    然后hg log --style mystyle --rev 3456:tip | sort | unique

    【讨论】:

    • 您的示例格式很好,但我刚刚意识到hg -log 并没有给我我需要的东西。我已经更新了我的问题。请参阅我的问题中的问题 3。
    猜你喜欢
    • 1970-01-01
    • 2011-11-20
    • 2019-09-28
    • 2021-03-02
    • 2011-10-20
    • 2011-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多