git p4: fix submit when no master branch
It finds its upstream and applies the commit properly, but the sync step will fail unless it is told which branch to work on. Signed-off-by: Pete Wyckoff <pw@padd.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
af8c009250
commit
44e8d26cf3
@ -294,6 +294,11 @@ These options can be used to modify 'git p4 submit' behavior.
|
||||
to bypass the prompt, causing conflicting commits to be automatically
|
||||
skipped, or to quit trying to apply commits, without prompting.
|
||||
|
||||
--branch <branch>::
|
||||
After submitting, sync this named branch instead of the default
|
||||
p4/master. See the "Sync options" section above for more
|
||||
information.
|
||||
|
||||
Rebase options
|
||||
~~~~~~~~~~~~~~
|
||||
These options can be used to modify 'git p4 rebase' behavior.
|
||||
|
@ -921,7 +921,8 @@ class P4Submit(Command, P4UserMap):
|
||||
optparse.make_option("--dry-run", "-n", dest="dry_run", action="store_true"),
|
||||
optparse.make_option("--prepare-p4-only", dest="prepare_p4_only", action="store_true"),
|
||||
optparse.make_option("--conflict", dest="conflict_behavior",
|
||||
choices=self.conflict_behavior_choices)
|
||||
choices=self.conflict_behavior_choices),
|
||||
optparse.make_option("--branch", dest="branch"),
|
||||
]
|
||||
self.description = "Submit changes from git to the perforce depot."
|
||||
self.usage += " [name of git branch to submit into perforce depot]"
|
||||
@ -934,6 +935,7 @@ class P4Submit(Command, P4UserMap):
|
||||
self.isWindows = (platform.system() == "Windows")
|
||||
self.exportLabels = False
|
||||
self.p4HasMoveCommand = p4_has_move_command()
|
||||
self.branch = None
|
||||
|
||||
def check(self):
|
||||
if len(p4CmdList("opened ...")) > 0:
|
||||
@ -1670,6 +1672,8 @@ class P4Submit(Command, P4UserMap):
|
||||
print "All commits applied!"
|
||||
|
||||
sync = P4Sync()
|
||||
if self.branch:
|
||||
sync.branch = self.branch
|
||||
sync.run([])
|
||||
|
||||
rebase = P4Rebase()
|
||||
|
@ -251,6 +251,31 @@ test_expect_success 'clone --use-client-spec' '
|
||||
)
|
||||
'
|
||||
|
||||
test_expect_success 'submit works with no p4/master' '
|
||||
test_when_finished cleanup_git &&
|
||||
git p4 clone --branch=b1 //depot@1,2 --destination="$git" &&
|
||||
(
|
||||
cd "$git" &&
|
||||
test_commit submit-1-branch &&
|
||||
git config git-p4.skipSubmitEdit true &&
|
||||
git p4 submit --branch=b1
|
||||
)
|
||||
'
|
||||
|
||||
# The sync/rebase part post-submit will engage detect-branches
|
||||
# machinery which will not do anything in this particular test.
|
||||
test_expect_success 'submit works with two branches' '
|
||||
test_when_finished cleanup_git &&
|
||||
git p4 clone --branch=b1 //depot@1,2 --destination="$git" &&
|
||||
(
|
||||
cd "$git" &&
|
||||
git p4 sync --branch=b2 //depot@1,3 &&
|
||||
test_commit submit-2-branches &&
|
||||
git config git-p4.skipSubmitEdit true &&
|
||||
git p4 submit
|
||||
)
|
||||
'
|
||||
|
||||
test_expect_success 'kill p4d' '
|
||||
kill_p4d
|
||||
'
|
||||
|
Loading…
Reference in New Issue
Block a user