git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCHv2 3/4] git-p4: importing labels should cope with missing owner

From
Luke Diamand <luke@diamand.org>
Date
Nov 30, 2011, 09:03 UTC
Message-ID
<1322643817-13051-4-git-send-email-luke@diamand.org>
In-Reply-To
<1322643817-13051-1-git-send-email-luke@diamand.org>

In p4, the Owner field is optional. If it is missing, construct something sensible rather than crashing.

Signed-off-by: Luke Diamand <luke@diamand.org>
---
 contrib/fast-import/git-p4 |   45 +++++++++++++++++++++++--------------------
 1 files changed, 24 insertions(+), 21 deletions(-)
diff --git a/contrib/fast-import/git-p4 b/contrib/fast-import/git-p4
index 02f0f54..d97f927 100755
--- a/contrib/fast-import/git-p4
+++ b/contrib/fast-import/git-p4
@@ -553,6 +553,27 @@ class Command:
     def __init__(self):
         self.usage = "usage: %prog [options]"
         self.needsGit = True
+        self.myP4UserId = None
+
+    def p4UserId(self):
+        if self.myP4UserId:
+            return self.myP4UserId
+
+        results = p4CmdList("user -o")
+        for r in results:
+            if r.has_key('User'):
+                self.myP4UserId = r['User']
+                return r['User']
+        die("Could not find your p4 user id")
+
+    def p4UserIsMe(self, p4User):
+        # return True if the given p4 user is actually me
+        me = self.p4UserId()
+        if not p4User or p4User != me:
+            return False
+        else:
+            return True
+
 
 class P4UserMap:
     def __init__(self):
@@ -694,7 +715,6 @@ class P4Submit(Command, P4UserMap):
         self.verbose = False
         self.preserveUser = gitConfig("git-p4.preserveUser").lower() == "true"
         self.isWindows = (platform.system() == "Windows")
-        self.myP4UserId = None
 
     def check(self):
         if len(p4CmdList("opened ...")) > 0:
@@ -802,25 +822,6 @@ class P4Submit(Command, P4UserMap):
                     return 1
         return 0
 
-    def p4UserId(self):
-        if self.myP4UserId:
-            return self.myP4UserId
-
-        results = p4CmdList("user -o")
-        for r in results:
-            if r.has_key('User'):
-                self.myP4UserId = r['User']
-                return r['User']
-        die("Could not find your p4 user id")
-
-    def p4UserIsMe(self, p4User):
-        # return True if the given p4 user is actually me
-        me = self.p4UserId()
-        if not p4User or p4User != me:
-            return False
-        else:
-            return True
-
     def prepareSubmitTemplate(self):
         # remove lines in the Files section that show changes to files outside the depot path we're committing into
         template = ""
@@ -1506,7 +1507,9 @@ class P4Sync(Command, P4UserMap):
 
                     owner = labelDetails["Owner"]
                     tagger = ""
-                    if author in self.users:
+                    if not owner:
+                        tagger = "%s <a@b> %s %s" % (self.p4UserId(), epoch, self.tz)
+                    elif author in self.users:
                         tagger = "%s %s %s" % (self.users[owner], epoch, self.tz)
                     else:
                         tagger = "%s <a@b> %s %s" % (owner, epoch, self.tz)
-- 
1.7.8.rc1.209.geac91.dirty
Previous: Luke DiamandNext: Luke Diamand
Message 4 of 17 in “[PATCHv2 0/4] git-p4: small fixes to branches and labels; tests”
  1. Luke DiamandNov 30, 2011
  2. 1/4 git-p4: handle p4 branches and labels containing shell charsLuke Diamand, Nov 30, 2011
  3. 2/4 git-p4: cope with labels with empty descriptionsLuke Diamand, Nov 30, 2011
  4. 3/4 git-p4: importing labels should cope with missing ownerLuke Diamand, Nov 30, 2011
  5. 4/4 git-p4: add test for p4 labelsLuke Diamand, Nov 30, 2011
  6. Vitor AntunesNov 30, 2011
  7. Luke DiamandNov 30, 2011
  8. Vitor AntunesNov 30, 2011
  9. Pete WyckoffNov 30, 2011
  10. Pete WyckoffNov 30, 2011
  11. Vitor AntunesDec 1, 2011
  12. Pete WyckoffDec 4, 2011
  13. Luke DiamandDec 1, 2011
  14. Vitor AntunesDec 1, 2011
  15. Pete WyckoffDec 1, 2011
  16. Vitor AntunesDec 1, 2011
  17. Luke DiamandDec 2, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.