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
搜寻「;“待办事项”;仅在特定mercurial变更集中更改的文件中?_Mercurial - Fatal编程技术网

搜寻「;“待办事项”;仅在特定mercurial变更集中更改的文件中?

搜寻「;“待办事项”;仅在特定mercurial变更集中更改的文件中?,mercurial,Mercurial,我在一个已经有很多“TODO”注释的代码库中工作,在推送我的变更集之前,我想确保我没有在其中留下任何TODO注释(而不是实际这样做,或者将其添加到新功能数据库并删除注释) 目前,我只是在每个评论中使用“TODO:Wilka”,所以很容易搜索。但是Mercurial有没有办法只在变更集集合中已更改的文件中搜索“TODO”?理想情况下,它将只搜索实际更改的行,但即使只搜索文件也不错。要搜索特定的修订集,您可以执行以下操作: hg grep -r 0:3 "\bTODO:" 通过管道传输到grep的

我在一个已经有很多“TODO”注释的代码库中工作,在推送我的变更集之前,我想确保我没有在其中留下任何TODO注释(而不是实际这样做,或者将其添加到新功能数据库并删除注释)


目前,我只是在每个评论中使用“TODO:Wilka”,所以很容易搜索。但是Mercurial有没有办法只在变更集集合中已更改的文件中搜索“TODO”?理想情况下,它将只搜索实际更改的行,但即使只搜索文件也不错。

要搜索特定的修订集,您可以执行以下操作:

hg grep -r 0:3 "\bTODO:"

通过管道传输到grep的想要的修订之间的差异,只有修改过的文件才能通过grep进行搜索

hg diff -r 100:105 | grep TODO
编辑: 如评论中所述,这是假定安装了grep(因此非Windows环境)

@谢谢Tim,如果使用Windoes,请使用findstr而不是grep,自动方式是通过Mercurial。扩展可能会有所帮助

根据我的经验,提交钩子是一个混合包,通常做你想做的事情,但当你真的想提交一个TODO时,它会让你感到厌烦。他们试图解决这个问题,但解决方法可能比问题更糟糕


我还没有探索过像hg com这样的东西的可能性,但是忽略我的TODO钩子,它可能很漂亮。

这假设grep是可用的-这在(例如)标准的windows框上不是这样的。在windows上,你可以用
findstr
替换
grep
。在这个简单的例子中,它也会起同样的作用。你不是说预推钩子吗?嗯,这将显示项目中的所有TODO,而不仅仅是他介绍的那些?这是一个公平的观点-这将列出给定修订版中“TODO:”的所有实例。删除“--all”只会返回每个文件匹配的第一个匹配结果。我也不认为这个问题会询问他介绍的匹配结果(“我只能在变更集集合中已更改的文件中搜索“TODO?”),它还会给出输出,详细说明特定行在哪个版本中更改。我坚持我的答案:)但编辑了我的答案,删除了“--all”,因为我认为这是不必要的。