From: Junio C Hamano Date: Fri, 24 Feb 2012 03:42:11 GMT Subject: Re: [BUG?] bulk checkin does not respect filters Message-ID: <7vr4xk28z0.fsf@alter.siamese.dyndns.org> In-Reply-To: <7vvcmw2a3m.fsf@alter.siamese.dyndns.org> Junio C Hamano writes: > Jeff King 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()".