vfs: disable `git update-git-for-windows`

If a user runs git update-git-for-windows, then they will upgrade to a
version that does not support microsoft/vfsforgit or microsoft/scalar.

Therefore, let's prevent this.

This addresses https://github.com/microsoft/git/issues/241
This commit is contained in:
Johannes Schindelin 2020-02-04 19:36:46 +01:00 коммит произвёл Derrick Stolee
Родитель c887e49f89
Коммит e000c61525
4 изменённых файлов: 26 добавлений и 0 удалений

Просмотреть файл

@ -220,6 +220,7 @@ int cmd_tag(int argc, const char **argv, const char *prefix);
int cmd_tar_tree(int argc, const char **argv, const char *prefix); int cmd_tar_tree(int argc, const char **argv, const char *prefix);
int cmd_unpack_file(int argc, const char **argv, const char *prefix); int cmd_unpack_file(int argc, const char **argv, const char *prefix);
int cmd_unpack_objects(int argc, const char **argv, const char *prefix); int cmd_unpack_objects(int argc, const char **argv, const char *prefix);
int cmd_update(int argc, const char **argv, const char *prefix);
int cmd_update_index(int argc, const char **argv, const char *prefix); int cmd_update_index(int argc, const char **argv, const char *prefix);
int cmd_update_ref(int argc, const char **argv, const char *prefix); int cmd_update_ref(int argc, const char **argv, const char *prefix);
int cmd_update_server_info(int argc, const char **argv, const char *prefix); int cmd_update_server_info(int argc, const char **argv, const char *prefix);

2
git.c
Просмотреть файл

@ -658,6 +658,8 @@ static struct cmd_struct commands[] = {
{ "tag", cmd_tag, RUN_SETUP | DELAY_PAGER_CONFIG }, { "tag", cmd_tag, RUN_SETUP | DELAY_PAGER_CONFIG },
{ "unpack-file", cmd_unpack_file, RUN_SETUP | NO_PARSEOPT }, { "unpack-file", cmd_unpack_file, RUN_SETUP | NO_PARSEOPT },
{ "unpack-objects", cmd_unpack_objects, RUN_SETUP | NO_PARSEOPT }, { "unpack-objects", cmd_unpack_objects, RUN_SETUP | NO_PARSEOPT },
{ "update", cmd_update },
{ "update-git-for-windows", cmd_update },
{ "update-index", cmd_update_index, RUN_SETUP }, { "update-index", cmd_update_index, RUN_SETUP },
{ "update-ref", cmd_update_ref, RUN_SETUP }, { "update-ref", cmd_update_ref, RUN_SETUP },
{ "update-server-info", cmd_update_server_info, RUN_SETUP }, { "update-server-info", cmd_update_server_info, RUN_SETUP },

16
help.c
Просмотреть файл

@ -720,3 +720,19 @@ NORETURN void help_unknown_ref(const char *ref, const char *cmd,
string_list_clear(&suggested_refs, 0); string_list_clear(&suggested_refs, 0);
exit(1); exit(1);
} }
int cmd_update(int argc, const char **argv, const char *prefix)
{
const char * const usage[] = {
N_("git update-git-for-windows [<options>]\n"
"\t(not supported in this build of Git for Windows)"),
NULL
};
struct option options[] = {
OPT_END()
};
argc = parse_options(argc, argv, prefix, options, usage, 0);
die(_("git %s is not supported in VFSforGit"), argv[0]);
}

Просмотреть файл

@ -36,4 +36,11 @@ test_expect_success 'test gc --auto succeeds when disabled via config' '
git gc --auto git gc --auto
' '
test_expect_success 'update-git-for-windows disabled' '
test_must_fail git update 2>out &&
test_i18ngrep VFS out &&
test_must_fail git update-git-for-windows 2>out &&
test_i18ngrep VFS out
'
test_done test_done