Version control 显示Mercurial提交修改一段代码(多行)
因此,假设我有一段代码,它由一个文件中的几个连续行组成,我想找到历史中影响这段代码的所有提交。有没有办法用mercurial做到这一点Version control 显示Mercurial提交修改一段代码(多行),version-control,mercurial,revision-history,Version Control,Mercurial,Revision History,因此,假设我有一段代码,它由一个文件中的几个连续行组成,我想找到历史中影响这段代码的所有提交。有没有办法用mercurial做到这一点 我不是说使用一个内置命令,因为AFAIK Mercurial没有为此提供命令,所以这可能需要一个包含多个命令的小脚本。您可能需要从hg开始。这将给你最新的修订,改变了每一行。然后,您可以使用-r选项hg向后浏览历史记录 任何数量的文本处理程序都可以从gull中提取修订号,并将此过程自动化。如果您知道历史上字符串的任何不可变部分,您可以尝试使用hg grep--a
我不是说使用一个内置命令,因为AFAIK Mercurial没有为此提供命令,所以这可能需要一个包含多个命令的小脚本。您可能需要从
hg
开始。这将给你最新的修订,改变了每一行。然后,您可以使用-r
选项hg
向后浏览历史记录
任何数量的文本处理程序都可以从
gull
中提取修订号,并将此过程自动化。如果您知道历史上字符串的任何不可变部分,您可以尝试使用hg grep--all…
(模式可以是regexp,而不仅仅是普通文本字符串),而不是在循环中使用gull(以及其中的一些逻辑)
只是最简单的示例(对于硬编码模式,我懒得构建任何regexp)
(这是最明显的输出,不是吗?)
>hg grep --all DATE_FORMAT_ENTRY serendipity_lang_ru.inc.php
lang/UTF-8/serendipity_lang_ru.inc.php:9:-:@define('DATE_FORMAT_ENTRY', '%A, %e %B. %Y');
lang/UTF-8/serendipity_lang_ru.inc.php:9:+:@define('DATE_FORMAT_ENTRY', '%A, %e %B %Y');
lang/UTF-8/serendipity_lang_ru.inc.php:7:-:@define('DATE_FORMAT_ENTRY', '%A, %e %B %Y');
lang/UTF-8/serendipity_lang_ru.inc.php:7:+:@define('DATE_FORMAT_ENTRY', '%A, %e %B. %Y');
lang/UTF-8/serendipity_lang_ru.inc.php:3:-:@define('DATE_FORMAT_ENTRY', '%A, %e %B. %Y');
lang/UTF-8/serendipity_lang_ru.inc.php:3:+:@define('DATE_FORMAT_ENTRY', '%A, %e %B %Y');
lang/UTF-8/serendipity_lang_ru.inc.php:0:+:@define('DATE_FORMAT_ENTRY', '%A, %e %B. %Y');