I wanted to get non-recursive raw diff (difftree), but for a given subdirectory and not starting from root. I have found '--relative[=<path>]', introduced in c0cb4a0 (diff --relative: help working in a bare repository, 2008-02-13) cd676a5 (diff --relative: output paths as relative to the current subdirectory, 2008-02-12) But when examining it's output in 'raw' mode, I have notice spurious leading '/' in filename: $ git diff-tree --abbrev -r --raw HEAD --relative=sub a3a8425fe5496c61921010cb1e7b455a1f52bb86 :100644 100644 d90bda0... cefcae0... M /quux The output without '-r' (recurse into sub-trees) is even more strange $ git diff-tree --abbrev --raw HEAD --relative=sub a3a8425fe5496c61921010cb1e7b455a1f52bb86 :040000 040000 e62aa6e... b5d4a43... M (that's a trailing TAB, and no filename). What I expected was the following output: $ git diff-tree --abbrev --raw HEAD --relative=sub a3a8425fe5496c61921010cb1e7b455a1f52bb86 :040000 040000 e62aa6e... b5d4a43... M quux I see that the '--relative' and '--relative=<path>' options were introduced for patch ('-p') format, and not for difftree / raw format, but I think they should work for it, too. P.S. I have noticed this bug when working on proof-of-concept tree-blame (i.e. when given file was modified) in Perl. -- Jakub Narebski Poland -- 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