Perforce如何知道当前workspace包含的最新changelist

时间:2022-03-08 23:13:45

如何知道Perforce的client workspace更新到哪个changelist呢?
Perforce并没有提供很直接的命令,因为Perforce从根本上还是对每个文件单独编号的,但是又提供了changelist功能,即对多个文件的commit具有原子性,要么所有文件都commit成功,要么就一个都不要commit成功。
在git里面,很简单就能通过

git log

知道当前的commit信息。
在Perforce里面则需要通过

p4 changes

来查询changelists。

p4 changelists

p4 changes的一个别名。这两个其实是一样的。

p4 changes -m 1

能够得到所有的当前最新的changelist。
要想得到当前workspace里面最新的changelist可以进入workspace的根目录使用

p4 changes -m 1 ...#have

-m 是指要返回多少个changelists, 因为返回changelists是降序的,所以用-m 1正好返回当前workspace里面包含的最新changelist。

在Windows command line里面可以使用

p4 changes -m 1 #have

在MAC OS里面#have会被认为是注释,所以要加上引号

p4 changes -m 1 "#have"

推荐还是不要省略, 我查了一个Perforce的文档,没有找到省略掉后的默认定义。