First (noticed by matled) is that for git-diff-tree with single tree as an argument it outputs fist commit-id of commit given at input. It is not mentioned in documentation and I think totally unnecessary: 1038:jnareb@roke:~/git> git diff-tree --abbrev origin d5dc6a76d49367cddc015e01d2e9aa22e64d7e28 :040000 040000 44fb36d... 1c26294... M Documentation Second, for some combination of options for it returns "..." instead of 0{40} for file creation. It seems that the culprit is "--find-copies-harder" option: 1043:jnareb@roke:~/git> git rev-list --full-history next | \ git diff-tree --find-copies-harder -B -C -M -r --full-history --stdin \ -- gitweb/gitweb.perl gitweb/gitweb.cgi gitweb.cgi | less | grep " A" :000000 100755 ... 017664b8f440f5ec151cf5653245ee02aefd3db2 A gitweb.cgi 1047:jnareb@roke:~/git> git rev-list --full-history next | \ git diff-tree -B -C -M -r --stdin \ -- gitweb/gitweb.perl gitweb/gitweb.cgi gitweb.cgi | less | grep " A" :000000 100755 0000000000000000000000000000000000000000 017664b8f440f5ec151cf5653245ee02aefd3db2 A gitweb.cgi Third, while it detects that gitweb/gitweb.perl was renamed from gitweb/gitweb.cgi: [...] R100 gitweb/gitweb.cgi gitweb/gitweb.perl it does not notice that gitweb/gitweb.cgi was gitweb.cgi in 1130ef362fc8d9c3422c23f5d5a833e93d3f5c13. All those for git version 1.4.1.1 -- Jakub Narebski Warsaw, Poland ShadeHawk on #git - : 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