Tutorial.py #1

  • //
  • guest/
  • sven_erik_knop/
  • P4Pythonlib/
  • scripts/
  • Tutorial.py
  • View
  • Commits
  • Open Download .zip Download (2 KB)
#!/usr/bin/env python3

from __future__ import print_function
import P4
import sys
import os

USER = "sven_erik_knop" # replace this
PASSWORD = "password"  # replace this

def create_client(p4):
    """Create a client in the server and return its name"""

    # define a client name
    clientName = USER + ".python-sdk.test.ws"

    # fetch the default client template
    client = p4.fetch_client(clientName)

    # set the client root explicitly
    client._root = os.getcwd()

    # set the client view
    client._view = [ "//guest/{user}/python-sdk/test/... //{client_name}/...".format(user=USER, client_name=clientName) ]

    # set the client options to allwrite to make all files writable
    client._options = client._options.replace("noallwrite", "allwrite")

    # write the client spec back to the server. Client now exists
    p4.save_client( client )

    return clientName

p4 = P4.P4()
p4.port = "public.perforce.com:1666"

try:
    with p4.connect():

        p4.user = USER
        p4.password = PASSWORD

        p4.run_login()

        # create the client
        p4.client = create_client(p4)

        # sync the files, ignore warning that all files are synced already
        p4.run_sync(exception_level = 1)

        # open a file for append (or create, if non existent), write some strings
        with open("file.txt", "a") as f:
            print("Changed by user {}".format(USER), file=f)

        # discover any changed files
        p4.run_reconcile()

        # submit the change
        change = p4.fetch_change()
        change._description = "My change description"
        p4.run_submit( change )

except P4.P4Exception as e:
    print("Encountered error: {}".format(e), sys.stderr)
    sys.exit(1)


# Change User Description Committed
#1 19621 Sven Erik Knop Little Tuturial for SDK tutorials