通过Python执行Perforce命令
我正在写一个简单的脚本,想通过Python来同步一个Perforce目录,但我遇到了一些问题。这个脚本无法在那个[perforce]目录里执行任何操作。有人能告诉我怎么在那个目录里运行像p4 login和p4 sync这样的命令吗?
6 个回答
2
如果你觉得P4Python太复杂,不想去处理它的话,Perforce工作坊里有一个Python类,可以帮你把命令行和P4Python接口结合起来,使用起来会简单一些。
3
运行“p4 sync”这个命令而不加任何其他参数,会把当前客户端工作区映射到当前目录的文件同步过来。当你在Python脚本中运行这个命令时,要注意脚本实际运行的地方。
为了调试,可以先运行“p4 info”命令:它会告诉你当前的工作目录是什么,并显示你Perforce环境的其他详细信息。
如果你希望脚本无论在哪里运行都能同步到同一个目录,可以考虑指定一个路径来同步。例如:
- 仓库语法:p4 sync //depot/path/to/dir/...
- 本地语法(Windows):p4 sync c:\users\user\path\to\dir...
- 本地语法(*nix):p4 sync /home/user/path/to/dir/...
如果你的客户端工作区、用户或Perforce服务器的配置是通过P4CONFIG设置的,或者是通过P4V设置的,你可能需要在命令中添加这些设置的全局选项。例如:
- p4 -p server:1666 -c client_ws -u user sync //depot/path/to/dir/...
在Python中运行这些命令时,你可能会发现P4Python脚本API让配置变得更简单: https://www.perforce.com/perforce/r14.2/manuals/p4script/python.programming.html
4
Perforce有一个官方支持的Python接口。
你应该使用这个接口,而不是用subprocess
,因为它让你可以把p4连接当作一个对象来使用,通过这个接口来操作,而不是手动去解析p4命令的输出结果。