Subject: Re: [PATCH 3/5] cat-file: disable refs/replace with --batch-all-objects

From: Junio C Hamano <[email-masked]>
Date: Thu, 07 Oct 2021 13:48:03 -0700

Jeff King <[email-masked]> writes:

> diff --git a/Documentation/git-cat-file.txt b/Documentation/git-cat-file.txt
> index 6467707c6e..27b27e2b30 100644
> --- a/Documentation/git-cat-file.txt
> +++ b/Documentation/git-cat-file.txt
> @@ -96,7 +96,8 @@ OPTIONS
>  	any alternate object stores (not just reachable objects).
>  	Requires `--batch` or `--batch-check` be specified. By default,
>  	the objects are visited in order sorted by their hashes; see
> -	also `--unordered` below.
> +	also `--unordered` below. Objects are presented as-is, without
> +	respecting the "replace" mechanism of linkgit:git-replace[1].

OK.

> diff --git a/builtin/cat-file.c b/builtin/cat-file.c
> index 243fe6844b..b713be545e 100644
> --- a/builtin/cat-file.c
> +++ b/builtin/cat-file.c
> @@ -529,6 +529,8 @@ static int batch_objects(struct batch_options *opt)
>  		if (has_promisor_remote())
>  			warning("This repository uses promisor remotes. Some objects may not be loaded.");
>  
> +		read_replace_refs = 0;
> +
>  		cb.opt = opt;
>  		cb.expand = &data;
>  		cb.scratch = &output;

This is still early enough in the codeflow that we wouldn't have
looked up any object under the different name up to this point,
which is good.