git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Nathan Faulkner <natedogith1@gmail.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: Ed Avis <ed.avis@qmaw.com>,
	Philip Oakley <philipoakley@iee.email>,
	"git@vger.kernel.org" <git@vger.kernel.org>
Subject: Re: Re*: git log --name-only improvement: show old file name in rename
Date: Fri, 17 May 2024 20:24:20 -0400	[thread overview]
Message-ID: <02d147ce-78d1-4fd9-b9b4-14b0662188c6@gmail.com> (raw)
In-Reply-To: <xmqqv83cl97m.fsf_-_@gitster.g>

On 5/17/2024 12:00 PM, Junio C Hamano wrote:
> Nathan Faulkner <natedogith1@gmail.com> writes:
> 
>> The documentation for --name-only says "Show only names of changed
>> files." I would interpret this to mean "output the names of all files
>> that changed", not "output the names of all files that changed, unless
>> git detected it as renamed".
> 
> Interesting observation, but we do show renamed files no?  Even when
> there is no content changes?  A quick experiment tells me it does,
> so "unless" is not quite correct.

It seems to me it's not showing the names of all files.  If a file was 
created and a separate file was deleted, but git happens to detect it as 
a rename, it will only show the created file even though from my 
perspective both files changed.

Though even for a true rename, I'd have expected --name-only to show all 
paths that changed (what you want if you're trying to find code owners 
or determine what needs to be rebuilt).

> diff --git c/Documentation/diff-options.txt w/Documentation/diff-options.txt
> index 0e9456957e..b9eaea32d9 100644
> --- c/Documentation/diff-options.txt
> +++ w/Documentation/diff-options.txt
> @@ -329,7 +329,8 @@ explained for the configuration variable `core.quotePath` (see
>   linkgit:git-config[1]).
>   
>   --name-only::
> -	Show only names of changed files. The file names are often encoded in UTF-8.
> +	Show only the name in the before-tree of changed files.
> +	The file names are often encoded in UTF-8.
>   	For more information see the discussion about encoding in the linkgit:git-log[1]
>   	manual page.
>   

That description sounds to me like it only shows files that existed in 
the from-commit, not any files that were created in the to-commit.

If the description is updated, it'd probably be a good idea to 
explicitly call out that --no-renames can be used to get the expected 
behavior of showing all files that changed.


This behavior can also lead to a situation where git diff --name-only 
stops reporting a file as changed when including a newer commit that 
doesn't involve the file.

$ echo '{}' > foo.json; git add .; git commit -m foo
$ rm foo.json; git add .; git commit -m delete
$ echo '{}' > bar.json; git add .; git commit -m bar

$ git diff --name-only HEAD~2 HEAD~1
foo.json
$ git diff --name-only HEAD~1 HEAD
bar.json
$ git diff --name-only HEAD~2 HEAD
bar.json


  reply	other threads:[~2024-05-18  0:24 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-11 11:19 git log --name-only improvement: show old file name in rename Ed Avis
2020-06-11 23:16 ` Junio C Hamano
2020-06-12 14:18   ` Philip Oakley
2020-06-12 17:03     ` Junio C Hamano
2020-06-15  7:36       ` Ed Avis
2024-05-16 23:13         ` Nathan Faulkner
2024-05-17 16:00           ` Re*: " Junio C Hamano
2024-05-18  0:24             ` Nathan Faulkner [this message]
2024-05-18  2:05               ` Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=02d147ce-78d1-4fd9-b9b4-14b0662188c6@gmail.com \
    --to=natedogith1@gmail.com \
    --cc=ed.avis@qmaw.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=philipoakley@iee.email \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).