From f3999e03274df6b98a98a32912f5e171d6eea35f Mon Sep 17 00:00:00 2001 From: Bobby Powers Date: Wed, 16 May 2012 10:28:31 -0400 Subject: diff --no-index: reset temporary buffer lengths on directory iteration MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Commit 875b91b (diff --no-index: use strbuf for temporary pathnames, 2012-04-25) introduced a regression when using diff --no-index with directories. When iterating through a directory, the switch to strbuf from heap-allocated char arrays caused paths to form like 'dir/file1', 'dir/file1file2', rather than 'dir/file1', 'dir/file2' as expected. Avoid this by resetting the paths variables to their original length before each iteration. Signed-off-by: Bobby Powers Reviewed-by: René Scharfe Signed-off-by: Junio C Hamano --- t/t4053-diff-no-index.sh | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100755 t/t4053-diff-no-index.sh (limited to 't') diff --git a/t/t4053-diff-no-index.sh b/t/t4053-diff-no-index.sh new file mode 100755 index 0000000000..4dc8c67edc --- /dev/null +++ b/t/t4053-diff-no-index.sh @@ -0,0 +1,19 @@ +#!/bin/sh + +test_description='diff --no-index' + +. ./test-lib.sh + +test_expect_success 'setup' ' + mkdir a && + mkdir b && + echo 1 >a/1 && + echo 2 >a/2 +' + +test_expect_success 'git diff --no-index directories' ' + git diff --no-index a b >cnt + test $? = 1 && test_line_count = 14 cnt +' + +test_done -- cgit v1.2.3