Add a "--notags" option for git-p4import.
authorSean <seanlkml@sympatico.ca>
Thu, 15 Jun 2006 21:26:21 +0000 (17:26 -0400)
committerJunio C Hamano <junkio@cox.net>
Sat, 17 Jun 2006 05:33:46 +0000 (22:33 -0700)
P4import currently creates a git tag for every commit it imports.
When importing from a large repository too many tags can be created
for git to manage, so this provides an option to shut that feature
off if necessary.

Signed-off-by: Sean Estabrooks <seanlkml@sympatico.ca>
Documentation/git-p4import.txt
git-p4import.py

index c198ff2..0858e5e 100644 (file)
@@ -8,7 +8,7 @@ git-p4import - Import a Perforce repository into git
 
 SYNOPSIS
 --------
-`git-p4import` [-q|-v] [--authors <file>] [-t <timezone>] <//p4repo/path> <branch>
+`git-p4import` [-q|-v] [--notags] [--authors <file>] [-t <timezone>] <//p4repo/path> <branch>
 
 `git-p4import` --stitch <//p4repo/path>
 
@@ -43,6 +43,9 @@ OPTIONS
        Specify an authors file containing a mapping of Perforce user
        ids to full names and email addresses (see Notes below).
 
+\--notags::
+       Do not create a tag for each imported commit.
+
 \--stitch::
        Import the contents of the given perforce branch into the
        currently checked out git branch.
index 74172ab..908941d 100644 (file)
@@ -23,7 +23,6 @@ s = signal(SIGINT, SIG_DFL)
 if s != default_int_handler:
    signal(SIGINT, s)
 
-
 def die(msg, *args):
     for a in args:
         msg = "%s %s" % (msg, a)
@@ -38,6 +37,7 @@ verbosity = 1
 logfile = "/dev/null"
 ignore_warnings = False
 stitch = 0
+tagall = True
 
 def report(level, msg, *args):
     global verbosity
@@ -261,10 +261,9 @@ class git_command:
         self.make_tag("p4/%s"%id, commit)
         self.git("update-ref HEAD %s %s" % (commit, current) )
 
-
 try:
     opts, args = getopt.getopt(sys.argv[1:], "qhvt:",
-                    ["authors=","help","stitch=","timezone=","log=","ignore"])
+            ["authors=","help","stitch=","timezone=","log=","ignore","notags"])
 except getopt.GetoptError:
     usage()
 
@@ -275,6 +274,8 @@ for o, a in opts:
         verbosity += 1
     if o in ("--log"):
         logfile = a
+    if o in ("--notags"):
+        tagall = False
     if o in ("-h", "--help"):
         usage()
     if o in ("--ignore"):
@@ -350,7 +351,10 @@ for id in changes:
     report(1, "Importing changeset", id)
     change = p4.describe(id)
     p4.sync(id)
-    git.commit(change.author, change.email, change.date, change.msg, id)
+    if tagall :
+            git.commit(change.author, change.email, change.date, change.msg, id)
+    else:
+            git.commit(change.author, change.email, change.date, change.msg, "import")
     if stitch == 1:
         git.clean_directories()
         stitch = 0