git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [Bug Report] git log -L:<funcname>:<file>

From
Atharva Raykar <raykar.ath@gmail.com>
Date
May 20, 2021, 07:05 UTC
Message-ID
<415E9638-B035-49A2-B2AF-1CBD988421D4@gmail.com>
In-Reply-To
<CAH6yD_bkY+_7XrzHdOqnnE=qvnnvxAWEQPtOyVh=BwvbcheTCA@mail.gmail.com>
On 20-May-2021, at 05:41, Weishi Zeng <amwish.zeng@gmail.com> wrote:
Show 19 quoted lines
> 
> Summary:
> git log -L:<funcname>:<file>
> would fail if there's any java-style comment that appears before the
> <funcname> string in the file.
> 
> 
> Details:
> Thank you for filling out a Git bug report!
> Please answer the following questions to help us understand your issue.
> 
> What did you do before the bug happened? (Steps to reproduce your issue)
> git log -L:'myFunction':~/a.java
> The file is a java file that contains comment before the function name.
> E.g.
> /**
> * comments will interrupt the regex match
> */
> private static void myFunction() {}

I was able to reproduce a similar problem, but it was not the comments that were causing it. It was happening to methods that were indented (ie, defined within a class, as is always the case in Java).

Show 6 quoted lines
> What did you expect to happen? (Expected behavior)
> As described, it should return me the commit history that touched this function
> 
> What happened instead? (Actual behavior)
> It returns error:
> fatal: -L parameter 'myFunction' starting at line 1: no match

Can you try adding a .gitattributes file at the root of your repository, with the following contents:

*.java diff=java
After that, try running the command again, and see if that helps.

I suspect the default regex that tries to locate your function might not be matching as well as it should, and does not handle indented function definitions properly.

(More on what the .gitattributes file does: https://git-scm.com/docs/gitattributes#_defining_a_custom_hunk_header)

Show 26 quoted lines
> Anything else you want to add:
> If the function name string to search for appears before any
> java-style comment, it returns a valid response.
> 
> Please review the rest of the bug report below.
> You can delete any lines you don't wish to share.
> 
> 
> [System Info]
> git version:
> git version 2.30.1 (Apple Git-130)
> cpu: x86_64
> no commit associated with this build
> sizeof-long: 8
> sizeof-size_t: 8
> shell-path: /bin/sh
> uname: Darwin 20.4.0 Darwin Kernel Version 20.4.0: Thu Apr 22 21:46:47
> PDT 2021; root:xnu-7195.101.2~1/RELEASE_X86_64 x86_64
> compiler info: clang: 12.0.5 (clang-1205.0.22.6)
> libc info: no libc information available
> $SHELL (typically, interactive shell): /bin/zsh
> 
> 
> [Enabled Hooks]
> post-commit
> post-rewrite

-- Atharva Raykar

Previous: Weishi Zeng
Message 4 of 4 in “[Bug Report] git log -L:<funcname>:<file>”
  1. Weishi ZengMay 20, 2021
  2. Bagas SanjayaMay 20, 2021
  3. Weishi ZengMay 20, 2021
  4. Atharva RaykarMay 20, 2021

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.