git-p4: Allow filtering Perforce branches by user
authorVitor Antunes <vitor.hda@gmail.com>
Thu, 18 Aug 2011 23:44:04 +0000 (00:44 +0100)
committerJunio C Hamano <gitster@pobox.com>
Tue, 23 Aug 2011 04:08:37 +0000 (21:08 -0700)
All branches in the Perforce server are downloaded to allow branch detection. If
you have a centralized server on a remote location and there is a big number of
branches this operation can take some time.
This patch adds the configuration option git-p4.branchUser to allow filtering
the branch list by user. Although this limits the branch maintenance in Perforce
to be done by a single user, it might be an advantage when the number of
branches being used in a specific depot is very small when compared with the
branches available in the server.

Signed-off-by: Vitor Antunes <vitor.hda@gmail.com>
Acked-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
contrib/fast-import/git-p4
contrib/fast-import/git-p4.txt

index 72a5b6c1830aef015ad1c371d365d593ffab4be0..6314c20ac1780e652d69143949b14b7e761e3917 100755 (executable)
@@ -1455,7 +1455,13 @@ class P4Sync(Command, P4UserMap):
     def getBranchMapping(self):
         lostAndFoundBranches = set()
 
-        for info in p4CmdList("branches"):
+        user = gitConfig("git-p4.branchUser")
+        if len(user) > 0:
+            command = "branches -u %s" % user
+        else:
+            command = "branches"
+
+        for info in p4CmdList(command):
             details = p4Cmd("branch -o %s" % info["branch"])
             viewIdx = 0
             while details.has_key("View%s" % viewIdx):
index 2ffbccc9bd0f10b81f7cf37561023c551ccbd9af..97b66b9297d30b75f034afd0bd79e4ba85fcdef0 100644 (file)
@@ -257,6 +257,12 @@ Perforce server. Will enable --find-copies-harder git argument.
 
   git config [--global] git-p4.detectCopies true
 
+git-p4.branchUser
+
+Only use branch specifications defined by the selected username.
+
+  git config [--global] git-p4.branchUser username
+
 Implementation Details...
 =========================