使用版本控制查找文本块的更改

问题描述 投票:0回答:1

我有一个文本文件,我想用它来跟踪更改。它是一个存储值(以及字符串和数组)的文件,其条目具有以下格式:

NAME: some_name
  UNIT: some_unit
  ...
  VALUE: 10
  ...
END

我可以设置一个存储库并跟踪此文件的更改,以查看

VALUE
何时更改,但是我如何理解像
some_name
这样的条目的更改历史记录?值的变化显示出来,但由于带有
NAME: some_name
的行没有改变,我在搜索结果中没有看到它。所以到目前为止,我不知道如何查看上次
some_name
何时更改或更改了多少次等。

我认为这类似于了解功能的更改历史记录,用户希望了解整个功能在各个修订之间的历史记录。

到目前为止,我正在使用 TortoiseHg 进行初步设置,因此我愿意在此时切换工具,我对版本控制也是完全陌生的。

git version-control mercurial
1个回答
0
投票

在 Mercurial 中,

hg grep
命令接受 Python 正则表达式。

grep

在指定文件中搜索模式的修订历史记录:

hg grep [选项]...模式[文件]...搜索修订历史记录 指定文件或整个项目中的正则表达式。

因此

hg grep --diff "(\bsome_name\b)(.|\s)*?(\bEND\b)"
将匹配从
some_name
END
的文本,并返回该文本块中发生的更改。尝试一下这里并改编自这里

此外,在 TortoiseHg 中使用“视图”>“搜索”并将正则表达式

(\bsome_name\b)(.|\s)*?(\bEND\b)
放入“搜索”字段中也可以完成相同的操作(请参阅此处)。

© www.soinside.com 2019 - 2024. All rights reserved.