Merge branch 'jk/bisect-reset-fix' into maint-2.43
"git bisect reset" has been taught to clean up state files and refs even when BISECT_START file is gone. * jk/bisect-reset-fix: bisect: always clean on reset
This commit is contained in:
@ -233,10 +233,9 @@ static int bisect_reset(const char *commit)
|
|||||||
struct strbuf branch = STRBUF_INIT;
|
struct strbuf branch = STRBUF_INIT;
|
||||||
|
|
||||||
if (!commit) {
|
if (!commit) {
|
||||||
if (strbuf_read_file(&branch, git_path_bisect_start(), 0) < 1) {
|
if (!strbuf_read_file(&branch, git_path_bisect_start(), 0))
|
||||||
printf(_("We are not bisecting.\n"));
|
printf(_("We are not bisecting.\n"));
|
||||||
return 0;
|
else
|
||||||
}
|
|
||||||
strbuf_rtrim(&branch);
|
strbuf_rtrim(&branch);
|
||||||
} else {
|
} else {
|
||||||
struct object_id oid;
|
struct object_id oid;
|
||||||
@ -246,7 +245,7 @@ static int bisect_reset(const char *commit)
|
|||||||
strbuf_addstr(&branch, commit);
|
strbuf_addstr(&branch, commit);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ref_exists("BISECT_HEAD")) {
|
if (branch.len && !ref_exists("BISECT_HEAD")) {
|
||||||
struct child_process cmd = CHILD_PROCESS_INIT;
|
struct child_process cmd = CHILD_PROCESS_INIT;
|
||||||
|
|
||||||
cmd.git_cmd = 1;
|
cmd.git_cmd = 1;
|
||||||
|
@ -170,6 +170,12 @@ test_expect_success 'bisect reset when not bisecting' '
|
|||||||
cmp branch.expect branch.output
|
cmp branch.expect branch.output
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success 'bisect reset cleans up even when not bisecting' '
|
||||||
|
echo garbage >.git/BISECT_LOG &&
|
||||||
|
git bisect reset &&
|
||||||
|
test_path_is_missing .git/BISECT_LOG
|
||||||
|
'
|
||||||
|
|
||||||
test_expect_success 'bisect reset removes packed refs' '
|
test_expect_success 'bisect reset removes packed refs' '
|
||||||
git bisect reset &&
|
git bisect reset &&
|
||||||
git bisect start &&
|
git bisect start &&
|
||||||
|
Reference in New Issue
Block a user