On Thu, May 8, 2014 at 3:00 PM, Jeff King <peff@xxxxxxxx> wrote: > Try "tig blame"[1]; from the blame view, the "," command will restart > the blame at REF^ automatically. If you don't mind a more graphical > interface, I think "git gui blame" can also reblame from the parent from > the right-click context menu. Thanks! It helps! Hmm, but you know, we are cli people so we met git ;-) My by-hand recursive digging history works for me and I've consider automate this but failed since the pattern match to find the correct line of code in each recursion is a big problem. The root cause of this problem maybe that git is not semantic-aware. It if is, then we could easily weed out the trivial-change or grammatical-change in git blame. Here a structural program comparison tool may be a direction. http://yinwang0.wordpress.com/2012/01/03/ydiff/ That being said, storing abstract syntax tree, instead of raw object in git. But that goes too far... Thanks, Jianyu Zhan -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html