首页 > 代码库 > [Perforce系列—] 1. 使用Perforce 命令 与常用命令
[Perforce系列—] 1. 使用Perforce 命令 与常用命令
前言
常见使用 p4 的方式就是使用Client 端,但是有的时候遇到这样的状况:
1. Client 端的操作方式的局限, 有些操作无法实现 (一般这样的状况不多)
2. 使用P4 和其他一些工具进行整合, 比如p4 整合自动部署
3. 使用代码的方式来使用p4, 比如使用Perl语言来与P4 进行交互
。。。。
以上的状况, 直接使用P4 Client 的话, 就没办法达成我们的要求了。这个时候自然就要使用到P4的命令行。
关于环境变量设置
Perforce的环境变量配置
下载安装完P4 之后, 就可以在Command 下使用P4了。直接输入 p4 看看
回报 Port这样的变量没有。
想一下在使用P4 Client 的时候, 基本上会指定Server, Port 这样的信息, 在命令行的方式下,同样要指定,
设置环境变量就是方式之一:
可以直接在系统的环境变量中设置, 也可以直接在命名行下执行, 或是把以下命令写成一个批处理执行。
set P4PORT=IP:port set P4USER= set P4PASSWD =
IP:port 是对应的p4 server 的服务器Ip和端口。
P4USER和P4PASSWD是分配的用户名和密码。
设置完成之后再运行 p4 看看
1. 到这里,有些不需要client workspace 的p4 命令就可以使用了,比如查看某个服务端文件改动记录的命令: filelog
p4 filelog //serverpath/filename
这个时候, 有可能会出现:
使用字符集不匹配的问题:
可以通过设置 P4CHARSET 和 P4COMMANDCHARSET 来解决这个问题
我这里的设置是:
set P4CHARSET=utf16 set P4COMMANDCHARSET=utf8
2. 需要client workspace 的p4 命令 就需要设置 P4CLIENT 的环境变量了,
(像sync 命令, 把服务端的文件同步到本地)
和上面的设置方式类似:
P4CLIENT=Workspace_name
不需要环境变量的方式
你可能会想, 使用环境变量的方式, 多少还是有一点麻烦:
比如如果是代码方式,在不同的机器上运行需要在不同机器去设置环境变量;
workspace 如果发生更改的话; 修改也不方便。
是否可以直接在命令中指定这些需要的信息呢? 答案当然是可以的。
p4 -C utf8 -p IP:port -u user -p password -c workspace_name
这条命名就代替了上面环境变量设置的方式。
接下来要执行什么命令直接加在后面就可以了。
还是以filelog 为例的话, 完整的命令就是:
p4 -C utf8 -p IP:port -u user -p password -c workspace_name filelog //serverpath/filename
是不是方便很多了^^
常用命令 - sync
最常使用的命令就是 sync 命令了, 这个命名是把服务端的数据更新到本地workspace 中
可以更新一个文件, 也可以更新一类文件, 还可以更新目录下所有的文件
1) 更新单个文件:
p4 -C utf8 -p IP:port -u user -p password -c workspace_name sync //serverpath/filename.txt
2) 更新目录下所有文件
p4 -C utf8 -p IP:port -u user -p password -c workspace_name sync //serverpath/...
3)更新目录下某种后缀名的文件
p4 -C utf8 -p IP:port -u user -p password -c workspace_name sync //serverpath/*.txt
4)获取目录下版本号为 2 的某种后缀名的文件
p4 -C utf8 -p IP:port -u user -p password -c workspace_name sync //serverpath/*.txt#2
这种用法在代码开发时会比较有用。 比如目录下文件太多, 只想取版本号大于等于2的文件, 也就是说对于没有更动过的文件不去管它。
这里获取的是第二个版本, 而以上没有加版本的状况获取的都是最新版本。
5) -f 参数, 强制获取
强制获取就是如果本地有改动的话, 强制使用服务端的文件替换本地文件。
这个和在Client 使用以下方式的效果是一样的:
常用命令 - filelog
filelog 可以用来查看单个文件的Check in 记录。类似:
p4 -C utf8 -p IP:port -u user -p password filelog //serverpath/filename.txt
执行后打印的信息的格式是:
... #rev
changechnum
action
ondate
byuser
@client
(type
) ‘description
‘
常用命令 - changes
changes 可以查看服务端某个目录下所有的更改记录
p4 -C utf8 -p IP:port -u user -p password changes //serverpath/...