git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3] Make GIT_INDEX_FILE apply to git-commit
@ 2007-11-11 12:28 Rémi Vanicat
  2007-11-11 19:59 ` Junio C Hamano
  0 siblings, 1 reply; 3+ messages in thread
From: Rémi Vanicat @ 2007-11-11 12:28 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: git

Currently, when committing, git-commit ignore the value of
GIT_INDEX_FILE, and always use $GIT_DIR/index. This patch
fix it.

Signed-off-by: Rémi Vanicat <vanicat@debian.org>
---
 git-commit.sh     |    2 +-
 t/t7500-commit.sh |   13 +++++++++++++
 2 files changed, 14 insertions(+), 1 deletions(-)

diff --git a/git-commit.sh b/git-commit.sh
index fcb8443..6490045 100755
--- a/git-commit.sh
+++ b/git-commit.sh
@@ -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 () {
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" &&
+       git reset HEAD &&
+       git diff HEAD -- file >current &&
+       touch empty-file &&
+       diff empty-file current
+
+'
+
 test_done
-- 
1.5.3.5

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH v3] Make GIT_INDEX_FILE apply to git-commit
  2007-11-11 12:28 [PATCH v3] Make GIT_INDEX_FILE apply to git-commit Rémi Vanicat
@ 2007-11-11 19:59 ` Junio C Hamano
  2007-11-12 18:41   ` Remi Vanicat
  0 siblings, 1 reply; 3+ messages in thread
From: Junio C Hamano @ 2007-11-11 19:59 UTC (permalink / raw)
  To: Rémi Vanicat; +Cc: git

Rémi Vanicat <vanicat@debian.org> writes:

> @@ -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?

> 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
	
	'

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH v3] Make GIT_INDEX_FILE apply to git-commit
  2007-11-11 19:59 ` Junio C Hamano
@ 2007-11-12 18:41   ` Remi Vanicat
  0 siblings, 0 replies; 3+ messages in thread
From: Remi Vanicat @ 2007-11-12 18:41 UTC (permalink / raw)
  To: git; +Cc: Junio C Hamano

Junio C Hamano <gitster@pobox.com> writes:

> Rémi Vanicat <vanicat@debian.org> writes:
>
>> @@ -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?

Well, It's my first patch to git, and I overlook it

> 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
> 	
> 	'

Seem, good, I will use this.

-- 
Rémi Vanicat

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2007-11-12 18:43 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-11-11 12:28 [PATCH v3] Make GIT_INDEX_FILE apply to git-commit Rémi Vanicat
2007-11-11 19:59 ` Junio C Hamano
2007-11-12 18:41   ` Remi Vanicat

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).