Merge branch 'nd/branch-show-rebase-bisect-state'
Add a bit more information to "git status" during a rebase/bisect session. * nd/branch-show-rebase-bisect-state: status, branch: fix the misleading "bisecting" message branch: show more information when HEAD is detached status: show more info than "currently not on any branch" wt-status: move wt_status_get_state() out to wt_status_print() wt-status: split wt_status_state parsing function out wt-status: move strbuf into read_and_strip_branch()
This commit is contained in:
@ -18,6 +18,7 @@
|
||||
#include "string-list.h"
|
||||
#include "column.h"
|
||||
#include "utf8.h"
|
||||
#include "wt-status.h"
|
||||
|
||||
static const char * const builtin_branch_usage[] = {
|
||||
N_("git branch [options] [-r | -a] [--merged | --no-merged]"),
|
||||
@ -550,6 +551,29 @@ static int calc_maxwidth(struct ref_list *refs)
|
||||
return w;
|
||||
}
|
||||
|
||||
static char *get_head_description(void)
|
||||
{
|
||||
struct strbuf desc = STRBUF_INIT;
|
||||
struct wt_status_state state;
|
||||
memset(&state, 0, sizeof(state));
|
||||
wt_status_get_state(&state, 1);
|
||||
if (state.rebase_in_progress ||
|
||||
state.rebase_interactive_in_progress)
|
||||
strbuf_addf(&desc, _("(no branch, rebasing %s)"),
|
||||
state.branch);
|
||||
else if (state.bisect_in_progress)
|
||||
strbuf_addf(&desc, _("(no branch, bisect started on %s)"),
|
||||
state.branch);
|
||||
else if (state.detached_from)
|
||||
strbuf_addf(&desc, _("(detached from %s)"),
|
||||
state.detached_from);
|
||||
else
|
||||
strbuf_addstr(&desc, _("(no branch)"));
|
||||
free(state.branch);
|
||||
free(state.onto);
|
||||
free(state.detached_from);
|
||||
return strbuf_detach(&desc, NULL);
|
||||
}
|
||||
|
||||
static void show_detached(struct ref_list *ref_list)
|
||||
{
|
||||
@ -557,7 +581,7 @@ static void show_detached(struct ref_list *ref_list)
|
||||
|
||||
if (head_commit && is_descendant_of(head_commit, ref_list->with_commit)) {
|
||||
struct ref_item item;
|
||||
item.name = xstrdup(_("(no branch)"));
|
||||
item.name = get_head_description();
|
||||
item.width = utf8_strwidth(item.name);
|
||||
item.kind = REF_LOCAL_BRANCH;
|
||||
item.dest = NULL;
|
||||
|
Reference in New Issue
Block a user