Skip to content

Commit f2a75cb

Browse files
committed
Merge branch 'rs/maintenance-run-outside-repo'
"git maintenance run/start/stop" needed to be run in a repository to hold the lockfile they use, but didn't make sure they are actually in a repository, which has been corrected. * rs/maintenance-run-outside-repo: t7900: fix typo: "test_execpt_success" maintenance: fix SEGFAULT when no repository
2 parents eae47db + 0a1f2d0 commit f2a75cb

File tree

3 files changed

+9
-8
lines changed

3 files changed

+9
-8
lines changed

builtin/gc.c

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1446,10 +1446,6 @@ static int maintenance_register(void)
14461446
struct child_process config_set = CHILD_PROCESS_INIT;
14471447
struct child_process config_get = CHILD_PROCESS_INIT;
14481448

1449-
/* There is no current repository, so skip registering it */
1450-
if (!the_repository || !the_repository->gitdir)
1451-
return 0;
1452-
14531449
/* Disable foreground maintenance */
14541450
git_config_set("maintenance.auto", "false");
14551451

@@ -1487,9 +1483,6 @@ static int maintenance_unregister(void)
14871483
{
14881484
struct child_process config_unset = CHILD_PROCESS_INIT;
14891485

1490-
if (!the_repository || !the_repository->gitdir)
1491-
return error(_("no current repository to unregister"));
1492-
14931486
config_unset.git_cmd = 1;
14941487
strvec_pushl(&config_unset.args, "config", "--global", "--unset",
14951488
"--fixed-value", "maintenance.repo",

git.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -535,7 +535,7 @@ static struct cmd_struct commands[] = {
535535
{ "ls-tree", cmd_ls_tree, RUN_SETUP },
536536
{ "mailinfo", cmd_mailinfo, RUN_SETUP_GENTLY | NO_PARSEOPT },
537537
{ "mailsplit", cmd_mailsplit, NO_PARSEOPT },
538-
{ "maintenance", cmd_maintenance, RUN_SETUP_GENTLY | NO_PARSEOPT },
538+
{ "maintenance", cmd_maintenance, RUN_SETUP | NO_PARSEOPT },
539539
{ "merge", cmd_merge, RUN_SETUP | NEED_WORK_TREE },
540540
{ "merge-base", cmd_merge_base, RUN_SETUP },
541541
{ "merge-file", cmd_merge_file, RUN_SETUP_GENTLY },

t/t7900-maintenance.sh

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -455,4 +455,12 @@ test_expect_success 'register preserves existing strategy' '
455455
test_config maintenance.strategy incremental
456456
'
457457

458+
test_expect_success 'fails when running outside of a repository' '
459+
nongit test_must_fail git maintenance run &&
460+
nongit test_must_fail git maintenance stop &&
461+
nongit test_must_fail git maintenance start &&
462+
nongit test_must_fail git maintenance register &&
463+
nongit test_must_fail git maintenance unregister
464+
'
465+
458466
test_done

0 commit comments

Comments
 (0)