0

我很好奇是否有可能以使用 Mercurial 的行自动发生的方式查看文件的更改...

具体案例:在过去的某个时间,几个月前,我们的代码中的一行(文件:MainWindow.cpp 第 219 行)被某人更改,没有人记得之前的时间和内容,我们只知道这些东西我们现在不工作:(我们想看看为什么(最重要的是什么时候)会发生这种变化。手动浏览数千个提交不是一种选择:(

谢谢。

4

2 回答 2

2

是的,您可以使用hg annotate,并且注释的默认输出将显示您上次更改 sting 时的修订版本

hg ann functions.php
0: <?php
0:
0: if ( ! isset( $content_width ) ) $content_width = 550;
0:
3: add_theme_support('automatic-feed-links');
6: add_theme_support('custom-background');
...

(第一列是修订号)。使用 -d 选项,您可以将修订日期添加到输出

hg ann -d -n functions.php
0 Sat Aug 06 01:13:35 2011 +0600: <?php
0 Sat Aug 06 01:13:35 2011 +0600:
0 Sat Aug 06 01:13:35 2011 +0600: if ( ! isset( $content_width ) ) $content_width = 550;
0 Sat Aug 06 01:13:35 2011 +0600:
3 Wed Dec 14 04:01:33 2011 +0600: add_theme_support('automatic-feed-links');
6 Sun Jun 24 15:20:24 2012 +0600: add_theme_support('custom-background');

使用修订号(仅),您可以查看处于此修订状态的文件:hg cat -r N <filename>

但是,如果您想查看相关字符串的所有更改历史记录(并且您有一些当前或历史内容,而不仅仅是数字),您可以使用hg grep

于 2012-11-29T09:09:58.697 回答
1

尝试:

hg annotate MainWindow.cpp

它类似于svn blame, 并显示文件的所有行以及更改时的修订号。

于 2012-11-29T08:33:12.537 回答