P4(Perforce): p4python實現同步數據到本地

P4(Perforce): p4python實現同步數據到本地

一、問題(p4 client 無法通過命令修改Client Root)

  1. 環境:centos 7, p4
  2. 現象: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
        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()

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章