threads / discuss / 28290

Retrieving logs matching pattern for all time.

Subject: Retrieving logs matching pattern for all time.

## tl;dr

3 messages between Sep 3, 2011 and Sep 4, 2011.

replies: 2people: 3as markdown or json

Jeremy Nickurak· Sep 3, 2011, 00:03 UTC · lore

I have a glob pattern of files, and I'd like to get git logs for every commit that touched those files. 'git log filesmatchingglob*' is pretty close.

Unfortunately, because the * is interpreted by bash, it doesn't catch logs for files that don't exist anymore.

Protecting the * from bash was my next thought, but that doesn't seem to help:
Show 12 quoted lines
> user@host:~$ mkdir something
> user@host:~$ cd something
> user@host:~/something$ git init
> Initialized empty Git repository in /home/nickuj/something/.git/
> user@host:~/something$ echo hello > hello.txt
> user@host:~/something$ git add hello.txt
> user@host:~/something$ git commit -m hello hello.txt
> [master (root-commit) ca4b223] hello
>  1 files changed, 1 insertions(+), 0 deletions(-)
>  create mode 100644 hello.txt
> user@host:~/something$ git log -- 'hel*'
> user@host:~/something$
IE, git doesn't seem to interpret globs itself in patterns.

http://stackoverflow.com/questions/543346/git-list-all-the-files-that-ever-existed suggests a means to get a list of all files that ever existed, and I could certainly iterate across that, find the files that match the pattern, and then run git-log against that.... but it seems like a problem somebody's already solved more elegantly.

Any thoughts?
-- 
Jeremy Nickurak
Thomas Rast· Sep 4, 2011, 16:13 UTC · re: Jeremy Nickurak · lore

Re: Retrieving logs matching pattern for all time.

Jeremy Nickurak wrote:
> > user@host:~/something$ git log -- 'hel*'
> > user@host:~/something$
> 
> IE, git doesn't seem to interpret globs itself in patterns.
It does for me:

thomas@thomas:~/g(next u+59)$ g log --oneline --name-status -- "REA*" f73b3af README: git lives at http://git-scm.com these days M README

etc.
Which git version are you using?
-- 
Thomas Rast
trast@{inf,student}.ethz.ch
Junio C Hamano· Sep 4, 2011, 18:59 UTC · re: Thomas Rast · lore

Re: Retrieving logs matching pattern for all time.

Thomas Rast <trast@student.ethz.ch> writes:
Show 13 quoted lines
> Jeremy Nickurak wrote:
>> > user@host:~/something$ git log -- 'hel*'
>> > user@host:~/something$
>> 
>> IE, git doesn't seem to interpret globs itself in patterns.
>
> It does for me:
>
> thomas@thomas:~/g(next u+59)$ g log --oneline --name-status -- "REA*"
> f73b3af README: git lives at http://git-scm.com these days
> M       README
>
> etc.

The "git log" family learned globbing pathspecs in 1.7.5 if I believe the Release Notes.

← back to recent threads