Different versions of p4 have different output for the where command ;(

Signed-off-by: Simon Hausmann <simon@lst.de>
This commit is contained in:
Simon Hausmann 2007-03-24 09:15:11 +01:00
parent 967f72e21b
commit cb2c9db507

View File

@ -36,6 +36,22 @@ def p4Cmd(cmd):
result.update(entry) result.update(entry)
return result; return result;
def p4Where(depotPath):
if not depotPath.endswith("/"):
depotPath += "/"
output = p4Cmd("where %s..." % depotPath)
clientPath = ""
if "path" in output:
clientPath = output.get("path")
elif "data" in output:
data = output.get("data")
lastSpace = data.rfind(" ")
clientPath = data[lastSpace + 1:]
if clientPath.endswith("..."):
clientPath = clientPath[:-3]
return clientPath
def die(msg): def die(msg):
sys.stderr.write(msg + "\n") sys.stderr.write(msg + "\n")
sys.exit(1) sys.exit(1)
@ -318,11 +334,7 @@ class P4Sync(Command):
print "Internal error: cannot locate perforce depot path from existing branches" print "Internal error: cannot locate perforce depot path from existing branches"
sys.exit(128) sys.exit(128)
if not depotPath.endswith("/"): clientPath = p4Where(depotPath)
depotPath += "/"
clientPath = p4Cmd("where %s..." % depotPath).get("path")
if clientPath.endswith("..."):
clientPath = clientPath[:-3]
if len(clientPath) == 0: if len(clientPath) == 0:
print "Error: Cannot locate perforce checkout of %s in client view" % depotPath print "Error: Cannot locate perforce checkout of %s in client view" % depotPath