Move binary check to CRLF filter itself

Checkout should not reject binary files from filters, as a filter
may actually wish to operate on binary files.  The CRLF filter should
reject binary files itself if it wishes to.  Moreover, the CRLF
filter requires this logic so that users can emulate the checkout
data in their odb -> workdir filtering.

Conflicts:
	src/checkout.c
	src/crlf.c
This commit is contained in:
Russell Belfer 2013-09-12 14:47:15 -07:00
parent a9f51e430f
commit 0e32635fcf
2 changed files with 5 additions and 1 deletions

View File

@ -715,7 +715,7 @@ static int blob_content_to_file(
git_buf out = GIT_BUF_INIT;
git_filter_list *fl = NULL;
if (!opts->disable_filters && !git_blob_is_binary(blob))
if (!opts->disable_filters)
error = git_filter_list_load(
&fl, git_blob_owner(blob), blob, path, GIT_FILTER_TO_WORKTREE);

View File

@ -209,6 +209,10 @@ static int crlf_apply_to_workdir(
if (git_buf_len(from) == 0)
return 0;
/* Don't filter binary files */
if (git_buf_text_is_binary(from))
return GIT_ENOTFOUND;
/* Determine proper line ending */
workdir_ending = line_ending(ca);
if (!workdir_ending)