Subject: Re: Directory renames without breaking git log.

From: Jakub Narebski <[email-masked]>
Date: Thu, 04 Sep 2008 13:41:13 -0700 (PDT)

Kai Blin <[email-masked]> writes:

> On Thursday 04 September 2008 02:16:24 Tarmigan wrote:
> > On Wed, Sep 3, 2008 at 2:38 PM, Kai Blin <[email-masked]> wrote:
> > > Unfortunately, the directories are big enough that git log stops to track
> > > the renamed files, so e.g. git log ./samba3 does not show the samba3
> > > history. The history is not lost, of course, but it's way less intuitive
> > > to get it.
> >
> > You can try setting diff.renamelimit to 0 in your ~/.gitconfig.  See
> > Linus's email here for a similar situation in the kernel:
> > http://lwn.net/Articles/292948/
> 
> That doesn't seem to fix "git log path/to/file" cases. The really
> interesting part is that if I try "git log --follow -M -C
> path/to/file", I don't get any history at all. (--follow is the
> culprit, if I remove that I at least get the merge commit)
> 
> git blame still works, and git log --sparse path/to/file works, of 
> course. --sparse makes giving a path a bit pointless, of course, but we 
> probably can live with that for time being. I'm still open for suggestions, 
> of course. :)

Unfortunately "git log --follow <filename>" works correctly only
on relative simple histories.  You are of course welcome to improve
this part of git.

Simple workaround is to use "git log <file>" (optionally using
--diff-filter) to get when file vanished, check using "git show" or
"git whatchanged" on boundary commit, then use 
"git log -C -C -- <old name> <new name>"
-- 
Jakub Narebski
Poland
ShadeHawk on #git