From: Edmundo Carmona Antoranz <eantoranz@gmail.com>
To: git@vger.kernel.org
Cc: Edmundo Carmona Antoranz <eantoranz@gmail.com>
Subject: [RFC/PATCH 2/2] rebuash - support for status
Date: Sat, 29 Jun 2019 23:18:16 -0600 [thread overview]
Message-ID: <20190630051816.8814-2-eantoranz@gmail.com> (raw)
In-Reply-To: <20190630051816.8814-1-eantoranz@gmail.com>
---
wt-status.c | 49 +++++++++++++++++++++++++++++++++++++++++++------
wt-status.h | 1 +
2 files changed, 44 insertions(+), 6 deletions(-)
diff --git a/wt-status.c b/wt-status.c
index 0bccef542f..2a7627b331 100644
--- a/wt-status.c
+++ b/wt-status.c
@@ -1118,11 +1118,24 @@ static void show_merge_in_progress(struct wt_status *s,
if (has_unmerged(s)) {
status_printf_ln(s, color, _("You have unmerged paths."));
if (s->hints) {
- status_printf_ln(s, color,
- _(" (fix conflicts and run \"git commit\")"));
- status_printf_ln(s, color,
- _(" (use \"git merge --abort\" to abort the merge)"));
+ if (s->state.rebuash_in_progress) {
+ status_printf_ln(s, color,
+ _(" (fix conflicts and run \"git rebuash --continue\")"));
+ status_printf_ln(s, color,
+ _(" (use \"git rebuash --abort\" to abort the operation)"));
+ } else {
+ status_printf_ln(s, color,
+ _(" (fix conflicts and run \"git commit\")"));
+ status_printf_ln(s, color,
+ _(" (use \"git merge --abort\" to abort the merge)"));
+ }
}
+ } else if (s->state.rebuash_in_progress) {
+ status_printf_ln(s, color,
+ _("All conflicts fixed but you are still rebuashing."));
+ if (s->hints)
+ status_printf_ln(s, color,
+ _(" (use \"git rebuash --continue\" to conclude rebuash)"));
} else {
status_printf_ln(s, color,
_("All conflicts fixed but you are still merging."));
@@ -1386,6 +1399,15 @@ static void show_rebase_in_progress(struct wt_status *s,
wt_longstatus_print_trailer(s);
}
+static void show_rebuash_in_progress(struct wt_status *s,
+ const char *color)
+{
+ if (&s->state.rebuash_in_progress)
+ status_printf_ln(s, color,
+ _("Rebuash currently in progress."));
+ wt_longstatus_print_trailer(s);
+}
+
static void show_cherry_pick_in_progress(struct wt_status *s,
const char *color)
{
@@ -1583,6 +1605,18 @@ int wt_status_check_rebase(const struct worktree *wt,
return 1;
}
+int wt_status_check_rebuash(const struct worktree *wt,
+ struct wt_status_state *state)
+{
+ struct stat st;
+
+ if (!stat(worktree_git_path(wt, "REBUASH_STATE"), &st)) {
+ state->rebuash_in_progress = 1;
+ } else
+ return 0;
+ return 1;
+}
+
int wt_status_check_bisect(const struct worktree *wt,
struct wt_status_state *state)
{
@@ -1614,6 +1648,7 @@ void wt_status_get_state(struct repository *r,
state->cherry_pick_in_progress = 1;
oidcpy(&state->cherry_pick_head_oid, &oid);
}
+ wt_status_check_rebuash(NULL, state);
wt_status_check_bisect(NULL, state);
if (!stat(git_path_revert_head(r), &st) &&
!get_oid("REVERT_HEAD", &oid)) {
@@ -1643,6 +1678,8 @@ static void wt_longstatus_print_state(struct wt_status *s)
show_rebase_information(s, state_color);
fputs("\n", s->fp);
}
+ if (state->rebuash_in_progress)
+ show_rebuash_in_progress(s, state_color);
show_merge_in_progress(s, state_color);
} else if (state->am_in_progress)
show_am_in_progress(s, state_color);
@@ -1688,7 +1725,7 @@ static void wt_longstatus_print(struct wt_status *s)
status_printf(s, color(WT_STATUS_HEADER, s), "%s", "");
status_printf_more(s, branch_status_color, "%s", on_what);
status_printf_more(s, branch_color, "%s\n", branch_name);
- if (!s->is_initial)
+ if (!(s->is_initial || s->state.rebuash_in_progress))
wt_longstatus_print_tracking(s);
}
@@ -1731,7 +1768,7 @@ static void wt_longstatus_print(struct wt_status *s)
if (s->verbose)
wt_longstatus_print_verbose(s);
- if (!s->committable) {
+ if (!(s->committable || s->state.rebuash_in_progress)) {
if (s->amend)
status_printf_ln(s, GIT_COLOR_NORMAL, _("No changes"));
else if (s->nowarn)
diff --git a/wt-status.h b/wt-status.h
index 64f1ddc9fd..2995866327 100644
--- a/wt-status.h
+++ b/wt-status.h
@@ -72,6 +72,7 @@ struct wt_status_state {
int rebase_in_progress;
int rebase_interactive_in_progress;
int cherry_pick_in_progress;
+ int rebuash_in_progress;
int bisect_in_progress;
int revert_in_progress;
int detached_at;
--
2.20.1
next prev parent reply other threads:[~2019-06-30 5:18 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-06-30 5:18 [RFC/PATCH 1/2] rebuash - squash/rebase in a single step Edmundo Carmona Antoranz
2019-06-30 5:18 ` Edmundo Carmona Antoranz [this message]
2019-06-30 5:28 ` [RFC/PATCH 2/2] rebuash - support for status Edmundo Carmona Antoranz
2019-06-30 6:53 ` [RFC/PATCH 1/2] rebuash - squash/rebase in a single step Jeff King
2019-06-30 15:09 ` Edmundo Carmona Antoranz
2019-06-30 22:39 ` Jeff King
2019-07-01 1:37 ` Edmundo Carmona Antoranz
2019-07-01 18:50 ` Junio C Hamano
2019-07-01 20:48 ` Edmundo Carmona Antoranz
2019-07-01 18:35 ` Junio C Hamano
2019-07-02 11:37 ` Derrick Stolee
2019-07-02 17:20 ` Junio C Hamano
2019-07-02 19:30 ` Johannes Sixt
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=20190630051816.8814-2-eantoranz@gmail.com \
--to=eantoranz@gmail.com \
--cc=git@vger.kernel.org \
/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.