在Perforce中,如何在挂起的更改列表中找到文件的本地路径?

eng*_*ech 10 perforce

给定Perforce更改列表编号,我想查找该挂起更改列表中所有文件的本地路径.

  • p4描述更改列表 - 获取更改列表中文件的库路径(方法1)
  • p4打开-c changelist - 获取更改列表中文件的depot路径(方法2)
  • p4 has - 获取以前提交过的所有文件的depot路径和本地路径

使用p4 describep4的组合,我可以找到更改列表中之前已提交给Perforce的所有文件的本地路径(并且可以打开以进行删除编辑).

但是为了添加而打开的文件呢?p4对打开要添加的文件一无所知.

鉴于待定的Perforce更改列表,如何找到即将添加到Perforce的文件的本地路径?

Pet*_* G. 12

要输出更改列表的所有挂起添加的本地路径,您可以使用:

p4 opened -c changelist | grep -w add | sed 's/#.*//' \
| p4 -x - where | awk '/^\// {print $3}'
Run Code Online (Sandbox Code Playgroud)

这样做没有grep但是有点模糊:

p4 opened -c changelist | sed -n 's/\(.*\)#.*- add .*/\1/p' \
| p4 -x - where | awk '/^\// {print $3}'
Run Code Online (Sandbox Code Playgroud)

  • @tenpn,感谢再次引起对此的关注.我终于尝试了多次映射.在这种情况下,`p4 where`输出多行,只有以'//'开头的那一行是正确的.我纠正了这个案子的答案. (2认同)

Sam*_*ord 7

待更改列表中所有文件的本地路径,无需任何外部或特定于平台的工具:

p4 -F %clientFile% fstat -Ro -F action=add [-e CHANGE] //...
Run Code Online (Sandbox Code Playgroud)

如果您想要为所有操作打开文件,请删除“-F action=add”。


小智 6

你当然也可以使用

p4 -ztag opened -c changelist
Run Code Online (Sandbox Code Playgroud)

这将为每个打开的文件报告depotFile和clientFile.仅列出客户端文件:

p4 -ztag opened -c changelist | grep clientFile | awk '{print $3}'
Run Code Online (Sandbox Code Playgroud)

将客户端/客户端的//客户端替换为读者的练习.