Fix the docs for git-p4 submit and turn git-p4 submit --master=foo into
authorSimon Hausmann <hausmann@kde.org>
Thu, 29 Mar 2007 17:15:24 +0000 (19:15 +0200)
committerSimon Hausmann <hausmann@kde.org>
Thu, 29 Mar 2007 17:15:24 +0000 (19:15 +0200)
simply git-p4 submit mytopicbranch.

Signed-off-by: Simon Hausmann <hausmann@kde.org>
contrib/fast-import/git-p4
contrib/fast-import/git-p4.txt

index 60c4b3dc6cba5875db20fdc243e8a209ab026498..59c3edae1900c2e0823cf2a9eadd4fc7870b6743 100755 (executable)
@@ -167,13 +167,13 @@ class P4Sync(Command):
                 optparse.make_option("--continue", action="store_false", dest="firstTime"),
                 optparse.make_option("--origin", dest="origin"),
                 optparse.make_option("--reset", action="store_true", dest="reset"),
-                optparse.make_option("--master", dest="master"),
                 optparse.make_option("--log-substitutions", dest="substFile"),
                 optparse.make_option("--noninteractive", action="store_false"),
                 optparse.make_option("--dry-run", action="store_true"),
                 optparse.make_option("--apply-as-patch", action="store_true", dest="applyAsPatch")
         ]
         self.description = "Submit changes from git to the perforce depot."
+        self.usage += " [name of git branch to submit into perforce depot]"
         self.firstTime = True
         self.reset = False
         self.interactive = True
@@ -181,7 +181,6 @@ class P4Sync(Command):
         self.substFile = ""
         self.firstTime = True
         self.origin = ""
-        self.master = ""
         self.applyAsPatch = True
 
         self.logSubstitutions = {}
@@ -326,6 +325,16 @@ class P4Sync(Command):
         # make gitdir absolute so we can cd out into the perforce checkout
         gitdir = os.path.abspath(gitdir)
         os.environ["GIT_DIR"] = gitdir
+
+        if len(args) == 0:
+            self.master = currentGitBranch()
+            if len(self.master) == 0 or not os.path.exists("%s/refs/heads/%s" % (gitdir, self.master)):
+                die("Detecting current git branch failed!")
+        elif len(args) == 1:
+            self.master = args[0]
+        else:
+            return False
+
         depotPath = ""
         if gitBranchExists("p4"):
             [depotPath, dummy] = extractDepotPathAndChangeFromGitLog(extractLogMessageFromGitCommit("p4"))
@@ -362,11 +371,6 @@ class P4Sync(Command):
                 tokens = line[:-1].split("=")
                 self.logSubstitutions[tokens[0]] = tokens[1]
 
-        if len(self.master) == 0:
-            self.master = currentGitBranch()
-            if len(self.master) == 0 or not os.path.exists("%s/refs/heads/%s" % (gitdir, self.master)):
-                die("Detecting current git branch failed!")
-
         self.check()
         self.configFile = gitdir + "/p4-git-sync.cfg"
         self.config = shelve.open(self.configFile, writeback=True)
index 8bf0805c74fb46b4ab26da3d61842951111df7d6..30e2cb9a559bec3c6a31157a51581426ae412ad1 100644 (file)
@@ -49,23 +49,19 @@ incremental import creates through the use of git-fast-import.
 Submitting
 ==========
 
-git-p4 has EXPERIMENTAL support for submitting changes from a git repository
-back to a Perforce depot. This requires a Perforce checkout separate to your
-git repository. All it should take is calling
+git-p4 has support for submitting changes from a git repository back to the
+Perforce depot. This requires a Perforce checkout separate to your git
+repository. To submit all changes that are in the current git branch but not in
+the "p4" branch (or "origin" if "p4" doesn't exist) simply call
 
     git-p4 submit
 
-in your git repository. This will attempt to locate the perforce checkout
-corresponding to your imported depot path. By default the changes between your
-current branch and the "p4" branch will be submitted. If there is no "p4"
-branch the "origin" branch will be used as reference instead. You can override
-this with the --origin=mysourcebranch option. The "origin" branch has to be the
-branch populated with git-p4's sync operation.
+in your git repository. If you want to submit changes in a specific branch that
+is not your current git branch you can also pass that as an argument:
 
-After some preparations (which might take a while) git-p4 enters a loop where
-it will first show a Perforce submit template and a diff of the change to
-apply in the editor. After saving and exiting the editor you will be asked whether
-you really want to submit the change or not.
+    git-p4 submit mytopicbranch
+
+You can override the reference branch with the --origin=mysourcebranch option.
 
 If a submit fails you may have to "p4 resolve" and submit manually. You can
 continue importing the remaining changes with
@@ -74,4 +70,3 @@ continue importing the remaining changes with
 
 After submitting you should sync your perforce import branch ("p4" or "origin")
 from Perforce using git-p4's sync command.
-