2013-02-24 41 views
1

我想要做的所有文件的视觉差异,其中包含给定的字符串我的工作拷贝 - 说“TODO”或“REL 1.00.01”水银DIFF子集,通过文件内容

的差异是针对另一个版本(特别是另一个分支的负责人)。

我的平台是Windows,我认为可能会有一个解决方案,将'hg grep'或'findstr'的结果输入到'hg diffmerge'中,但不能让我理解语法...

我该怎么做“包含字符串X的文件子集的差异”?

回答

1

我想你可以使用filesets来做到这一点。我使用kdiff3的图形差异,但我想像diffmerge会做同样的:

hg kdiff -r<OTHER_HEAD> -r. "set:grep('TODO')" 

文件集(set:grep('TODO'))选择在指定版本包含给定的字符串的文件,则该组文件在第一次和第二次修订之间进行正常比较。

Revsets也有一个grep函数,但它看起来不像它搜索文件内容,只是变更元数据。

+1

完美 - 谢谢shambulator :)看来,文件集搜索第二个修订版而不是工作目录。 (通过在你的答案中交换命令中的两个修订来证明这一点)。但是这没问题,它只消除了关于哪个修订将出现在diff的右侧/左侧的选择。 – piedmont 2013-02-25 09:58:19

+0

@piedmont:你是对的,从中选择。当然,diff有必要选择您指定的修订版本之一来查找文件;我原来强调工作目录是错误地基于我以前使用的文件集:)回答修改。 – shambulator 2013-02-25 11:31:28