Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Version control 显示Mercurial提交修改一段代码(多行)_Version Control_Mercurial_Revision History - Fatal编程技术网

Version control 显示Mercurial提交修改一段代码(多行)

Version control 显示Mercurial提交修改一段代码(多行),version-control,mercurial,revision-history,Version Control,Mercurial,Revision History,因此,假设我有一段代码,它由一个文件中的几个连续行组成,我想找到历史中影响这段代码的所有提交。有没有办法用mercurial做到这一点 我不是说使用一个内置命令,因为AFAIK Mercurial没有为此提供命令,所以这可能需要一个包含多个命令的小脚本。您可能需要从hg开始。这将给你最新的修订,改变了每一行。然后,您可以使用-r选项hg向后浏览历史记录 任何数量的文本处理程序都可以从gull中提取修订号,并将此过程自动化。如果您知道历史上字符串的任何不可变部分,您可以尝试使用hg grep--a

因此,假设我有一段代码,它由一个文件中的几个连续行组成,我想找到历史中影响这段代码的所有提交。有没有办法用mercurial做到这一点


我不是说使用一个内置命令,因为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');