How are you gentlemen, Following renames is nice no matter what Git upstream thinks, so I gave this bug a try. I'd like to share some progress. Diffing (`d`), paging (`f`) and annotating a file (`a`) revision works. I've tested it with Git version 1.8.5.4 and 2.0.2. Parallel git log with hash/file information is run when a log is queried. (vc-git-file-shalist) provides access to a list of SHA1's/historical file names for the file open in the *vc-change-log* buffer. The bad part is that whole-changeset (`D`) diffing is broken (wrong revisions are selected for diff). The culprit is `vc-git-previous-revision`. Using HASH^ to obtain the parent of HASH revision produces unexpected results when file renames are involved. However, for whole-changeset diffing HASH^ seems to be exactly what we need. However, `vc-git-previous-revision` doesn't seem to enable any inspection of the context in which we use it (in other words, if we hit `d` or `D` in the log buffer.) Any ideas? I also have not tackled revision navigation in the annotation mode, but this can likely be solved by plugging calls to `(vc-git-rev-to-filename)` somewhere in the annotation mode.