threads / discuss / 14979

git -p does not detect a bare repository

Subject: git -p does not detect a bare repository

## tl;dr

2 messages between Aug 13, 2008 and Aug 13, 2008.

replies: 1people: 2as markdown or json

Johannes Sixt· Aug 13, 2008, 13:51 UTC · lore
If $PWD is a bare repository, is it expected behavior that
  $ git diff-tree master^ master
works as expected, but
  $ git -p diff-tree master^ master
errors out:
  fatal: ambiguous argument 'master^': unknown revision or path blabla...
-- Hannes
Jeff King· Aug 13, 2008, 16:51 UTC · re: Johannes Sixt · lore

Re: git -p does not detect a bare repository

On Wed, Aug 13, 2008 at 03:51:21PM +0200, Johannes Sixt wrote:
Show 11 quoted lines
> If $PWD is a bare repository, is it expected behavior that
> 
>   $ git diff-tree master^ master
> 
> works as expected, but
> 
>   $ git -p diff-tree master^ master
> 
> errors out:
> 
>   fatal: ambiguous argument 'master^': unknown revision or path blabla...

Yep. This has been broken for some time, too. I bisected it down to cad3a205 from last year, which is in v1.5.3.

It's yet another incarnation of the same bug we keep seeing (which I suppose is why you cc'd me). Anytime you look at the config before running setup_git_directory, it screws up the GIT_DIR calculation for bare repositories. AFAIK it's a bad interaction between the lazy setup in setup_git_env and the magic in setup_git_directory.

I'm sure there is a "right" solution but I haven't had time to figure it out yet. In this case, we are looking at the config to get the value of core.pager. As a workaround, you could try doing that lookup in the forked pager child (however, I don't think that would work on platforms where run_command doesn't use fork).

-Peff

← back to recent threads