【问题标题】:Getting the changed type of files and the previous version in HG在 HG 中获取更改的文件类型和以前的版本
【发布时间】:2015-04-10 07:31:43
【问题描述】:

我目前正在使用为 HG 和 SVN 生成的提交日志收集一些信息。

SVN 示例:


r1667884 |克申克 | 2015-03-20 05:37:55 +0800(2015 年 3 月 20 日星期五)| 1 行

#126118# 修复 makefile 中格式错误的 if 语句。

汞样品:


**变更集:276992:8b564af029aa

书签:writercompare01

标签:提示

父级:266455:8565218dc235

用户:thb@openoffice.org

日期:2010 年 3 月 19 日星期五 00:16:57 +0100

总结:CWS writercompare01:#i110237# 与 Tzvetelina 的变化原样**

我想知道以下几点:

  1. 如果上述提交信息与两个版本的差异有关,则哪个版本显示为 Revision (in svn 1667884) Id 和 Changeset(Hg 276992:8b564af029aa) Id。是提交前的修订版还是提交后的修订版ID?如果是第二个,如何在 svn 和 HG 中获得相关的先前版本?我可以使用 hg diff -c changesetid 来获取以前的版本吗?

  2. 在考虑变更集时,第一个数字部分是否被视为修订 ID?

  3. 我可以使用任何命令来获取更改的类型(修改、删除、忽略等),例如:“M /openoffice/trunk/main/vcl/Module_vcl.马克" ) 在 HG 中连同为上述每次提交更改的文件?

谢谢 博士

【问题讨论】:

    标签: svn mercurial


    【解决方案1】:

    我在这里说的是反复无常:

    广告 2) 变更集 ID(由全局唯一哈希 唯一的本地有效数字 ID 引用)表示一组更改。因此,如果您使用修订版 276992:8b564af029aa 检出您的存储库,那么它会包含所有更改的存储库,包括由该变更集所做的更改。

    广告 1) 我认为这是不幸的术语,但您似乎将其称为“提交后的修订 ID”。

    您可以使用 mercurials revset 术语来了解历史。如果它是您感兴趣的先前提交,并且hg diff -c changesetID 的输出适合您,请改用hg diff -c changesetID^(注意尾随的^)。另见hg help revset

    广告 3) 同样,mercurials 模板引擎非常强大:请参阅hg help templates,了解如何根据需要自定义日志输出 - 它可以进行出色的微调。如果hg log -rXXX --stat 的输出不足以满足您的需求,我建议您的案例使用如下模板:

    hg log -rXXX --template="{file_adds % 'A {file}\n'}{file_mods % 'M {file}\n}{file_dels, 'R {file}\n'}"

    其中 XXX 是您要查询的变更集ID;它模仿hg st 的输出。或许还可以在模板中使用file_copies。请注意,在调查变更集而不是工作目录的状态时,“忽略文件”的概念没有多大意义。如果您想要一份构成某个修订版的所有文件的列表,无论是否更改,hg manifest 都适合您。

    【讨论】:

    • 非常感谢您的解释。我想我已经得到了必要的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-26
    • 1970-01-01
    • 2013-08-18
    • 1970-01-01
    • 2019-09-09
    • 2010-12-10
    相关资源
    最近更新 更多