diff options
author | John Keeping <john@keeping.me.uk> | 2013-03-14 20:00:51 +0000 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2013-03-14 14:49:48 -0700 |
commit | 7297a440122b329c501e70dda099030373af069f (patch) | |
tree | 21a99bbcae115520fb4dacf2b3bcde0cce187c1e /entry.c | |
parent | 013c3bb81ee1643ce69a64197b2075212492c352 (diff) | |
download | git-7297a440122b329c501e70dda099030373af069f.tar.gz |
entry: fix filter lookup
When looking up the stream filter, write_entry() should be passing the
path of the file in the repository, not the path to which the content is
going to be written. This allows the file to be correctly looked up
against the .gitattributes files in the working tree.
This change makes the streaming case match the non-streaming case which
passes ce->name to convert_to_working_tree later in the same function.
The two tests added here test the different paths through write_entry
since the CRLF filter is a streaming filter but the user-defined smudge
filter is not streamed.
Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'entry.c')
-rw-r--r-- | entry.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -188,7 +188,7 @@ static int write_entry(struct cache_entry *ce, char *path, const struct checkout struct stat st; if (ce_mode_s_ifmt == S_IFREG) { - struct stream_filter *filter = get_stream_filter(path, ce->sha1); + struct stream_filter *filter = get_stream_filter(ce->name, ce->sha1); if (filter && !streaming_write_entry(ce, path, filter, state, to_tempfile, |