为什么在未删除文件的情况下将汞日志结果隐藏在-后面?

时间:2018-07-23 15:28:40

标签: mercurial

我在Mercurial遇到了一个奇怪的情况,其中一些提交未出现在hg log结果或TortoiseHG文件历史记录中。这是一些简化的细节。

在命令行中,如果我输入hg log file.txt,则会显示8次提交。该分支上对该文件的最新更改不会显示。对该分支所做的更改是由于另一个分支压缩了一些提交范围而没有删除文件的结果。

如果我改为键入hg log --removed file.txt,则所有我希望看到的提交都在那里。

为记录起见,键入hg log -r "removes(file.txt)"不会显示任何内容,这并不奇怪,因为从未删除过该文件。

我的同事在查看他们的历史时也会遇到同样的问题。更改在共享存储库中公开。

有人对导致这种情况的原因有任何线索吗?

完全公开:从另一个分支移植的更改在原始分支上被压缩,弹出修补程序队列,然后重新应用于新分支。我认为这并不重要。同样,可能不相关的是,这些相同的提交通过嫁接移植到不同的分支。有趣的是,尽管原始提交没有显示,但嫁接提交确实显示在提交日志中而没有--removed

  • Mercurial 3.9.2。
  • TortoiseHg 4.6.1。
  • Windows 10。

1 个答案:

答案 0 :(得分:1)

文档(hg log --help)表示:

For performance reasons, 'hg log FILE' may omit duplicate changes made on branches and will not show removals or mode changes. To see all such changes, use the --removed switch.

由于对文件所做的更改是压缩提交的结果(顺便说一下,如何压缩它们?),所以这种启发式方法有可能忽略了它们。