summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xcontrib/fast-import/git-p418
-rw-r--r--contrib/fast-import/git-p4.txt23
2 files changed, 20 insertions, 21 deletions
diff --git a/contrib/fast-import/git-p4 b/contrib/fast-import/git-p4
index 60c4b3dc6c..59c3edae19 100755
--- a/contrib/fast-import/git-p4
+++ b/contrib/fast-import/git-p4
@@ -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)
diff --git a/contrib/fast-import/git-p4.txt b/contrib/fast-import/git-p4.txt
index 8bf0805c74..30e2cb9a55 100644
--- a/contrib/fast-import/git-p4.txt
+++ b/contrib/fast-import/git-p4.txt
@@ -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.
-