Perforce等待changelist diff脚本

Perforce等待changelist diff脚本

问题描述:

有人有这样的脚本来分享吗?Perforce等待changelist diff脚本

  • 需要一个未决的变更表号输入
  • 从经验中许多谁与Perforce的一整天工作的人有这些踢围绕输出统一差异(包括打开添加文件)

我知道。当通过“p4 diff”区分新添加的文件时,我真的可以使用整个“文件不在客户端视图中”问题的帮助。

+0

我正在寻找这样的东西:(http://confluence.atlassian.com/display/CRUCIBLE/Creating+a+Patch+Review#CreatingaPatchReview-PerforcePatchCreationViaTheCommandLine or this:https://answers.atlassian.com/问题/ 9522/automatic-patch-review-script-for-perforce – user675801 2012-03-15 23:43:50

我没有时间去寻找一个妥善的解决办法,所以我用这一个班轮:

p4 describe $CHANGELIST | sed -ne 's:^\.\.\. \(.*\)#[0-9][0-9]* [a-z][a-z]*$:\1:p' | xargs p4 diff -du 

这里是它如何工作的:

自 -

。待处理的更改表示为“待处理”,不显示文件差异。

p4 describe $CHANGELIST 

本身不会做,但你可以使用它作为一个起点。它会(除其他外)获取$CHANGELIST中已更改的文件列表。

sed -ne 's:^\.\.\. \(.*\)#[0-9][0-9]* [a-z][a-z]*$:\1:p' 

打印形式... <depot-file>#<revision> <action>

xargs p4 diff -du 

的只是线的<depot-file>部分以油库的文件列表,并在其上运行p4 diff -du-d标志将u(统一格式)传递给您的$P4DIFF程序(应为diff)。

+0

这是否在Windows上工作,我得到“sed”是不被识别的命令。我怎样才能以彩色格式获得文件差异(包括删除和添加),我可以通过电子邮件发送给同行进行审阅? – noobcode 2015-05-05 11:13:59

+0

''sed','xargs'和'diff'通常出现在类Unix系统上。在Windows上,您可以安装第三方的类Unix工具,或尝试使用PowerShell。请参阅:http://*.com/q/127318/110488 – 2015-05-05 15:13:02

是否p4 describe -du changelist不适合你?

+1

不,这是为什么:脚本输出将是一个“差异”或“补丁”(取决于您的首选术语)。被喂给unix补丁程序实用程序以完全重新创建更改?“请注意,p4 describe不包含”为添加打开“的文件内容,因此该补丁程序将丢失所有新添加的文件。 – user675801 2012-03-09 18:41:46

+0

啊,我看到 - as一个解决方法是在整个目录上运行'p4 add',忽略已存在的文件,下一个版本会提供一个更好的解决方案(状态命令),一旦知道添加了哪些文件,就可以将其内容转储p ATCH。所以这需要一个我认为的脚本。 – 2012-03-14 20:25:08

+0

即使对于修改的文件,如果更改列表未决,“p4 describe”也不会显示任何差异。 – 2017-02-14 14:55:13

这个工作对我来说:

p4 diff2 //depot/a/b/c/... //depot/a/b/c/[email protected]=$CHANGELIST | grep -v '<none>' 

越具体路径,更快的执行。 您也可以针对不同分支区分变更列表。