1

我正在处理这个文件,我遇到了一段我认为在历史上的某个时刻发生了变化的代码,我想知道它在哪里发生了变化。

这是一个非常大的文件,有很多历史,所以当我使用 hg diff 时,我会得到一个巨大的列表,我认为搜索它并不有效。

如果我可以查看文件的旧版本,看看文件在某个时间点的样子,那就太好了。然后我可以看到代码当时是如何工作的,因此我可以得出错误是如何演变的结论。当然,我想在不更新文件的情况下执行此操作,因为我目前正在使用它并且已经对其进行了更改。

那么,有什么方法可以在不更新文件的情况下查看文件的历史记录?

4

2 回答 2

2

有一些工具可以帮助您:

要获取文件的历史记录,您可以使用hg log FILE这可能是最好的起点。

您还可以使用hg annotate FILEwhich 列出文件中的每一行,并说明哪个版本将其更改为当前状态。它还可以使用--rev REV命令 tail 进行修订以查看文件的旧版本。

要仅列出给定版本的文件内容,您可以使用hg cat FILE --rev REV.

如果证明使用这些工具很难追踪错误,您可以将您的存储库克隆到其他地方并使用hg bisect它来追踪它。

于 2013-03-26T11:05:19.707 回答
0

hg bisect 可让您找到导致问题的变更集。要开始搜索,请运行hg bisect --reset命令。Mercurial: The Definitive Guide中有很好的文档。

于 2013-03-26T13:06:37.950 回答