OSDN Git Service

Auto-detect the current git branch before submitting back to perforce.
authorSimon Hausmann <simon@lst.de>
Wed, 14 Mar 2007 22:30:23 +0000 (23:30 +0100)
committerSimon Hausmann <simon@lst.de>
Wed, 14 Mar 2007 22:30:23 +0000 (23:30 +0100)
Signed-off-by: Simon Hausmann <simon@lst.de>
contrib/fast-import/p4-git-sync.py

index a4d126f..4f02079 100755 (executable)
@@ -33,6 +33,10 @@ def p4Cmd(cmd):
         result.update(entry)
     return result;
 
+def die(msg):
+    sys.stderr.write(msg + "\n")
+    sys.exit(1)
+
 try:
     opts, args = getopt.getopt(sys.argv[1:], "", [ "continue", "git-dir=", "origin=", "reset", "master=",
                                                    "submit-log-subst=", "log-substitutions=", "interactive",
@@ -46,7 +50,7 @@ logSubstitutions["<enter description here>"] = "%log%"
 logSubstitutions["\tDetails:"] = "\tDetails:  %log%"
 gitdir = os.environ.get("GIT_DIR", "")
 origin = "origin"
-master = "master"
+master = ""
 firstTime = True
 reset = False
 interactive = False
@@ -88,9 +92,12 @@ origin = "origin"
 if len(args) == 1:
     origin = args[0]
 
-def die(msg):
-    sys.stderr.write(msg + "\n")
-    sys.exit(1)
+if len(master) == 0:
+    sys.stdout.write("Auto-detecting current branch: ")
+    master = os.popen("git-name-rev HEAD").read().split(" ")[1][:-1]
+    if len(master) == 0 or not os.path.exists("%s/refs/heads/%s" % (gitdir, master)):
+        die("\nFailed to detect current branch! Aborting!");
+    sys.stdout.write("%s\n" % master)
 
 def system(cmd):
     if os.system(cmd) != 0: