Re: [PATCH] setup: only die on invalid .git under RUN_SETUP
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jul 22, 2021, 19:06 UTC
- Message-ID
- <xmqq5yx29nj3.fsf@gitster.g>
- In-Reply-To
- <patch-1.1-fc26c46d39-20210722T140648Z-avarab@gmail.com>
Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:
Show 11 quoted lines
> Change RUN_SETUP_GENTLY to stop dying if e.g. the .git is "not a > repo". This means that we now recover in cases like: > > $ echo "gitdir: /foo/bar" > .git > $ git ls-remote https://github.com/torvalds/linux > [... ls-remote output ...] > > But not (as intended): > > $ git rev-parse HEAD > fatal: not a git repository: /foo/bar
I am of two minds. ls-remote is benign in that it behaves more or less identically when given certain types of args, and the above may be a strict improvement (but it does fail if you did not use URL but use a remote nickname you thought you configured in the repository in such a situation). There however are a few niche commands that work inside and outside a repository and they work differently. For example, if you do
$ git diff file1 file2
in such a corrupt repository, I'd prefer to see the command _fail_ to nudge the user to look into the situation, instead of taking the output (which degenerates to "git diff --no-index file1 file2" outside a repository) blindly as a patch that shows the changes relative to the index for these two paths.