git diff <(command1) <(command2) is less useful than it could be, all it outputs is: diff --git a/dev/fd/63 b/dev/fd/62 index 9e6542b297..9f7b2c291b 120000 --- a/dev/fd/63 +++ b/dev/fd/62 @@ -1 +1 @@ -pipe:[464811685] \ No newline at end of file +pipe:[464811687] \ No newline at end of file Normal diff provides arguably better output: the diff of the output of the commands. This series makes it possible for git diff --no-index to follow symlinks and read from pipes, mimicking the behaviour of normal diff. v1: http://public-inbox.org/git/20161111201958.2175-1-dennis@xxxxxxxxxxxxxxx/ v2: http://public-inbox.org/git/20170113102021.6054-1-dennis@xxxxxxxxxxxxxxx/ Changes since v2, prompted by feedback from Junio: - A --derefence option was added and the default is no longer to dereference symlinks. - Instead of looking at what canon_mode returns, use the original mode of files to override behaviour for pipes. - Turn the !S_ISREG(...) check into a should_mmap_file_contents helper. Dennis Kaarsemaker (2): diff --no-index: optionally follow symlinks diff --no-index: support reading from pipes Documentation/diff-options.txt | 9 +++++++ diff-no-index.c | 16 ++++++++++--- diff.c | 30 +++++++++++++++++++---- diff.h | 2 +- t/t4053-diff-no-index.sh | 54 ++++++++++++++++++++++++++++++++++++++++++ t/test-lib.sh | 4 ++++ 6 files changed, 107 insertions(+), 8 deletions(-) -- 2.12.0-437-g0cc2799