зеркало из https://github.com/microsoft/git.git
Prevent --index-info from ignoring -z.
If git-update-index --index-info -z is used only the first record given to the process will actually be updated as the -z option is ignored until after all index records have been read and processed. This meant that multiple null terminated records were seen as a single record which was lacking a trailing LF, however since the first record ended in a null the C string handling functions ignored the trailing garbage. So --index-info should be required to be the last command line option, much as --stdin is required to be the last command line option. Because --index-info implies --stdin this isn't an issue as the user shouldn't be passing --stdin when also passing --index-info. Signed-off-by: Shawn O. Pearce <spearce@spearce.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Родитель
c7569b1e00
Коммит
a41c175d6f
|
@ -577,9 +577,11 @@ int main(int argc, const char **argv)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (!strcmp(path, "--index-info")) {
|
if (!strcmp(path, "--index-info")) {
|
||||||
|
if (i != argc - 1)
|
||||||
|
die("--index-info must be at the end");
|
||||||
allow_add = allow_replace = allow_remove = 1;
|
allow_add = allow_replace = allow_remove = 1;
|
||||||
read_index_info(line_termination);
|
read_index_info(line_termination);
|
||||||
continue;
|
break;
|
||||||
}
|
}
|
||||||
if (!strcmp(path, "--ignore-missing")) {
|
if (!strcmp(path, "--ignore-missing")) {
|
||||||
not_new = 1;
|
not_new = 1;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче