git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* git log --name-only improvement: show old file name in rename
@ 2020-06-11 11:19 Ed Avis
  2020-06-11 23:16 ` Junio C Hamano
  0 siblings, 1 reply; 5+ messages in thread
From: Ed Avis @ 2020-06-11 11:19 UTC (permalink / raw)
  To: git

The git-log manual page says

       --name-only
           Show only names of changed files.

But when a file has been renamed, only the new name is printed, not the 
old.  I think it would be more useful and more correct to print both 
names. 

For example

% git init
Initialized empty Git repository in /home/eda/test/.git/
% touch a
% git add a
% git commit -mx
[master (root-commit) ca81aa7] x
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 a
% git mv a b
% git commit -my
[master 7b3925c] y
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename a => b (100%)
% git log --name-only -n 1
commit 7b3925c1ece26d08d79cf9f06bfcb0b38fea611f (HEAD -> master)
Author: Ed Avis <eda@waniasset.com>
Date:   2020-06-11 11:59:34 +0100

    y

b


I would expect that last log message to show the old filename a as well 
as the new filename b.  If you give --no-renames then both filenames are 
shown, of course, but I think it should be possible to detect the 
rename and print out both old and new names.  There is --name-status 
which will print more info including renames, but again I believe 
--name-only should also show both.  Thank you for considering this 
improvement request.

% git --version
git version 2.26.0

-- 
Ed Avis <ed.avis@qmaw.com>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: git log --name-only improvement: show old file name in rename
  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
  0 siblings, 1 reply; 5+ messages in thread
From: Junio C Hamano @ 2020-06-11 23:16 UTC (permalink / raw)
  To: Ed Avis; +Cc: git

Ed Avis <ed.avis@qmaw.com> writes:

> The git-log manual page says
>
>        --name-only
>            Show only names of changed files.
>
> But when a file has been renamed, only the new name is printed, not the 
> old.  I think it would be more useful and more correct to print both 
> names. 

It is just you who thinks it would be more useful.

Scripts written by people over the last 10 years that expect to see
new name would certainly hate to see two names start appearing
there.

Perhaps you can use --summary at the same time?

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: git log --name-only improvement: show old file name in rename
  2020-06-11 23:16 ` Junio C Hamano
@ 2020-06-12 14:18   ` Philip Oakley
  2020-06-12 17:03     ` Junio C Hamano
  0 siblings, 1 reply; 5+ messages in thread
From: Philip Oakley @ 2020-06-12 14:18 UTC (permalink / raw)
  To: Junio C Hamano, Ed Avis; +Cc: git

@Ed
On 12/06/2020 00:16, Junio C Hamano wrote:
> Ed Avis <ed.avis@qmaw.com> writes:
>
>> The git-log manual page says
>>
>>        --name-only
>>            Show only names of changed files.
>>
>> But when a file has been renamed, only the new name is printed, not the 
>> old.  I think it would be more useful and more correct to print both 
>> names. 
Was this a concern that the manual did not clarify which name (old or
new) was being reported?
Philip

> It is just you who thinks it would be more useful.
>
> Scripts written by people over the last 10 years that expect to see
> new name would certainly hate to see two names start appearing
> there.
>
> Perhaps you can use --summary at the same time?


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: git log --name-only improvement: show old file name in rename
  2020-06-12 14:18   ` Philip Oakley
@ 2020-06-12 17:03     ` Junio C Hamano
  2020-06-15  7:36       ` Ed Avis
  0 siblings, 1 reply; 5+ messages in thread
From: Junio C Hamano @ 2020-06-12 17:03 UTC (permalink / raw)
  To: Philip Oakley; +Cc: Ed Avis, git

Philip Oakley <philipoakley@iee.email> writes:

> @Ed
> On 12/06/2020 00:16, Junio C Hamano wrote:
>> Ed Avis <ed.avis@qmaw.com> writes:
>>
>>> The git-log manual page says
>>>
>>>        --name-only
>>>            Show only names of changed files.
>>>
>>> But when a file has been renamed, only the new name is printed, not the 
>>> old.  I think it would be more useful and more correct to print both 
>>> names. 
> Was this a concern that the manual did not clarify which name (old or
> new) was being reported?

Good point.  

I am not Ed so I cannot give an answer to that question, but if we
do not document what name is listed in the output, we definitely
should.

Thanks.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: git log --name-only improvement: show old file name in rename
  2020-06-12 17:03     ` Junio C Hamano
@ 2020-06-15  7:36       ` Ed Avis
  0 siblings, 0 replies; 5+ messages in thread
From: Ed Avis @ 2020-06-15  7:36 UTC (permalink / raw)
  To: Junio C Hamano, Philip Oakley; +Cc: git

Thanks all for your replies to this.  I hoped that --name-only could show when
a filename was removed, as well as when it was added.  If you delete a 
file in one commit then add it with a new name in the next, both 
filenames appear in the log.  If these happen in a single commit, only 
one does.  And in fact it's not predictable whether you will get one 
filename or two: it depends on rename detection.  Sometimes if a file is
changed and moved to a new name, git log --name-only will show only the
new name in the log, but at other times, if git doesn't detect it as a 
rename, both filenames appear.  This feels more like an implementation 
detail than a deliberate choice.

I accept that scripts may rely on the current behaviour, though I would 
be surprised to find a script that depended on *not* seeing the old 
filename printed.

Anyway, if it shouldn't change, or if it cannot change because of backwards compatibility, the manual page could be improved:

           --name-only
           Show only names of changed or added files.
           If a file is removed, its name is also printed, unless this is detected
           as a rename, in which case only the new name is printed.

That would be enough to direct users towards something more suitable like --compact-summary.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2020-06-15  7:36 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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

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).