P4(Perforce): p4python實現同步數據到本地
一、問題(p4 client 無法通過命令修改Client Root)
- 環境:centos 7, p4
- 現象:p4 client 無法通過命令修改Client Root,只能通過交互界面修改。
二、解決方案:p4python
import os
from P4 import P4, P4Exception
def sync_workspace():
""" sync from perforce"""
p4_workspace = "at_qa_01_dev_01"
p4_root = "p4d.xxx.com:1666"
p4 = P4()
p4.port = p4_root
p4.user = "at_qa_01"
p4.password = "xxx"
view_path = "view_dir"
ws_path = "ws_path"
try:
p4.connect()
p4.exception_level = 1
p4.run_login()
client = p4.fetch_client(p4_workspace)
client._root = os.getcwd()
view = "//{0}/... //{1}/{2}/...".format(
view_path,
p4_workspace, ws_path)
client["View"] = [view]
p4.save_client(client)
p4.client = p4_workspace
p4.run_sync()
except P4Exception:
for e in p4.errors:
print(e)
return False
finally:
p4.disconnect()
if __name__ == '__main__':
sync_workspace()