Re: [PATCH 4/8] diff: support reading a file from stdin via "-"
- From
Junio C Hamano <junkio@cox.net>
- Date
- Feb 25, 2007, 22:57 UTC
- Message-ID
- <7vvehprgl7.fsf@assigned-by-dhcp.cox.net>
- In-Reply-To
- <Pine.LNX.4.63.0702252335410.22628@wbgn013.biozentrum.uni-wuerzburg.de>
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
Show 13 quoted lines
> 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 <johannes.schindelin@gmx.de> > --- > > 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).