Re: [BUG?] bulk checkin does not respect filters
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Feb 24, 2012, 03:42 UTC
- Message-ID
- <7vr4xk28z0.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <7vvcmw2a3m.fsf@alter.siamese.dyndns.org>
Junio C Hamano <gitster@pobox.com> writes:
> Jeff King <peff@peff.net> writes: > >> Thoughts? Was this intentional, or just overlooked?
It is a bit curious that anything filtered even goes to the streaming codepath, given this piece of code in write_entry() in entry.c:
if (ce_mode_s_ifmt == S_IFREG) {
struct stream_filter *filter = get_stream_filter(path, ce->sha1);
if (filter &&
!streaming_write_entry(ce, path, filter,
state, to_tempfile,
&fstat_done, &st))
goto finish;
}and get_stream_filter() in convert.c has an explicit exception for this case at the very beginning:
struct stream_filter *get_stream_filter(const char *path, const unsigned char *sha1)
{
struct conv_attrs ca;
enum crlf_action crlf_action;
struct stream_filter *filter = NULL;convert_attrs(&ca, path);
if (ca.drv && (ca.drv->smudge || ca.drv->clean)) return filter;
to make sure that it says "No streaming filtering is possible, do not even attempt to call streaming_write_entry()".