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
next prev parent 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).