【发布时间】:2012-03-26 12:15:43
【问题描述】:
有人有这样的脚本可以分享吗?
- 将挂起的更改列表编号作为输入
- 输出统一的差异(包括为添加而打开的文件)
我从经验中知道,很多整天都在使用 perforce 的人都有这些问题。当通过“p4 diff”区分新添加的文件时,我真的可以在“文件不在客户端视图中”的整个问题上使用帮助。
【问题讨论】:
有人有这样的脚本可以分享吗?
我从经验中知道,很多整天都在使用 perforce 的人都有这些问题。当通过“p4 diff”区分新添加的文件时,我真的可以在“文件不在客户端视图中”的整个问题上使用帮助。
【问题讨论】:
我没有时间找到合适的解决方案,所以我使用了这个衬垫:
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> 形式的行的<depot-file> 部分
xargs p4 diff -du
获取仓库文件列表并在其上运行p4 diff -du。 -d 标志将 u(统一格式)传递给您的 $P4DIFF 程序(应该是 diff)。
【讨论】:
sed、xargs 和 diff 通常出现在类 Unix 系统上。在 Windows 上,您可以安装第 3 方类 Unix 实用程序,或尝试使用 PowerShell。见:stackoverflow.com/q/127318/110488
这对我有用:
p4 diff2 //depot/a/b/c/... //depot/a/b/c/...@=$CHANGELIST | grep -v '<none>'
路径越具体,执行速度越快。 您还可以针对不同的分支对更改列表进行 diff2。
【讨论】:
p4 describe -du changelist 不适合你吗?
【讨论】:
p4 describe 根本不显示任何差异,即使对于已修改的文件,如果更改列表处于待处理状态。