Retrieving logs matching pattern for all time.
- From
- Jeremy Nickurak <vger-lists@trk.nickurak.ca>
- Date
- Sep 3, 2011, 00:03 UTC
- Message-ID
- <CA+eQo_0gZpbz399GN1b+0mq8OY3Xoo+kij=UGSjwbJcNreYBvw@mail.gmail.com>
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