如何在Perforce中查看已删除/移动代码行的原添加/编辑人员?
查找Perforce中已删除代码的原始提交者技巧
不用逐行翻历史,这几个Perforce命令和工具技巧能快速定位目标:
p4 annotate(Blame功能)回溯版本
先定位代码被删除的变更列表(CL):执行p4 filelog -l foobar.java查看所有变更记录,找到包含删除目标代码行的CL(通常会有类似“deleted lines X-Y”的描述)。假设删除操作在CL12345,那查看删除前的版本:p4 annotate -c @12344 foobar.java这个命令会列出文件每一行的最后修改者,直接找到目标代码行对应的提交者即可。如果不知道具体CL,也可以用时间范围缩小搜索:
p4 annotate -c @2023/01/01,@2023/12/31 foobar.java替换成代码存在的时间段,快速锁定目标行的提交信息。
用
p4 filelog过滤变更内容
直接搜索包含目标代码的变更记录,省去翻所有历史的麻烦:p4 filelog -l foobar.java | grep -A 3 -B 3 "int foo = 1;"这个命令会过滤出所有提到该行代码的变更,找到最早出现的那条,里面就是原始添加者的信息。Windows环境下把
grep换成findstr即可。P4V图形界面快速定位
如果习惯用GUI操作,打开P4V找到foobar.java:- 右键选择「File History」打开历史视图;
- 在右上角搜索框输入代码片段(比如
int foo = 1),视图会自动过滤包含该内容的变更; - 找到最早的那条变更,点击查看详情就能看到提交者。
另外,也可以右键选「Annotate」,切换到代码被删除前的版本,直接查看每行的提交者标注。
批量删除场景:对比版本后回溯
如果代码是和其他内容一起被批量删除的,先对比删除前后的版本确认代码位置:p4 diff -du //depot/your/path/foobar.java@<删除前版本号> //depot/your/path/foobar.java@<删除版本号>确认目标代码块后,再用
p4 annotate在删除前的版本里查看这些行的提交者。
内容的提问来源于stack exchange,提问作者bayarea_engineer
相关产品推荐
相关产品推荐

