Nazri Ramliy <ayieh...@gmail.com> writes:
> On Sun, Aug 18, 2013 at 6:33 PM, Zhan Jianyu <nasa4...@gmail.com> wrote:
>> Such a requirement came into my mind when I am tracking a gloomy C
>> struct , with lengthy list of elements which are either elaborated or
>> opaque. So I use git blame to track it down and found that its
>> original version is quite simple and intuitive. So I think I could
>> just slice out every snapshot of this struct, reading every changelog
>> , to get a better knowledge of what it is and why it should be like
>> It seems quite helpful but the process is quite cumbersome. So I
>> wonder if there is already some mechanism fulfilling my requirement in
>> Git. If it doesn't, would it be worthy adding one ?
> It's already merged to git.git's master quite recently in
> ed73fe56428eecd2b635473f6a517a183c4713a3 (back in June).
> You'd invoke git log like this:
> $ git log -L :struct_or_function_name:filename.c
> and it will show you the commits and the specific hunks that affect
> the struct or function name.
> It's still a bit rough on the edges, for example, doing the following
> in git.git:
> $ git log -L :rev_cmdline_info:revision.h
> Shows three commits (a765499, ca92e59 and 281eee4) where the second
> one does not touch the struct at all (if you do "git show ca92e59" you
> might gain an insight as to how -L works).
Hmm, IIUC that's actually not a bug or even a roughness; it's an
artifact of how the :pattern:file syntax is defined. It takes the first
_funcname line_ matching 'pattern', up to (but excluding) the next
The default funcname rule (in the absence of any patterns) does not
match '#define...' on account of the '#'. The default funcname pattern
for 'cpp' (if you manually configured your git.git repo to set this
attribute; it doesn't by default) never matches a leading '#´ either.
So it's no surprise that the tracked range extends a few more lines
after the struct.
Or is there an issue that I'm missing?
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html