Merge branch 'maint-1.7.7' into maint

* maint-1.7.7:
  Git 1.7.7.6
  diff-index: enable recursive pathspec matching in unpack_trees

Conflicts:
	GIT-VERSION-GEN
This commit is contained in:
Junio C Hamano 2012-01-18 15:48:46 -08:00
commit d899cf559b
3 changed files with 14 additions and 0 deletions

View File

@ -8,6 +8,10 @@ Fixes since v1.7.7.5
directory when two paths in question are in adjacent directories and directory when two paths in question are in adjacent directories and
the name of the one directory is a prefix of the other. the name of the one directory is a prefix of the other.
* A wildcard that matches deeper hierarchy given to the "diff-index" command,
e.g. "git diff-index HEAD -- '*.txt'", incorrectly reported additions of
matching files even when there is no change.
* When producing a "thin pack" (primarily used in bundles and smart * When producing a "thin pack" (primarily used in bundles and smart
HTTP transfers) out of a fully packed repository, we unnecessarily HTTP transfers) out of a fully packed repository, we unnecessarily
avoided sending recent objects as a delta against objects we know avoided sending recent objects as a delta against objects we know

View File

@ -469,6 +469,8 @@ static int diff_cache(struct rev_info *revs,
opts.src_index = &the_index; opts.src_index = &the_index;
opts.dst_index = NULL; opts.dst_index = NULL;
opts.pathspec = &revs->diffopt.pathspec; opts.pathspec = &revs->diffopt.pathspec;
opts.pathspec->recursive = 1;
opts.pathspec->max_depth = -1;
init_tree_desc(&t, tree->buffer, tree->size); init_tree_desc(&t, tree->buffer, tree->size);
return unpack_trees(1, &t, &opts); return unpack_trees(1, &t, &opts);

View File

@ -47,6 +47,14 @@ test_expect_success \
'git diff-index --cached $tree -- path1/ >current && 'git diff-index --cached $tree -- path1/ >current &&
compare_diff_raw current expected' compare_diff_raw current expected'
cat >expected <<\EOF
:100644 100644 766498d93a4b06057a8e49d23f4068f1170ff38f 0a41e115ab61be0328a19b29f18cdcb49338d516 M path1/file1
EOF
test_expect_success \
'"*file1" should show path1/file1' \
'git diff-index --cached $tree -- "*file1" >current &&
compare_diff_raw current expected'
cat >expected <<\EOF cat >expected <<\EOF
:100644 100644 766498d93a4b06057a8e49d23f4068f1170ff38f 0a41e115ab61be0328a19b29f18cdcb49338d516 M file0 :100644 100644 766498d93a4b06057a8e49d23f4068f1170ff38f 0a41e115ab61be0328a19b29f18cdcb49338d516 M file0
EOF EOF