Merge branch 'ps/pseudo-refs'
Assorted changes around pseudoref handling. * ps/pseudo-refs: bisect: consistently write BISECT_EXPECTED_REV via the refdb refs: complete list of special refs refs: propagate errno when reading special refs fails wt-status: read HEAD and ORIG_HEAD via the refdb
This commit is contained in:
22
wt-status.c
22
wt-status.c
@@ -1296,26 +1296,32 @@ static char *read_line_from_git_path(const char *filename)
|
||||
static int split_commit_in_progress(struct wt_status *s)
|
||||
{
|
||||
int split_in_progress = 0;
|
||||
char *head, *orig_head, *rebase_amend, *rebase_orig_head;
|
||||
struct object_id head_oid, orig_head_oid;
|
||||
char *rebase_amend, *rebase_orig_head;
|
||||
int head_flags, orig_head_flags;
|
||||
|
||||
if ((!s->amend && !s->nowarn && !s->workdir_dirty) ||
|
||||
!s->branch || strcmp(s->branch, "HEAD"))
|
||||
return 0;
|
||||
|
||||
head = read_line_from_git_path("HEAD");
|
||||
orig_head = read_line_from_git_path("ORIG_HEAD");
|
||||
if (read_ref_full("HEAD", RESOLVE_REF_READING | RESOLVE_REF_NO_RECURSE,
|
||||
&head_oid, &head_flags) ||
|
||||
read_ref_full("ORIG_HEAD", RESOLVE_REF_READING | RESOLVE_REF_NO_RECURSE,
|
||||
&orig_head_oid, &orig_head_flags))
|
||||
return 0;
|
||||
if (head_flags & REF_ISSYMREF || orig_head_flags & REF_ISSYMREF)
|
||||
return 0;
|
||||
|
||||
rebase_amend = read_line_from_git_path("rebase-merge/amend");
|
||||
rebase_orig_head = read_line_from_git_path("rebase-merge/orig-head");
|
||||
|
||||
if (!head || !orig_head || !rebase_amend || !rebase_orig_head)
|
||||
if (!rebase_amend || !rebase_orig_head)
|
||||
; /* fall through, no split in progress */
|
||||
else if (!strcmp(rebase_amend, rebase_orig_head))
|
||||
split_in_progress = !!strcmp(head, rebase_amend);
|
||||
else if (strcmp(orig_head, rebase_orig_head))
|
||||
split_in_progress = !!strcmp(oid_to_hex(&head_oid), rebase_amend);
|
||||
else if (strcmp(oid_to_hex(&orig_head_oid), rebase_orig_head))
|
||||
split_in_progress = 1;
|
||||
|
||||
free(head);
|
||||
free(orig_head);
|
||||
free(rebase_amend);
|
||||
free(rebase_orig_head);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user