cat-file: restore warn_on_object_refname_ambiguity flag

Commit 25fba78 turned off the object/refname ambiguity check
during "git cat-file --batch" operations. However, this is a
global flag, so let's restore it when we are done.

This shouldn't make any practical difference, as cat-file
exits immediately afterwards, but is good code hygeine and
would prevent an unnecessary surprise if somebody starts to
call cmd_cat_file later.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Jeff King 2014-03-12 16:05:43 -04:00 committed by Junio C Hamano
parent 648027c4c8
commit a42fcd15d8

View File

@ -260,6 +260,7 @@ static int batch_objects(struct batch_options *opt)
{ {
struct strbuf buf = STRBUF_INIT; struct strbuf buf = STRBUF_INIT;
struct expand_data data; struct expand_data data;
int save_warning;
int retval = 0; int retval = 0;
if (!opt->format) if (!opt->format)
@ -282,6 +283,7 @@ static int batch_objects(struct batch_options *opt)
* warn) ends up dwarfing the actual cost of the object lookups * warn) ends up dwarfing the actual cost of the object lookups
* themselves. We can work around it by just turning off the warning. * themselves. We can work around it by just turning off the warning.
*/ */
save_warning = warn_on_object_refname_ambiguity;
warn_on_object_refname_ambiguity = 0; warn_on_object_refname_ambiguity = 0;
while (strbuf_getline(&buf, stdin, '\n') != EOF) { while (strbuf_getline(&buf, stdin, '\n') != EOF) {
@ -305,6 +307,7 @@ static int batch_objects(struct batch_options *opt)
} }
strbuf_release(&buf); strbuf_release(&buf);
warn_on_object_refname_ambiguity = save_warning;
return retval; return retval;
} }