From: Shawn Pearce Date: Thu, 2 Mar 2006 17:21:33 +0000 (-0500) Subject: Prevent --index-info from ignoring -z. X-Git-Tag: v1.3.0-rc1~79 X-Git-Url: https://git.verplant.org/?a=commitdiff_plain;h=a41c175d6f3e903844131b6dc39da986248c7585;p=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 Signed-off-by: Junio C Hamano --- diff --git a/update-index.c b/update-index.c index ce1db38d..797245ab 100644 --- a/update-index.c +++ b/update-index.c @@ -577,9 +577,11 @@ int main(int argc, const char **argv) break; } if (!strcmp(path, "--index-info")) { + if (i != argc - 1) + die("--index-info must be at the end"); allow_add = allow_replace = allow_remove = 1; read_index_info(line_termination); - continue; + break; } if (!strcmp(path, "--ignore-missing")) { not_new = 1;