I just discovered a problem with GIT_TRACE. Some scripts redirect stderr to stdout and the trace messages go with it. For example from git-repack: > name=$(git-rev-list --objects --all $rev_list 2>&1 | > git-pack-objects --non-empty $pack_objects .tmp-pack) || > exit 1 Then for example git-pack-objects complains: > fatal: expected sha1, got garbage: > trace: built-in: git 'rev-list' '--objects' '--all' git-grep '2>&' shows a few other places that do this too, I'll take a closer look at this later. Is there any reason to redirect stderr to stdout? I think this will always fail with such a strange error message when something is written to stderr. - : 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