How do I find out change history of a line of code
git
Solution
Glance at the power that is git :)
git blame -M -C -C -C -w
from `git help blame`:
`-C`
In addition to -M, detect lines moved or copied from other files that were modified in the same commit. This is useful when you reorganize your program and move code around across files. When this option is given twice, the command additionally looks for copies from other files in the commit that creates the file. When this option is given three times, the command additionally looks for copies from other files in any commit.
Problem
`git blame` can be used to find out which commit modified, but I ran into a situation that it appears the whole file is copied from somewhere that I can't tell. ``` $ git blame a.c c59f772b (a@google.com 2011-08-25 01:07:44 +0000 1) #include <stdio.h> c59f772b (a@google.com 2011-08-25 01:07:44 +0000 2) c59f772b (a@google.com 2011-08-25 01:07:44 +0000 3) int main(int argc, char **argv) { c59f772b (a@google.com 2011-08-25 01:07:44 +0000 4) void *handle; c59f772b (a@google.com 2011-08-25 01:07:44 +0000 5) double (*cosine)(double); ... $ git log c59f772b commit c59f772bc273e65985236ba665f7a88492a33235 Author: a@google.com Date: Thu Aug 25 01:07:44 2011 +0000 Cloning a bunch of stuff from the another repository No changes, as is. ``` This commit is just about copying the code. I still don't know which and who actually wrote this code. Can I have a list for change history of code or something similar?