如何列出由perforce更改列表更改的所有文件
我有一个特定的更改列表,我想从命令行列出属于该更改列表的所有文件。我该怎么做?这是命令。要描述特定的变更列表,您需要如何列出由perforce更改列表更改的所有文件,perforce,Perforce,我有一个特定的更改列表,我想从命令行列出属于该更改列表的所有文件。我该怎么做?这是命令。要描述特定的变更列表,您需要p4 description 更新: 如果只需要文件名,可以使用带-F选项的命令覆盖输出格式:p4-Ztag-F“%depotFile%”文件@= 有关-F选项的更多信息,请参阅。迈克·奥康纳的回答对我也有帮助 至于只是更改文件列表,难道就不能像这样简单吗 p4 describe -s {change number} | grep '^\.\.\.' | awk '{print $
p4 description
更新:
如果只需要文件名,可以使用带-F选项的命令覆盖输出格式:p4-Ztag-F“%depotFile%”文件@=
有关-F选项的更多信息,请参阅。迈克·奥康纳的回答对我也有帮助 至于只是更改文件列表,难道就不能像这样简单吗
p4 describe -s {change number} | grep '^\.\.\.' | awk '{print $2}'
这就是我要用的。p4 change-o
它的末尾有一个文件列表。给出了最好的答案,但只是在评论中。我添加了一个答案,让它更具可视性,并稍作改进
对于Change12345,这是您仅需p4
命令即可获得的最接近的更改
p4 files @=12345
只有这个输出
//depot/file1#3 - delete change 3 (text)
//depot/file2#3 - edit change 3 (text)
//depot/file5#1 - add change 3 (text)
如果要删除每个文件的无关信息,则需要通过命令行上的更多工具处理该输出。假设是标准的unixy环境,您可以像这样使用单个sed
命令
p4 files @=12345 | sed s/#.*//
达到预期的效果
//depot/file1
//depot/file2
//depot/file5
迈克写的是这个
p4 describe 12345
这在输出中提供了所有这些额外的细节
Change 12345 by day@client1 on 2013/06/21 00:25:28
Some example changes
Affected files ...
... //depot/file1#3 delete
... //depot/file2#3 edit
... //depot/file5#1 add
Differences ...
==== //depot/file2#3 (text) ====
1c1
< This is file 2
---
> This is file 2 - edited
我认为这里给出的解决方案更简洁。如果您的变更列表仍然挂起,您可以运行
p4 opened
或p4 opened-c
,以获得特定(未提交)的变更列表编号
从:
“列出在挂起的更改列表中打开的文件。”这是我需要的命令!然而,它相当冗长。我可以用-s排除不同的代码,但有没有办法只列出更改的文件?@coffee如果你对Python感到满意,可以运行
p4-G descripe-s
,它将导致输出格式化为编组的Python字典对象,然后你可以只解析和检索文件。"@=1234“如果1234是CL编号如果要在可视化客户端中设置一个方便的p4描述工具,请选择工具|管理自定义工具、新建|工具,并在生成的对话框中设置以下内容:*名称:描述变更列表*添加到适用的上下文菜单:True*应用程序:p4*参数:description-s%c*在终端窗口中运行工具:True。”。这提供了一个方便的上下文菜单项,可用于更改列表(默认值除外),并输出到终端窗口以方便复制。可能是最简单的方法:p4 files@=
@user114245更准确地说,您应该为提交的更改列表添加应答,不,不是。“文件”部分仅针对挂起的更改列表显示。提交的变更列表的输出实际上有一条注释,描述了文件部分,其中说明了默认变更列表中打开的哪些文件将添加到此变更列表中。您可以从此列表中删除文件。(仅限新的变更列表。)在2013.1版中,我可以看到,对于挂起的变更列表,“文件”部分甚至没有显示。您可以将正则表达式模式移动到awk脚本中:awk'/^\.\.\./{print$2}'
p4 fstat-t“depotFile”@=12345
也非常好。但是你必须删掉。。。存储文件
前导文本。
p4 describe -s 12345 | grep '^\.\.\.' | awk '{print $2}'