Re: Directory renames without breaking git log.
- From
Jakub Narebski <jnareb@gmail.com>
- Date
- Sep 4, 2008, 20:41 UTC
- Message-ID
- <m3ljy7prtj.fsf@localhost.localdomain>
- In-Reply-To
- <200809042145.09573.kai@samba.org>
Kai Blin <kai@samba.org> writes:
Show 20 quoted lines
> On Thursday 04 September 2008 02:16:24 Tarmigan wrote: > > On Wed, Sep 3, 2008 at 2:38 PM, Kai Blin <kai@samba.org> 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