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