使用多个文件规范创建perforce更改列表的简便方法

Bri*_*ton 8 version-control perforce changelist

我希望提交一个包含多个文件规范的更改列表,例如......这...... file.h ......其他.... Perforce不会让我.我可以从文件创建更改列表,但我确实希望有机会查看文件并输入注释.这适用于命令行解决方案.

Mar*_*bst 15

如果您正在寻找UNIX/*NIX命令行解决方案,这将为您提供一个新的,干净的更改列表,并将数字保存在$cl:

export cl=`p4 change -o | grep '^\(Change\|Client\|User\|Description\)' | p4 change -i | cut -d ' ' -f 2`
Run Code Online (Sandbox Code Playgroud)


小智 10

这是一个无休止的令人沮丧的问题.您应该能够从Windows命令行创建p4更改列表,而无需通过执行以下操作来调用编辑器:

p4 change -o 
    | findstr /C:Description: /C:Change: /C:Client: /C:User: /C:Status: 
    | p4 change -i
Run Code Online (Sandbox Code Playgroud)

返回字符串将类似于"更改1500创建".您可以解析更改列表.然后,您可以执行以下操作添加单个文件规范:

p4 edit -c 1500 //depot/base/...files.c
Run Code Online (Sandbox Code Playgroud)

或者沿着那条线的东西.该解决方案的相对重要的问题是无法修改描述.或者,您可以使用必需的Description,Change,Client等字符串创建临时文件,并通过以下方式创建更改列表:

p4 change -i < tempfile.txt
Run Code Online (Sandbox Code Playgroud)

这似乎有点邋..但可能是脚本解决方案的最佳选择.


ten*_*npn 5

根据Michael Gilbert的回答,您可以在powershell中编辑描述,如下所示:

$newCLFormat = p4 change -o | select-string -pattern change, client, status
$newCLFormat += "Description: " + $myDescription
$newCLFormat | p4 change -i
Run Code Online (Sandbox Code Playgroud)

要提取新的变更清单编号:

$newCLFormat | p4 change -i | select-string "\b(\d)+" | %{$_.matches[0].value}
Run Code Online (Sandbox Code Playgroud)

现在必须有一个更快,更整洁的方法来提取这个数字?

编辑:重构的findstr到select-string

编辑:检索更改列表的更简洁的方法:

$newCLFormat | p4 change -i | %{ $_.split()[1] }
Run Code Online (Sandbox Code Playgroud)


Dou*_*der 4

您可以创建一个待处理的更改列表,然后将所需的所有文件移至该列表中,然后再提交。即使是从命令行,尽管我发现 p4V 更容易使用此功能。

http://www.perforce.com/perforce/doc.current/manuals/cmdref/change.html#1040665

p4 change
Run Code Online (Sandbox Code Playgroud)

创建待处理的变更列表。

p4 reopen 
Run Code Online (Sandbox Code Playgroud)

将文件移动到挂起的更改列表中。

  • 为了避免使用编辑器,需要`p4change-o`和`p4change-i` - (2认同)