Subject: Re: [PATCH 2/2] check-attr: move to the top of working tree when in non-bare repository

From: Jonathan Nieder <[email-masked]>
Date: Thu, 6 Feb 2014 12:17:43 -0800

Hi again,

Jonathan Nieder wrote:
> Junio C Hamano wrote:

>> +	if (!is_bare_repository())
>> +		setup_work_tree();
>
> Hm.  Shouldn't check-attr error out when run without a worktree and
> without --cached?
> 
> That would mean something like
> 
> diff --git i/builtin/check-attr.c w/builtin/check-attr.c
> index e9af7b2..c34b6ee 100644
> --- i/builtin/check-attr.c
> +++ w/builtin/check-attr.c
> @@ -107,6 +107,9 @@ int cmd_check_attr(int argc, const char **argv, const char *prefix)
>  	argc = parse_options(argc, argv, prefix, check_attr_options,
>  			     check_attr_usage, PARSE_OPT_KEEP_DASHDASH);
>  
> +	if (!cached_attrs)
> +		setup_work_tree();

Someone asked in a private reply how this interacts with t0003.

t0003 tries check-attr in a bare repository.  The question is, is that
a desirable feature, and are people relying on it?  If people are
relying on it, perhaps the intuitive behavior would be to make
check-attr use an only-look-at-HEAD mode by default when running in a
bare repo.

How do I use the only-look-at-HEAD mode from a non-bare repo?  If I
want attributes with respect to some other commit instead of HEAD, is
there a syntax for that?  The command doesn't seem to have been well
thought out.

Hope that helps,
Jonathan