Bugreport: git log -L
- From
- Nikita Makarov <n.makarov@yadro.com>
- Date
- Sep 21, 2026, 07:45 UTC
- Message-ID
- <41c54b809eb1490fb467ba0fd4c5a8cf@yadro.com>
Hello, I have the found the strange behavior of "git log -L" command with python function. It is counting a blank line that sits after a function's last statement as part of that function. This happens only when the function is at the end of a file.
The way to reproduce that
git init repro && cd repro git config user.email t@t && git config user.name t
printf 'def foo():\n return 1\n\n' > bug.py git add bug.py && git commit -qm c1
printf 'def foo():\n return 1\n' > bug.py git add bug.py && git commit -qm c2
Then do
git log -L :'foo':bug.py
And you'll see
Author: t <t@t> Date: Fri Sep 18 18:21:10 2026 +0300
c2
diff --git a/bug.py b/bug.py --- a/bug.py +++ b/bug.py @@ -1,2 +1,3 @@ def foo(): return 1 + Though I expect that commit "c2" should never appear in log, since the changes from it doesn't affect the functions body at all. [System Info] git version: git version 2.43.0 cpu: x86_64 no commit associated with this build sizeof-long: 8 sizeof-size_t: 8 shell-path: /bin/sh uname: Linux 7.0.0-31-generic #31~24.04.1-Ubuntu SMP PREEMPT_DYNAMIC Mon Aug 10 09:38:02 UTC 2 x86_64 compiler info: gnuc: 13.3 libc info: glibc: 2.39 $SHELL (typically, interactive shell): /bin/bash [Enabled Hooks]