Based on my current understanding of git there should be no difference between a git mv and a git rm followed by a git add. But empirically there is a difference. git log --M --follow is able to track files through git mvs even if their content changes completely. Likewise, it does *not* track files through rm/add combinations even if the content didn't change at all. (See experiment transcript below.) So something in my understanding of how git works must be wrong. Git must be keeping a separate record of file renames somewhere. But where? Just for the record, I'm not complaining about this behavior. In fact, what git does is exactly what I want. I just want to understand how it works. Thanks, rg --- [ron@mickey:~/devel/gittest]$ cat>file1 1 2 3 4 5 [ron@mickey:~/devel/gittest]$ cat>file2 a b c d e [ron@mickey:~/devel/gittest]$ git init Initialized empty Git repository in /Users/ron/devel/gittest/.git/ [ron@mickey:~/devel/gittest]$ git add file1 [ron@mickey:~/devel/gittest]$ git commit -m 'Add numbers' [master (root-commit) 54c2e4a] Add numbers 1 files changed, 5 insertions(+), 0 deletions(-) create mode 100644 file1 [ron@mickey:~/devel/gittest]$ git rm file1 rm 'file1' [ron@mickey:~/devel/gittest]$ git add file2 [ron@mickey:~/devel/gittest]$ git commit -m 'numbers->letters' [master fe05d12] numbers->letters 2 files changed, 5 insertions(+), 5 deletions(-) delete mode 100644 file1 create mode 100644 file2 [ron@mickey:~/devel/gittest]$ git log --name-status -M --follow file2 commit fe05d1233be1bb11f4ed0e8496e4191795d515a0 Author: rongarret <ron@mickey> Date: Wed Feb 3 10:13:38 2010 -0800 numbers->letters A file2 [ron@mickey:~/devel/gittest]$ ls file2 git/ [ron@mickey:~/devel/gittest]$ cat>file2 6 7 8 9 10 [ron@mickey:~/devel/gittest]$ git mv file2 file3 [ron@mickey:~/devel/gittest]$ git commit -m 'letters->numbers' [master ae3f6d4] letters->numbers 1 files changed, 0 insertions(+), 0 deletions(-) rename file2 => file3 (100%) [ron@mickey:~/devel/gittest]$ git log --name-status -M --follow file3 commit ae3f6d440483fa41cf08819237e87d567ac3a31d Author: rongarret <ron@mickey> Date: Wed Feb 3 10:15:00 2010 -0800 letters->numbers R100 file2 file3 commit fe05d1233be1bb11f4ed0e8496e4191795d515a0 Author: rongarret <ron@mickey> Date: Wed Feb 3 10:13:38 2010 -0800 numbers->letters A file2 [ron@mickey:~/devel/gittest]$ ls file3 git/ [ron@mickey:~/devel/gittest]$ mv file3 file4 [ron@mickey:~/devel/gittest]$ git rm file3 rm 'file3' [ron@mickey:~/devel/gittest]$ git add file4 [ron@mickey:~/devel/gittest]$ git commit -m 'rm/add identical content' [master a3d7227] rm/add identical content 2 files changed, 5 insertions(+), 5 deletions(-) delete mode 100644 file3 create mode 100644 file4 [ron@mickey:~/devel/gittest]$ git log --name-status -M --follow file4 commit a3d7227fc2edca75fff8894acd5b077d1788bb36 Author: rongarret <ron@mickey> Date: Wed Feb 3 10:17:23 2010 -0800 rm/add identical content A file4 [ron@mickey:~/devel/gittest]$ -- 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