commit --interactive: make it work with the built-in `add -i`
commitc480eeb574e649a19f27dc09a994e45f9b2c2622
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Sat, 21 Dec 2019 21:57:16 +0000 (21 21:57 +0000)
committerJunio C Hamano <gitster@pobox.com>
Sun, 22 Dec 2019 00:06:22 +0000 (21 16:06 -0800)
treed23f602efc4f3886c3e6b24d0811537d6b398af3
parentcee6cb7300354740ff765c74d535ba5d5f9b332e
commit --interactive: make it work with the built-in `add -i`

The built-in `git add -i` machinery obviously has its `the_repository`
structure initialized at the point where `cmd_commit()` calls it, and
therefore does not look at the environment variable `GIT_INDEX_FILE`.

But when being called from `commit --interactive`, it has to, because
the index was already locked in that case, and we want to ask the
interactive add machinery to work on the `index.lock` file instead of
the `index` file.

Technically, we could teach `run_add_i()`, or for that matter
`run_add_p()`, to look specifically at that environment variable, but
the entire idea of passing in a parameter of type `struct repository *`
is to allow working on multiple repositories (and their index files)
independently.

So let's instead override the `index_file` field of that structure
temporarily.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/commit.c