From: Junio C Hamano Date: Sun, 25 Feb 2007 22:57:08 GMT Subject: Re: [PATCH 4/8] diff: support reading a file from stdin via "-" Message-ID: <7vvehprgl7.fsf@assigned-by-dhcp.cox.net> In-Reply-To: Johannes Schindelin writes: > This allows you to say > > echo Hello World | git diff x - > > to compare the contents of file "x" with the line "Hello World". > This automatically switches to --no-index mode. > > Signed-off-by: Johannes Schindelin > --- > > Since the revision machinery checks for the presence of files, > diff_populate_filespec() will only change behaviour when there > is a file "-"... I have yet to think of an elegant fix for that. Another thing is that at some point diff_populate_filespec() needs to have a way to discard what was cached if memory pressure gets tight, and we would want to keep this data read from the standard input. One solution would be to add a "const char *stdin_data" to diffopts and read the data from stdin when you parse the options, and have populate_filespec point at that with s->data (setting should_free and should_munmap both to 0).