path: root/revision.c
diff options
authorLinus Torvalds <>2007-10-08 20:42:41 (GMT)
committerShawn O. Pearce <>2007-10-16 00:15:58 (GMT)
commit99516e35d096f41e7133cacde8fbed8ee9a3ecd0 (patch)
treeba3f0ba08a32a68499c277a26aa65473f18cddf7 /revision.c
parent4c75136f7697f76b31641db775163f5c75906ee2 (diff)
Fix embarrassing "git log --follow" bug
It turns out that I completely broke "git log --follow" with my recent patch to revision.c ("Fix revision log diff setup, avoid unnecessary diff generation", commit b7bb760d5ed4881422673d32f869d140221d3564). Why? Because --follow obviously requires the diff machinery to function, exactly the same way pickaxe does. So everybody is away right now, but considering that nobody even noticed this bug, I don't think it matters. But for the record, here's the trivial one-liner fix (well, two, since I also fixed the comment). Because of the nature of the bug, if you ask for patches when following (which is one of the things I normally do), the bug is hidden, because then the request for diff output will automatically also enable the diffs themselves. So while "git log --follow <filename>" didn't work, adding a "-p" magically made it work again even without this fix. Signed-off-by: Linus Torvalds <> Signed-off-by: Lars Hjemli <> Signed-off-by: Shawn O. Pearce <>
Diffstat (limited to 'revision.c')
1 files changed, 2 insertions, 2 deletions
diff --git a/revision.c b/revision.c
index 6584713..48756b5 100644
--- a/revision.c
+++ b/revision.c
@@ -1256,8 +1256,8 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, const ch
if (revs->diffopt.output_format & ~DIFF_FORMAT_NO_OUTPUT)
revs->diff = 1;
- /* Pickaxe needs diffs */
- if (revs->diffopt.pickaxe)
+ /* Pickaxe and rename following needs diffs */
+ if (revs->diffopt.pickaxe || revs->diffopt.follow_renames)
revs->diff = 1;
if (revs->topo_order)