[git-users] Re: search commit log for given versions

2011-08-13 Thread LovelyLich


On Aug 11, 3:38 pm, David Aguilar dav...@gmail.com wrote:
 On Wed, Aug 10, 2011 at 10:01:38PM -0700, LovelyLich wrote:
  Hi all
  I have git clone 
  git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git,
  So, I get an repo for linux  kernel source code .
  What I  want to do is to search for a function changes from version A
  to version B.
  for instance, I want to get change log for function
  kmem_cache_create  in file  mm/slab.c  from kernel 2.6.18  to
  3.0.

  What I should issue an command?
  I have tried
             git  log --grep='kmem_cache_create' mm/slab.c
  but this will get many commits and every commit is specified with an
  sha1,  not kernel version  which  i wanted.

 What if you did something like this?

         $ git log \
         --grep='kmem_cache_create --pretty=format:%H \
         -- mm/slab.c |
         while read sha1; do
                 echo $sha1
                 git describe $sha1
         done

 Be advised that that only finds commits that mention
 'kmem_cache_create' in the commit message (--grep).

 You might get farther using git blame on the file
 and see the commits that make up that function.

 Also, the git describe output is a fuzzy representation
 of the version.

 What are you trying to find?  There's a lot you can do once you
 have the $sha1.  For example, git tag --contains $sha1
 would tell you which releases contain the change.

 That might be closer to what you're interested in.
 If you're interested in commits that touch the function
 definition you could try the -S switch, which will show you
 everytime content changes containing that string:

         $ git log -S'kmem_cache_create' ...

 There's no way to do a general log for changes to a function
 but git has all the information necessary to implement such
 a script.  That'd be a pretty useful script.  I wonder if
 anyone's ever written such a thing.

 git-blame is the closest to that.  It can be told to look
 at the history of a range of lines in a file:

 http://stackoverflow.com/questions/5098256/git-blame-prior-commitshttp://book.git-scm.com/5_finding_issues_-_git_blame.html

 I hope that helps,
 --
                                         David

 git-cola: The highly caffeinated git GUI

 https://github.com/davvid/git-cola.githttp://cola.tuxfamily.org/



Very thanks for you long and detailed reply.I think I got what i
want from your reply . thanks again.
BTW, i found i can solve this problem easily by using gitk  to browse
log...

-- 
You received this message because you are subscribed to the Google Groups Git 
for human beings group.
To post to this group, send email to git-users@googlegroups.com.
To unsubscribe from this group, send email to 
git-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/git-users?hl=en.



[git-users] search commit log for given versions

2011-08-10 Thread LovelyLich
Hi all
I have git clone 
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git,
So, I get an repo for linux  kernel source code .
What I  want to do is to search for a function changes from version A
to version B.
for instance, I want to get change log for function
kmem_cache_create  in file  mm/slab.c  from kernel 2.6.18  to
3.0.

What I should issue an command?
I have tried
   git  log --grep='kmem_cache_create' mm/slab.c
but this will get many commits and every commit is specified with an
sha1,  not kernel version  which  i wanted.


I am not  a native english speaker ,i have tried my best to explain my
question ,but  maybe there  is still some fault or unclear
things.sorry

any reply will be appreciated, thks.

-- 
You received this message because you are subscribed to the Google Groups Git 
for human beings group.
To post to this group, send email to git-users@googlegroups.com.
To unsubscribe from this group, send email to 
git-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/git-users?hl=en.