有时,我发现自己想在Perforce中搜索变更列表描述的文本。在P4V中似乎没有办法做到这一点。我可以通过将changes命令的输出重定向到文件来做到这一点。
p4 changes -l > p4changes.txt
...(-l开关告诉它转储更改列表描述的全文),然后搜索文件,但这很麻烦。有没有人找到更好的方法?
Answers:
当提交的变更列表窗格具有焦点时,CTRL + F允许您进行任意文本搜索,其中包括变更列表说明。
唯一的限制是,它仅搜索从服务器获取的那些更改列表,因此您可能需要增加所检索的数量。这是通过“更改列表数量,作业,分支映射或一次要获取的标签的数量”设置完成的,可以通过导航至“编辑”->“首选项”->“服务器数据”来找到。
我使用p4sql并在“ changes”数据库上运行查询。这是perforce数据库架构
查询看起来像这样(未经测试)
select change from changes where description like '%text%' and p4options = 'longdesc'
编辑:添加了p4options以返回描述中超过31个字符。
这是Paul的“ grep”答案的Powershell版本。再次,它在变更描述中搜索指定的字符串,并返回其前面的3行,以包括变更ID:
p4 changes -L | select-string "search string" -Context (3,0)
当您可以通过管道传递输出less
并使用less
的搜索时,为什么还要重定向到文件?
p4 changes -l | less
然后按/提示输入搜索字符串。之后,n将跳至下一场比赛,而Shift+n将跳至上一场比赛。
less
Windows的实现是UnxUtils的一部分。
游戏上的Eddie在http://www.eddiescholtz.com/blog/archives/130上发布了他的Perforce Changelist Search 0.1
但是,我喜欢将我最喜欢的文本编辑器与以下命令一起使用:p4更改-s已提交// prog / stuff / main / ...> temp.txt
如果您仍然喜欢命令行,则可以编写一个小的perl脚本,该脚本可以:
用法类似于'p4 -ztag changes -l | yourperlfilter.pl searchterm1 searchterm2'
如果一切正常,您可以将其集成到p4win工具菜单中。