Merge branch 'jk/textconv-cache-outside-repo-fix'
The code incorrectly attempted to use textconv cache when asked, even when we are not running in a repository, which has been corrected. * jk/textconv-cache-outside-repo-fix: userdiff: skip textconv caching when not in a repository
This commit is contained in:
		@ -118,4 +118,26 @@ test_expect_success 'log notes cache and still use cache for -p' '
 | 
			
		||||
	git log --no-walk -p refs/notes/textconv/magic HEAD
 | 
			
		||||
'
 | 
			
		||||
 | 
			
		||||
test_expect_success 'caching is silently ignored outside repo' '
 | 
			
		||||
	mkdir -p non-repo &&
 | 
			
		||||
	echo one >non-repo/one &&
 | 
			
		||||
	echo two >non-repo/two &&
 | 
			
		||||
	echo "* diff=test" >attr &&
 | 
			
		||||
	test_expect_code 1 \
 | 
			
		||||
	nongit git -c core.attributesFile="$PWD/attr" \
 | 
			
		||||
		   -c diff.test.textconv="tr a-z A-Z <" \
 | 
			
		||||
		   -c diff.test.cachetextconv=true \
 | 
			
		||||
		   diff --no-index one two >actual &&
 | 
			
		||||
	cat >expect <<-\EOF &&
 | 
			
		||||
	diff --git a/one b/two
 | 
			
		||||
	index 5626abf..f719efd 100644
 | 
			
		||||
	--- a/one
 | 
			
		||||
	+++ b/two
 | 
			
		||||
	@@ -1 +1 @@
 | 
			
		||||
	-ONE
 | 
			
		||||
	+TWO
 | 
			
		||||
	EOF
 | 
			
		||||
	test_cmp expect actual
 | 
			
		||||
'
 | 
			
		||||
 | 
			
		||||
test_done
 | 
			
		||||
 | 
			
		||||
@ -3,6 +3,7 @@
 | 
			
		||||
#include "userdiff.h"
 | 
			
		||||
#include "attr.h"
 | 
			
		||||
#include "strbuf.h"
 | 
			
		||||
#include "environment.h"
 | 
			
		||||
 | 
			
		||||
static struct userdiff_driver *drivers;
 | 
			
		||||
static int ndrivers;
 | 
			
		||||
@ -459,7 +460,8 @@ struct userdiff_driver *userdiff_get_textconv(struct repository *r,
 | 
			
		||||
	if (!driver->textconv)
 | 
			
		||||
		return NULL;
 | 
			
		||||
 | 
			
		||||
	if (driver->textconv_want_cache && !driver->textconv_cache) {
 | 
			
		||||
	if (driver->textconv_want_cache && !driver->textconv_cache &&
 | 
			
		||||
	    have_git_dir()) {
 | 
			
		||||
		struct notes_cache *c = xmalloc(sizeof(*c));
 | 
			
		||||
		struct strbuf name = STRBUF_INIT;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user