# unmerged flag at git diff-index

3 messages from 2009-01-21 to 2009-01-21. Participants: Frank Li, Junio C Hamano, Johannes Schindelin.
Thread: https://gitlist.dev/t/17278

## Frank Li, 2009-01-21 02:13

Subject: unmerged flag at git diff-index
Message-ID: <1976ea660901201813r7b03525ax39fd0e1ecfb1700e@mail.gmail.com>
URL: https://gitlist.dev/e/1976ea660901201813r7b03525ax39fd0e1ecfb1700e%40mail.gmail.com

```
There are conflict when I call git merge
git ls-files -u
100644 54d05e1c40c686027b611b702e014284e9ab9a31 1       a.c
100644 a8a1b77c0d92f33491a0a69a8645f02ececb1eb6 2       a.c
100644 642ba972b2234f63048abcca544b3926f94e04ee 3       a.c

but when use git diff-index HEAD
:100644 100644 a8a1b77c0d92f33491a0a69a8645f02ececb1eb6 0000000000000000000000
0000000000000000 M      a.c

a.c flag is M: Modification of the contents or mode of a file.

I think it should be U: file is unmerged(you must complete the merge
before it can be commited)

```

## Junio C Hamano, 2009-01-21 02:40

Subject: Re: unmerged flag at git diff-index
Message-ID: <7vbpu1js9o.fsf@gitster.siamese.dyndns.org>
URL: https://gitlist.dev/e/7vbpu1js9o.fsf%40gitster.siamese.dyndns.org
In-Reply-To: <1976ea660901201813r7b03525ax39fd0e1ecfb1700e@mail.gmail.com>

```
Frank Li <lznuaa@gmail.com> writes:

> There are conflict when I call git merge
> git ls-files -u
> 100644 54d05e1c40c686027b611b702e014284e9ab9a31 1       a.c
> 100644 a8a1b77c0d92f33491a0a69a8645f02ececb1eb6 2       a.c
> 100644 642ba972b2234f63048abcca544b3926f94e04ee 3       a.c
>
> but when use git diff-index HEAD
> :100644 100644 a8a1b77c0d92f33491a0a69a8645f02ececb1eb6 0000000000000000000000
> 0000000000000000 M      a.c
>
> a.c flag is M: Modification of the contents or mode of a file.

That is correct.

By asking "git diff-index HEAD", you are asking to compare the work tree
contents through the index against HEAD commit.  The work tree path by
definition cannot be "unmerged" as there is no stages in the work tree.

"git diff-index --cached HEAD" would compare the index against the HEAD
commit, and would say it is unmerged.

```

## Johannes Schindelin, 2009-01-21 02:48

Subject: Re: unmerged flag at git diff-index
Message-ID: <alpine.DEB.1.00.0901210343510.19014@racer>
URL: https://gitlist.dev/e/alpine.DEB.1.00.0901210343510.19014%40racer
In-Reply-To: <1976ea660901201813r7b03525ax39fd0e1ecfb1700e@mail.gmail.com>

```
Hi,

On Wed, 21 Jan 2009, Frank Li wrote:

> There are conflict when I call git merge
> git ls-files -u
> 100644 54d05e1c40c686027b611b702e014284e9ab9a31 1       a.c
> 100644 a8a1b77c0d92f33491a0a69a8645f02ececb1eb6 2       a.c
> 100644 642ba972b2234f63048abcca544b3926f94e04ee 3       a.c
> 
> but when use git diff-index HEAD
> :100644 100644 a8a1b77c0d92f33491a0a69a8645f02ececb1eb6 0000000000000000000000
> 0000000000000000 M      a.c
> 
> a.c flag is M: Modification of the contents or mode of a file.
> 
> I think it should be U: file is unmerged(you must complete the merge
> before it can be commited)

You're talking plumbing here.  And diff-index is about the differences 
between the working directory and the index _stage 0_.

I don't think that's a bug (what would you display? stage 1? stage 2? 
stage 3?), but even if it weren't, it is plumbing, and plumbing's UI is 
guaranteed to be stable.

So I guess that you really have to use "git ls-files --stage" at some 
stage :-)

Ciao,
Dscho

```
