зеркало из https://github.com/microsoft/git.git
branch_get_push: do not segfault when HEAD is detached
Move the detached HEAD check from branch_get_push_1() to branch_get_push() to avoid setting branch->push_tracking_ref when branch is NULL. Signed-off-by: Kyle Meyer <kyle@kyleam.com> Reviewed-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
0b65a8dbdb
Коммит
b10731f43d
6
remote.c
6
remote.c
|
@ -1717,9 +1717,6 @@ static const char *branch_get_push_1(struct branch *branch, struct strbuf *err)
|
|||
{
|
||||
struct remote *remote;
|
||||
|
||||
if (!branch)
|
||||
return error_buf(err, _("HEAD does not point to a branch"));
|
||||
|
||||
remote = remote_get(pushremote_for_branch(branch, NULL));
|
||||
if (!remote)
|
||||
return error_buf(err,
|
||||
|
@ -1779,6 +1776,9 @@ static const char *branch_get_push_1(struct branch *branch, struct strbuf *err)
|
|||
|
||||
const char *branch_get_push(struct branch *branch, struct strbuf *err)
|
||||
{
|
||||
if (!branch)
|
||||
return error_buf(err, _("HEAD does not point to a branch"));
|
||||
|
||||
if (!branch->push_tracking_ref)
|
||||
branch->push_tracking_ref = branch_get_push_1(branch, err);
|
||||
return branch->push_tracking_ref;
|
||||
|
|
|
@ -60,4 +60,10 @@ test_expect_success '@{push} with push refspecs' '
|
|||
resolve topic@{push} refs/remotes/origin/magic/topic
|
||||
'
|
||||
|
||||
test_expect_success 'resolving @{push} fails with a detached HEAD' '
|
||||
git checkout HEAD^0 &&
|
||||
test_when_finished "git checkout -" &&
|
||||
test_must_fail git rev-parse @{push}
|
||||
'
|
||||
|
||||
test_done
|
||||
|
|
Загрузка…
Ссылка в новой задаче