我需要帮助来了解 hg log --follow 。
$ hg log --help
...
-f --follow follow changeset history, or file history across
copies and renames
当我指定 -f 时,日志输出包括所有提交。我希望它返回与给定版本中更改的文件相关的提交。 这是 -f 标志的预期行为吗?如果是这样,它的用例是什么?
/tmp:$ hg --version
Mercurial Distributed SCM (version 4.5.3)
/tmp:$ mkdir hg-f
/tmp:$ cd hg-f
/tmp/hg-f:$ hg init
/tmp/hg-f:$ touch file0
/tmp/hg-f:$ hg add file0
/tmp/hg-f:$ hg commit -m 'file0 added'
/tmp/hg-f:$ touch foobar
/tmp/hg-f:$ hg add foobar
/tmp/hg-f:$ hg commit -m 'added foobar'
/tmp/hg-f:$ hg mv foobar barfoo
/tmp/hg-f:$ hg commit -m 'moved foobar'
/tmp/hg-f:$ hg log -v -r 2
changeset: 2:492bd607810c
tag: tip
user: 'notalex'
date: Tue Apr 16 09:10:25 2019 +0530
files: barfoo foobar
description:
moved foobar
/tmp/hg-f:$ hg log -v -f -r 2
changeset: 2:492bd607810c
tag: tip
user: 'notalex'
date: Tue Apr 16 09:10:25 2019 +0530
files: barfoo foobar
description:
moved foobar
changeset: 1:adfd98042078
user: 'notalex'
date: Tue Apr 16 09:10:14 2019 +0530
files: foobar
description:
added foobar
changeset: 0:64e5211bd019
user: 'notalex'
date: Tue Apr 16 09:09:53 2019 +0530
files: file0
description:
file0 added
答案 0 :(得分:0)
您必须更全面,更仔细地阅读docs(我从来没有使用没有文件名的-f
,因此-也是第一次阅读此相关段落)
就DAG而言,显示文件历史记录时不遵循的重命名或复制历史记录 文件。使用-f /-跟随文件名来跟踪历史记录 重命名并复制。 --follow没有文件名将仅显示 开始修订的祖先。
0 是2的祖先,确定。如果您想查看和了解-f
的真实目的,只需比较(针对您的测试用例)的输出
hg log barfoo
与hg log -f barfoo