# [PATCH] Test that git add removes stages 1,2,3.

4 messages from 2007-07-02 to 2007-07-02. Participants: Johannes Sixt, Johannes Schindelin.
Thread: https://gitlist.dev/t/8806

## Johannes Sixt, 2007-07-02 11:18

Subject: [PATCH] Test that git add removes stages 1,2,3.
Message-ID: <11833750863127-git-send-email-johannes.sixt@telecom.at>
URL: https://gitlist.dev/e/11833750863127-git-send-email-johannes.sixt%40telecom.at

```
Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
---
git add seems to have a bug, where it doesn't remove stages 1,2,3
if a stage 0 entry is already in the index.

Here is a test (on top of maint) for the kind soul who wants to fix
this border case.  Feel free to merge this patch into your patch
that provides the fix.

-- Hannes

 t/t3700-add.sh |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/t/t3700-add.sh b/t/t3700-add.sh
index ad8cc7d..d7dd6ca 100755
--- a/t/t3700-add.sh
+++ b/t/t3700-add.sh
@@ -110,4 +110,16 @@ test_expect_success 'check correct prefix detection' '
 	git add 1/2/a 1/3/b 1/2/c
 '
 
+test_expect_success 'git add removes unmerged entries' '
+	git rm --cached -f file &&
+	for s in 0 1 2 3
+	do
+		echo "100644 0123456789012345678901234567890123456789 $s	file"
+	done | git update-index --index-info &&
+	echo new > file &&
+	git add file &&
+	git ls-files --stage | grep "^100644 .* 0	file$" &&
+	! git ls-files --stage | grep "^100644 .* [^0]	file$"
+'
+
 test_done
-- 
1.5.2.2.555.g24e57

```

## Johannes Sixt, 2007-07-02 11:23

Subject: [PATCH/amend] Test that git add removes stages 1,2,3.
Message-ID: <1183375431711-git-send-email-johannes.sixt@telecom.at>
URL: https://gitlist.dev/e/1183375431711-git-send-email-johannes.sixt%40telecom.at
In-Reply-To: <11833750863127-git-send-email-johannes.sixt@telecom.at>

```
Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
---

HMPF!

The test in the original post failed for the wrong reason. :-/

-- Hannes


 t/t3700-add.sh |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)

diff --git a/t/t3700-add.sh b/t/t3700-add.sh
index ad8cc7d..06fc2bf 100755
--- a/t/t3700-add.sh
+++ b/t/t3700-add.sh
@@ -110,4 +110,16 @@ test_expect_success 'check correct prefix detection' '
 	git add 1/2/a 1/3/b 1/2/c
 '
 
+test_expect_success 'git add removes unmerged entries' '
+	git rm --cached -f file || : ignore failure &&
+	for s in 0 1 2 3
+	do
+		echo "100644 0123456789012345678901234567890123456789 $s	file"
+	done | git update-index --index-info &&
+	echo new > file &&
+	git add file &&
+	git ls-files --stage | grep "^100644 .* 0	file$" &&
+	! git ls-files --stage | grep "^100644 .* [^0]	file$"
+'
+
 test_done
-- 
1.5.2.2.555.g24e57

```

## Johannes Schindelin, 2007-07-02 11:34

Subject: Re: [PATCH] Test that git add removes stages 1,2,3.
Message-ID: <Pine.LNX.4.64.0707021232510.4438@racer.site>
URL: https://gitlist.dev/e/Pine.LNX.4.64.0707021232510.4438%40racer.site
In-Reply-To: <11833750863127-git-send-email-johannes.sixt@telecom.at>

```
Hi,

On Mon, 2 Jul 2007, Johannes Sixt wrote:

> git add seems to have a bug, where it doesn't remove stages 1,2,3
> if a stage 0 entry is already in the index.

But how does that happen? I do not know any way to use porcelain to 
achieve that bogus state.

AFAIK stages 1,2,3 are only populated when there are conflicts, in which 
case there is no stage 0. Literally the only way I see to have both is to 
_make_ update-index put them in there.

Pilot error?

Ciao,
Dscho

```

## Johannes Sixt, 2007-07-02 11:47

Subject: Re: [PATCH] Test that git add removes stages 1,2,3.
Message-ID: <4688E5D4.6BA7EB7F@eudaptics.com>
URL: https://gitlist.dev/e/4688E5D4.6BA7EB7F%40eudaptics.com
In-Reply-To: <Pine.LNX.4.64.0707021232510.4438@racer.site>

```
Johannes Schindelin wrote:
> On Mon, 2 Jul 2007, Johannes Sixt wrote:
> 
> > git add seems to have a bug, where it doesn't remove stages 1,2,3
> > if a stage 0 entry is already in the index.
> 
> But how does that happen? I do not know any way to use porcelain to
> achieve that bogus state.

I'm aware of that; so I said "border case" in the original post.

> Pilot error?

Oh, yes :) It noticed this when I was tweaking the test for git add with
symlinks=false that I posted.

-- Hannes

```
