All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jonathan Nieder <jrnieder@gmail.com>
To: Ralf Thielow <ralf.thielow@gmail.com>
Cc: git@vger.kernel.org, gitster@pobox.com, Matthieu.Moy@imag.fr,
	"Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
Subject: Re: [PATCH] status: show commit sha1 in "You are currently cherry-picking" message
Date: Fri, 11 Oct 2013 10:42:10 -0700	[thread overview]
Message-ID: <20131011174210.GS9464@google.com> (raw)
In-Reply-To: <1381507117-11519-1-git-send-email-ralf.thielow@gmail.com>

Ralf Thielow wrote:

> Especially helpful when cherry-picking multiple commits.

Neat, thanks.

[...]
> --- a/t/t7512-status-help.sh
> +++ b/t/t7512-status-help.sh
> @@ -626,9 +626,10 @@ test_expect_success 'prepare for cherry-pick conflicts' '
>  test_expect_success 'status when cherry-picking before resolving conflicts' '
>  	test_when_finished "git cherry-pick --abort" &&
>  	test_must_fail git cherry-pick cherry_branch_second &&
> +	TO_CHERRY_PICK=$(git rev-parse --short CHERRY_PICK_HEAD) &&
> -	cat >expected <<\EOF &&
> +	cat >expected <<EOF

Did you mean to drop the '&&'?

[...]
> @@ -648,11 +649,12 @@ test_expect_success 'status when cherry-picking after resolving conflicts' '
>  	git reset --hard cherry_branch &&
>  	test_when_finished "git cherry-pick --abort" &&
>  	test_must_fail git cherry-pick cherry_branch_second &&
> +	TO_CHERRY_PICK=$(git rev-parse --short CHERRY_PICK_HEAD) &&
>  	echo end >main.txt &&
>  	git add main.txt &&
> -	cat >expected <<\EOF &&
> +	cat >expected <<EOF

Likewise.

[...]
> --- a/wt-status.c
> +++ b/wt-status.c
> @@ -996,7 +996,8 @@ static void show_cherry_pick_in_progress(struct wt_status *s,
>  					struct wt_status_state *state,
>  					const char *color)
>  {
> -	status_printf_ln(s, color, _("You are currently cherry-picking."));
> +	status_printf_ln(s, color, _("You are currently cherry-picking commit %s."),
> +			find_unique_abbrev(state->cherry_pick_head_sha1, DEFAULT_ABBREV));

This function is only called when ->cherry_pick_in_progress is true, so
we know cherry_pick_head_sha1 is initialized.  Good.

I would be tempted to check anyway, so that if we ever regress in this,
the cause will be clear and users know to report a bug:

	if (is_null_sha1(state->cherry_pick_head_sha1))
		die("BUG: cherry-pick in progress but no valid CHERRY_PICK_HEAD?");
	status_printf_ln(s, color, _("You are ...

I dunno.

Applied with the && fixes mentioned above on top of the following.

-- >8 --
Subject: status test: add missing && to <<EOF blocks

When a test forgets to include && after each command, it is possible
for an early command to succeed but the test to fail, which can hide
bugs.

Checked using the following patch to the test harness:

	--- a/t/test-lib.sh
	+++ b/t/test-lib.sh
	@@ -425,7 +425,17 @@ test_eval_ () {
		eval </dev/null >&3 2>&4 "$*"
	 }

	+check_command_chaining_ () {
	+	eval >&3 2>&4 "(exit 189) && $*"
	+	eval_chain_ret=$?
	+	if test "$eval_chain_ret" != 189
	+	then
	+		error 'bug in test script: missing "&&" in test commands'
	+	fi
	+}
	+
	 test_run_ () {
	+	check_command_chaining_ "$1"
		test_cleanup=:
		expecting_failure=$2
		setup_malloc_check

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
---
 t/t7512-status-help.sh | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/t/t7512-status-help.sh b/t/t7512-status-help.sh
index 0688d58..9905d43 100755
--- a/t/t7512-status-help.sh
+++ b/t/t7512-status-help.sh
@@ -669,7 +669,7 @@ EOF
 test_expect_success 'status showing detached at and from a tag' '
 	test_commit atag tagging &&
 	git checkout atag &&
-	cat >expected <<\EOF
+	cat >expected <<\EOF &&
 HEAD detached at atag
 nothing to commit (use -u to show untracked files)
 EOF
@@ -677,7 +677,7 @@ EOF
 	test_i18ncmp expected actual &&
 
 	git reset --hard HEAD^ &&
-	cat >expected <<\EOF
+	cat >expected <<\EOF &&
 HEAD detached from atag
 nothing to commit (use -u to show untracked files)
 EOF
@@ -695,7 +695,7 @@ test_expect_success 'status while reverting commit (conflicts)' '
 	test_commit new to-revert.txt &&
 	TO_REVERT=$(git rev-parse --short HEAD^) &&
 	test_must_fail git revert $TO_REVERT &&
-	cat >expected <<EOF
+	cat >expected <<EOF &&
 On branch master
 You are currently reverting commit $TO_REVERT.
   (fix conflicts and run "git revert --continue")
@@ -716,7 +716,7 @@ EOF
 test_expect_success 'status while reverting commit (conflicts resolved)' '
 	echo reverted >to-revert.txt &&
 	git add to-revert.txt &&
-	cat >expected <<EOF
+	cat >expected <<EOF &&
 On branch master
 You are currently reverting commit $TO_REVERT.
   (all conflicts fixed: run "git revert --continue")
@@ -735,7 +735,7 @@ EOF
 
 test_expect_success 'status after reverting commit' '
 	git revert --continue &&
-	cat >expected <<\EOF
+	cat >expected <<\EOF &&
 On branch master
 nothing to commit (use -u to show untracked files)
 EOF
-- 
1.8.4-50-g437ce60

  parent reply	other threads:[~2013-10-11 17:42 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-11 15:58 [PATCH] status: show commit sha1 in "You are currently cherry-picking" message Ralf Thielow
2013-10-11 16:03 ` Matthieu Moy
2013-10-11 17:42 ` Jonathan Nieder [this message]
2013-10-11 18:14   ` Ralf Thielow
2013-10-15 13:35   ` on broken command chains in tests (was: Re: [PATCH] status: show commit sha1 in "You are currently) SZEDER Gábor

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=20131011174210.GS9464@google.com \
    --to=jrnieder@gmail.com \
    --cc=Matthieu.Moy@imag.fr \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=pclouds@gmail.com \
    --cc=ralf.thielow@gmail.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.