diff options
author | Ralf Thielow <ralf.thielow@gmail.com> | 2013-10-11 17:58:37 +0200 |
---|---|---|
committer | Jonathan Nieder <jrnieder@gmail.com> | 2013-10-11 10:42:45 -0700 |
commit | bffd8098705ffcfeb267951dcdd4e49dd188a7bb (patch) | |
tree | d8b107469d52e44ae8fffd0fd2b8125fc35c390b | |
parent | 59c222052801a55bb40a78378ea19c6b7c4ec45d (diff) | |
download | git-bffd8098705ffcfeb267951dcdd4e49dd188a7bb.tar.gz |
status: show commit sha1 in "You are currently cherry-picking" messagert/cherry-pick-status
Especially helpful when cherry-picking multiple commits.
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Acked-by: Matthieu Moy <Matthieu.Moy@grenoble-inp.fr>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
-rwxr-xr-x | t/t7512-status-help.sh | 10 | ||||
-rw-r--r-- | wt-status.c | 7 | ||||
-rw-r--r-- | wt-status.h | 1 |
3 files changed, 12 insertions, 6 deletions
diff --git a/t/t7512-status-help.sh b/t/t7512-status-help.sh index 9905d43c74..3cec57af1e 100755 --- 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 && - cat >expected <<\EOF && + TO_CHERRY_PICK=$(git rev-parse --short CHERRY_PICK_HEAD) && + cat >expected <<EOF && On branch cherry_branch -You are currently cherry-picking. +You are currently cherry-picking commit $TO_CHERRY_PICK. (fix conflicts and run "git cherry-pick --continue") (use "git cherry-pick --abort" to cancel the cherry-pick operation) @@ -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 && On branch cherry_branch -You are currently cherry-picking. +You are currently cherry-picking commit $TO_CHERRY_PICK. (all conflicts fixed: run "git cherry-pick --continue") (use "git cherry-pick --abort" to cancel the cherry-pick operation) diff --git a/wt-status.c b/wt-status.c index cbdce72651..b4e44baa29 100644 --- 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)); if (s->hints) { if (has_unmerged(s)) status_printf_ln(s, color, @@ -1169,8 +1170,10 @@ void wt_status_get_state(struct wt_status_state *state, state->rebase_in_progress = 1; state->branch = read_and_strip_branch("rebase-merge/head-name"); state->onto = read_and_strip_branch("rebase-merge/onto"); - } else if (!stat(git_path("CHERRY_PICK_HEAD"), &st)) { + } else if (!stat(git_path("CHERRY_PICK_HEAD"), &st) && + !get_sha1("CHERRY_PICK_HEAD", sha1)) { state->cherry_pick_in_progress = 1; + hashcpy(state->cherry_pick_head_sha1, sha1); } if (!stat(git_path("BISECT_LOG"), &st)) { state->bisect_in_progress = 1; diff --git a/wt-status.h b/wt-status.h index 9341c569a5..6c29e6f5e5 100644 --- a/wt-status.h +++ b/wt-status.h @@ -88,6 +88,7 @@ struct wt_status_state { char *detached_from; unsigned char detached_sha1[20]; unsigned char revert_head_sha1[20]; + unsigned char cherry_pick_head_sha1[20]; }; void wt_status_prepare(struct wt_status *s); |