зеркало из https://github.com/microsoft/git.git
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
This commit is contained in:
Коммит
f2a75cb312
|
@ -1446,10 +1446,6 @@ static int maintenance_register(void)
|
|||
struct child_process config_set = CHILD_PROCESS_INIT;
|
||||
struct child_process config_get = CHILD_PROCESS_INIT;
|
||||
|
||||
/* There is no current repository, so skip registering it */
|
||||
if (!the_repository || !the_repository->gitdir)
|
||||
return 0;
|
||||
|
||||
/* Disable foreground maintenance */
|
||||
git_config_set("maintenance.auto", "false");
|
||||
|
||||
|
@ -1487,9 +1483,6 @@ static int maintenance_unregister(void)
|
|||
{
|
||||
struct child_process config_unset = CHILD_PROCESS_INIT;
|
||||
|
||||
if (!the_repository || !the_repository->gitdir)
|
||||
return error(_("no current repository to unregister"));
|
||||
|
||||
config_unset.git_cmd = 1;
|
||||
strvec_pushl(&config_unset.args, "config", "--global", "--unset",
|
||||
"--fixed-value", "maintenance.repo",
|
||||
|
|
2
git.c
2
git.c
|
@ -535,7 +535,7 @@ static struct cmd_struct commands[] = {
|
|||
{ "ls-tree", cmd_ls_tree, RUN_SETUP },
|
||||
{ "mailinfo", cmd_mailinfo, RUN_SETUP_GENTLY | NO_PARSEOPT },
|
||||
{ "mailsplit", cmd_mailsplit, NO_PARSEOPT },
|
||||
{ "maintenance", cmd_maintenance, RUN_SETUP_GENTLY | NO_PARSEOPT },
|
||||
{ "maintenance", cmd_maintenance, RUN_SETUP | NO_PARSEOPT },
|
||||
{ "merge", cmd_merge, RUN_SETUP | NEED_WORK_TREE },
|
||||
{ "merge-base", cmd_merge_base, RUN_SETUP },
|
||||
{ "merge-file", cmd_merge_file, RUN_SETUP_GENTLY },
|
||||
|
|
|
@ -455,4 +455,12 @@ test_expect_success 'register preserves existing strategy' '
|
|||
test_config maintenance.strategy incremental
|
||||
'
|
||||
|
||||
test_expect_success 'fails when running outside of a repository' '
|
||||
nongit test_must_fail git maintenance run &&
|
||||
nongit test_must_fail git maintenance stop &&
|
||||
nongit test_must_fail git maintenance start &&
|
||||
nongit test_must_fail git maintenance register &&
|
||||
nongit test_must_fail git maintenance unregister
|
||||
'
|
||||
|
||||
test_done
|
||||
|
|
Загрузка…
Ссылка в новой задаче