diff options
author | Tor Arvid Lund <torarvid@gmail.com> | 2008-12-04 14:37:33 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-12-04 18:44:16 -0800 |
commit | 7f705dc3686c2b1c77172b6847c1406eb66a20c3 (patch) | |
tree | f971b4dd147c60ae081185e4b2aa4239e3678a54 /contrib | |
parent | 304dcf262e3f8524c909a13cf73a67522be6353b (diff) | |
download | git-7f705dc3686c2b1c77172b6847c1406eb66a20c3.tar.gz git-7f705dc3686c2b1c77172b6847c1406eb66a20c3.tar.xz |
git-p4: Fix bug in p4Where method.
When running:
p4 where //depot/SomePath/...
The result can in some situations look like:
//depot/SomePath/... //client/SomePath/... /home/user/p4root/SomePath/...
-//depot/SomePath/UndesiredSubdir/... //client/SomePath/UndesiredSubdir/... /home/user/p4root/SomePath/UndesiredSubdir/...
This depends on the users Client view. The current p4Where method will now
return /home/user/p4root/SomePath/UndesiredSubdir/... which is not what we
want. This patch loops through the results from "p4 where", and picks the one
where the depotFile exactly matches the given depotPath (//depot/SomePath/...
in this example).
Signed-off-by: Tor Arvid Lund <torarvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'contrib')
-rwxr-xr-x | contrib/fast-import/git-p4 | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/contrib/fast-import/git-p4 b/contrib/fast-import/git-p4 index b44fbfc9b..ee504e90e 100755 --- a/contrib/fast-import/git-p4 +++ b/contrib/fast-import/git-p4 @@ -245,7 +245,15 @@ def p4Cmd(cmd): def p4Where(depotPath): if not depotPath.endswith("/"): depotPath += "/" - output = p4Cmd("where %s..." % depotPath) + depotPath = depotPath + "..." + outputList = p4CmdList("where %s" % depotPath) + output = None + for entry in outputList: + if entry["depotFile"] == depotPath: + output = entry + break + if output == None: + return "" if output["code"] == "error": return "" clientPath = "" |