From: Luke Diamand <luke@diamand.org>
To: Pete Wyckoff <pw@padd.com>
Cc: git@vger.kernel.org, Junio C Hamano <gitster@pobox.com>,
Johannes Sixt <j.sixt@viscovery.net>
Subject: Re: [PATCHv2 04/12] git p4: move conflict prompt into run, add [q]uit input
Date: Sat, 15 Sep 2012 22:56:05 +0100 [thread overview]
Message-ID: <5054F975.6090608@diamand.org> (raw)
In-Reply-To: <1347221773-12773-5-git-send-email-pw@padd.com>
I'll need to supply a followup patch to ensure that a config option can
override the prompt.
Ack.
On 09/09/12 21:16, Pete Wyckoff wrote:
> When applying a commit to the p4 workspace fails, a prompt
> asks what to do next. This belongs up in run() instead
> of in applyCommit(), where run() can notice, for instance,
> that the prompt is unnecessary because this is the last commit.
>
> Offer two options about how to continue at conflict: [s]kip or
> [q]uit. Having an explicit "quit" option gives git p4 a chance
> to clean up, show the applied-commit summary, and do tag export.
>
> Signed-off-by: Pete Wyckoff<pw@padd.com>
> ---
> git-p4.py | 41 +++++++++++++++++++++++++++++------------
> t/t9815-git-p4-submit-fail.sh | 31 +++++++++++++++++++++++++++----
> 2 files changed, 56 insertions(+), 16 deletions(-)
>
> diff --git a/git-p4.py b/git-p4.py
> index e08fea1..479f1fc 100755
> --- a/git-p4.py
> +++ b/git-p4.py
> @@ -1198,17 +1198,11 @@ class P4Submit(Command, P4UserMap):
> patch_succeeded = True
>
> if not patch_succeeded:
> - print "What do you want to do?"
> - response = "x"
> - while response != "s":
> - response = raw_input("[s]kip this patch ")
> - if response == "s":
> - print "Skipping! Good luck with the next patches..."
> - for f in editedFiles:
> - p4_revert(f)
> - for f in filesToAdd:
> - os.remove(f)
> - return False
> + for f in editedFiles:
> + p4_revert(f)
> + for f in filesToAdd:
> + os.remove(f)
> + return False
>
> system(applyPatchCmd)
>
> @@ -1475,11 +1469,34 @@ class P4Submit(Command, P4UserMap):
> if gitConfig("git-p4.detectCopiesHarder", "--bool") == "true":
> self.diffOpts += " --find-copies-harder"
>
> + #
> + # Apply the commits, one at a time. On failure, ask if should
> + # continue to try the rest of the patches, or quit.
> + #
> applied = []
> - for commit in commits:
> + last = len(commits) - 1
> + for i, commit in enumerate(commits):
> ok = self.applyCommit(commit)
> if ok:
> applied.append(commit)
> + else:
> + if i< last:
> + quit = False
> + while True:
> + print "What do you want to do?"
> + response = raw_input("[s]kip this commit but apply"
> + " the rest, or [q]uit? ")
> + if not response:
> + continue
> + if response[0] == "s":
> + print "Skipping this commit, but applying the rest"
> + break
> + if response[0] == "q":
> + print "Quitting"
> + quit = True
> + break
> + if quit:
> + break
>
> chdir(self.oldWorkingDirectory)
>
> diff --git a/t/t9815-git-p4-submit-fail.sh b/t/t9815-git-p4-submit-fail.sh
> index 5c36714..397b3e8 100755
> --- a/t/t9815-git-p4-submit-fail.sh
> +++ b/t/t9815-git-p4-submit-fail.sh
> @@ -18,7 +18,7 @@ test_expect_success 'init depot' '
> )
> '
>
> -test_expect_success 'conflict on one commit, skip' '
> +test_expect_success 'conflict on one commit' '
> test_when_finished cleanup_git&&
> git p4 clone --dest="$git" //depot&&
> (
> @@ -34,12 +34,12 @@ test_expect_success 'conflict on one commit, skip' '
> echo line3>>file1&&
> git add file1&&
> git commit -m "line3 in file1 will conflict"&&
> - echo s | test_expect_code 1 git p4 submit>out&&
> + test_expect_code 1 git p4 submit>out&&
> test_i18ngrep "No commits applied" out
> )
> '
>
> -test_expect_success 'conflict on second of two commits, skip' '
> +test_expect_success 'conflict on second of two commits' '
> test_when_finished cleanup_git&&
> git p4 clone --dest="$git" //depot&&
> (
> @@ -57,7 +57,7 @@ test_expect_success 'conflict on second of two commits, skip' '
> echo line4>>file1&&
> git add file1&&
> git commit -m "line4 in file1 will conflict"&&
> - echo s | test_expect_code 1 git p4 submit>out&&
> + test_expect_code 1 git p4 submit>out&&
> test_i18ngrep "Applied only the commits" out
> )
> '
> @@ -85,6 +85,29 @@ test_expect_success 'conflict on first of two commits, skip' '
> )
> '
>
> +test_expect_success 'conflict on first of two commits, quit' '
> + test_when_finished cleanup_git&&
> + git p4 clone --dest="$git" //depot&&
> + (
> + cd "$cli"&&
> + p4 open file1&&
> + echo line7>>file1&&
> + p4 submit -d "line7 in file1"
> + )&&
> + (
> + cd "$git"&&
> + git config git-p4.skipSubmitEdit true&&
> + # this submit should cause a conflict
> + echo line8>>file1&&
> + git add file1&&
> + git commit -m "line8 in file1 will conflict"&&
> + # but this commit is okay
> + test_commit "okay_commit_after_quit"&&
> + echo q | test_expect_code 1 git p4 submit>out&&
> + test_i18ngrep "No commits applied" out
> + )
> +'
> +
> test_expect_success 'kill p4d' '
> kill_p4d
> '
next prev parent reply other threads:[~2012-09-15 21:56 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-09 20:16 [PATCHv2 00/12] git p4: submit conflict handling Pete Wyckoff
2012-09-09 20:16 ` [PATCHv2 01/12] git p4 test: remove bash-ism of combined export/assignment Pete Wyckoff
2012-09-15 21:25 ` Luke Diamand
2012-09-16 6:05 ` Junio C Hamano
2012-09-16 9:38 ` Luke Diamand
2012-09-17 4:50 ` Junio C Hamano
2012-09-17 8:13 ` Luke Diamand
2012-09-09 20:16 ` [PATCHv2 02/12] git p4: gracefully fail if some commits could not be applied Pete Wyckoff
2012-09-15 21:48 ` Luke Diamand
2012-09-09 20:16 ` [PATCHv2 03/12] git p4: remove submit failure options [a]pply and [w]rite Pete Wyckoff
2012-09-15 21:52 ` Luke Diamand
2012-09-09 20:16 ` [PATCHv2 04/12] git p4: move conflict prompt into run, add [q]uit input Pete Wyckoff
2012-09-15 21:56 ` Luke Diamand [this message]
2012-09-09 20:16 ` [PATCHv2 05/12] git p4: standardize submit cancel due to unchanged template Pete Wyckoff
2012-09-15 21:58 ` Luke Diamand
2012-09-09 20:16 ` [PATCHv2 06/12] git p4: test clean-up after failed submit, fix added files Pete Wyckoff
2012-09-09 20:16 ` [PATCHv2 07/12] git p4: rearrange submit template construction Pete Wyckoff
2012-09-09 20:16 ` [PATCHv2 08/12] git p4: revert deleted files after submit cancel Pete Wyckoff
2012-09-09 20:16 ` [PATCHv2 09/12] git p4: accept -v for --verbose Pete Wyckoff
2012-09-09 20:16 ` [PATCHv2 10/12] git p4: add submit --dry-run option Pete Wyckoff
2012-09-09 20:16 ` [PATCHv2 11/12] git p4: add submit --prepare-p4-only option Pete Wyckoff
2012-09-09 20:16 ` [PATCHv2 12/12] git-p4: add submit --conflict option and config varaiable Pete Wyckoff
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5054F975.6090608@diamand.org \
--to=luke@diamand.org \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=j.sixt@viscovery.net \
--cc=pw@padd.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).