git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v3] Make GIT_INDEX_FILE apply to git-commit

From
Junio C Hamano <gitster@pobox.com>
Date
Nov 11, 2007, 19:59 UTC
Message-ID
<7vlk94d043.fsf@gitster.siamese.dyndns.org>
In-Reply-To
<87r6ixj7af.dlv@vanicat.homelinux.org>
Rémi Vanicat <vanicat@debian.org> writes:
Show 9 quoted lines
> @@ -26,7 +26,7 @@ refuse_partial () {
>  }
>  
>  TMP_INDEX=
> -THIS_INDEX="$GIT_DIR/index"
> +THIS_INDEX="${GIT_INDEX_FILE:-$GIT_DIR/index}"
>  NEXT_INDEX="$GIT_DIR/next-index$$"
>  rm -f "$NEXT_INDEX"
>  save_index () {

This is just a "purist" question, but I wonder if we want to differentiate the case where GIT_INDEX_FILE is set to empty and GIT_INDEX_FILE is not set at all?

Show 14 quoted lines
> diff --git a/t/t7500-commit.sh b/t/t7500-commit.sh
> index abbf54b..3e5abef 100755
> --- a/t/t7500-commit.sh
> +++ b/t/t7500-commit.sh
> @@ -93,4 +93,17 @@ test_expect_success 'commit message from file should override template' '
>         commit_msg_is "standard input msg"
>  '
>  
> +test_expect_success 'using GIT_INDEX_FILE' '
> +
> +       echo "some new content" >file &&
> +       GIT_INDEX_FILE=.git/another_index git add file &&
> +       GIT_INDEX_FILE=.git/another_index \
> +               git commit -m "commit using another index" &&

Tests that git-commit does not choke on committing the addion a new 'file'.

> +       git reset HEAD &&
> +       git diff HEAD -- file >current &&
> +       touch empty-file &&
> +       diff empty-file current

Clobbers the index that the above GIT_INDEX_FILE trick should not have touched before making sure of that, which is bad, and then makes sure that the new file actually has the right contents.

So, what I would suggest is:
 * Your "GIT_INDEX_FILE=... git-commit" test -- git-commit
   should not fail;
 + Test that the path you modified in the above commit (in this
   case, 'file') matches between index you used in the commit
   and the resulting commit;
 * Test that the path you modified in the above commit matches
   between the HEAD, the alternate index and the work tree (your
   latter test).
 + Test that the original index the above wanted to preserve was
   not clobbered by git-commit;
 + Test git-commit runs sensibly even when it is given a
   nonexistent file as GIT_INDEX_FILE.
Perhaps like this, instead of your patch to t/t7500:
	test_expect_success 'using alternate GIT_INDEX_FILE (1)' '
	
		cp .git/index saved-index &&
		(
			echo some new content >file &&
		        GIT_INDEX_FILE=.git/another_index &&
			export GIT_INDEX_FILE &&
			git add file &&
			git commit -m "commit using another index" &&
			git diff-index --exit-code HEAD &&
			git diff-files --exit-code
		) &&
		cmp .git/index saved-index >/dev/null
	
	'
	
	test_expect_success 'using alternate GIT_INDEX_FILE (2)' '
	
		cp .git/index saved-index &&
		(
			rm -f .git/no-such-index &&
			GIT_INDEX_FILE=.git/no-such-index &&
			export GIT_INDEX_FILE &&
			git commit -m "commit using nonexistent index" &&
			test -z "$(git ls-files)" &&
			test -z "$(git ls-tree HEAD)"
	
		) &&
		cmp .git/index saved-index >/dev/null
	
	'
Previous: Rémi VanicatNext: Remi Vanicat
Message 2 of 3 in “Make GIT_INDEX_FILE apply to git-commit”
  1. Make GIT_INDEX_FILE apply to git-commitRémi Vanicat, Nov 11, 2007
  2. Junio C HamanoNov 11, 2007
  3. Remi VanicatNov 12, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.