Re: blame follows renames, but log doesn't
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:43:17
Theodore Tso [off-list ref] writes:
Actually, the bigger missing gap is merges. Suppose in the development branch, you rename a whole bunch of files. (For example, foo_super.c got moved to foo/super.c, foo_inode.c got moved to foo/inode.c, etc.) Now suppose there are fixes made in the stable branch, in the original foo_super.c and foo_inode.c files. Ideally you would want to be able to pull those changes into the development branch, where the files have new names, and have the changes be applied to foo/super.c and foo/inode.c in the development branch.
That happens already with merge-recursive code, which has been the default since late November 2005 (v0.99.9k and later should have it). What does _not_ happen is if foo_fixes.c was _created_ in the stable branch. A merge that tries to forward port such a fix would not move the foo_fixes.c to foo/fixes.c.