Re: [PATCH] cat-file --batch / --batch-check: do not exit if hashes are missing
- From
Johannes Sixt <j.sixt@viscovery.net>
- Date
- Jun 9, 2008, 14:23 UTC
- Message-ID
- <484D3CCB.1000508@viscovery.net>
- In-Reply-To
- <1212967717-5165-1-git-send-email-LeWiemann@gmail.com>
Lea Wiemann schrieb:
> Previously, cat-file --batch / --batch-check would silently exit if it > was passed a non-existent SHA1 on stdin. Now it prints "<SHA1> > missing" as in all other cases (and as advertised in the > documentation).
Makes sense!
Show 15 quoted lines
> diff --git a/builtin-cat-file.c b/builtin-cat-file.c
> index f8b3160..112b9db 100644
> --- a/builtin-cat-file.c
> +++ b/builtin-cat-file.c
> @@ -168,8 +168,11 @@ static int batch_one_object(const char *obj_name, int print_contents)
> else
> type = sha1_object_info(sha1, &size);
>
> - if (type <= 0)
> - return 1;
> + if (type <= 0) {
> + printf("%s missing\n", obj_name);
> + fflush(stdout);
> + return 0;
> + }With this change an invalid name and a non-existing SHA1 are treated as "missing". But an empty name is still an error, which we don't see here because it's outside the hunk's context: It is the first thing that the function checks, and there it exits with return 1. Why is this case still special?
-- Hannes