# git log vs git diff vs --name-status

4 messages from 2007-08-23 to 2007-08-24. Participants: VMiklos, Junio C Hamano.
Thread: https://gitlist.dev/t/9621

## VMiklos, 2007-08-23 08:43

Subject: git log vs git diff vs --name-status
Message-ID: <20070823084315.GA31174@genesis.frugalware.org>
URL: https://gitlist.dev/e/20070823084315.GA31174%40genesis.frugalware.org

```
hi,

$ git diff HEAD --name-status
M       dir/foo1

then i commit this change, and git log says:

$ git log --name-status -1
commit c9128f447c614d5b085286d9d7e84a643fbaea92
Author: VMiklos <vmiklos@frugalware.org>
Date:   Thu Aug 23 10:41:38 2007 +0200

    foo

M       dir

only. no /foo1. also is the file is dir/subdir/file1, then only "M dir"
is shown. is this inconsistency expected?

yes, i know that using --stats this problem could go away, but i speak
about --name-status

thanks,
- VMiklos

```

## VMiklos, 2007-08-23 08:45

Subject: Re: git log vs git diff vs --name-status
Message-ID: <20070823084512.GB31174@genesis.frugalware.org>
URL: https://gitlist.dev/e/20070823084512.GB31174%40genesis.frugalware.org
In-Reply-To: <20070823084315.GA31174@genesis.frugalware.org>

```
Hello,

Na Thu, Aug 23, 2007 at 10:43:15AM +0200, VMiklos <vmiklos@frugalware.org> pisal(a):
> M       dir

sorry, i needed the -r option

- VMiklos

```

## Junio C Hamano, 2007-08-23 09:33

Subject: Re: git log vs git diff vs --name-status
Message-ID: <7vr6lutx1p.fsf@gitster.siamese.dyndns.org>
URL: https://gitlist.dev/e/7vr6lutx1p.fsf%40gitster.siamese.dyndns.org
In-Reply-To: <20070823084512.GB31174@genesis.frugalware.org>

```
VMiklos <vmiklos@frugalware.org> writes:

> Na Thu, Aug 23, 2007 at 10:43:15AM +0200, VMiklos <vmiklos@frugalware.org> pisal(a):
>> M       dir
>
> sorry, i needed the -r option

I know.

I've been debating myself if --name-status should imply -r
(recursive behaviour) for "git log".  More specifically, I think
a reasonable guiding principles would be something like:

 * Anything that looks at the file contents level change (that
   is, -p, --stat and --numstat) should always imply recursive;

 * Anything that is Porcelain should always imply recursive.

I am fairly certain about the first one, but not absolutely sure
about the latter.  The first principle does not justify making
your example to recurse, but the second, if we accept it, would.

```

## VMiklos, 2007-08-24 08:58

Subject: Re: git log vs git diff vs --name-status
Message-ID: <20070824085819.GM31174@genesis.frugalware.org>
URL: https://gitlist.dev/e/20070824085819.GM31174%40genesis.frugalware.org
In-Reply-To: <7vr6lutx1p.fsf@gitster.siamese.dyndns.org>

```
Hello,

Na Thu, Aug 23, 2007 at 02:33:38AM -0700, Junio C Hamano <gitster@pobox.com> pisal(a):
>  * Anything that is Porcelain should always imply recursive.
> 
> I am fairly certain about the first one, but not absolutely sure
> about the latter.  The first principle does not justify making
> your example to recurse, but the second, if we accept it, would.

well, i'm not one who should decide this, but i like the idea, i see no
case when not implying recursive in the Porcelain layer can be useful

- VMiklos

```
