Mercurial - 如何查看特定代码行的历史记录

时间:2012-11-25 08:46:45

标签: eclipse mercurial

我有一个包含数千行代码的CSS文件。我想看看特定行/代码块何时被更改,而不返回并查看更改此文件的每个修订版(这将花费很长时间!)

有没有办法,使用TortoiseHg,带有Mercurial插件的Eclipse或命令行来查看特定代码段的历史记录?

4 个答案:

答案 0 :(得分:17)

正确答案为hg grepMercurial grep page)。

更深:

hg grep --all "PATTERN" FILENAME

示例输出:

>hg grep --all "textdomain" functions.php
functions.php:2:-:load_theme_textdomain('fiver', get_template_directory() . '/translation');
functions.php:2:+:load_theme_textdomain('fiver', get_template_directory() . '/languages');
functions.php:1:+:load_theme_textdomain('fiver', get_template_directory() . '/translation');

(按顺序 - 本修订中的文件名,修订版,操作,字符串)

答案 1 :(得分:13)

您可以使用:

hg annotate <file>

找出更改了哪个修订版本,然后在最后使用-r <revision>的相同命令向后修改。

答案 2 :(得分:1)

我认为没有选项可以查看文件的特定部分。但要查看总文件与多个修订版本的差异,您可以使用hg diff

hg diff -r firstrevisionnumber:otherrevnumber filename

例如,hg diff -r 0:8 screen.css

或命令hg log screen.css

答案 3 :(得分:0)

使用hg histgrep --all PATTERN FILENAME(在旧版本中曾经是hg grep,现在已经不能用了)