@@ -29,41 +29,6 @@ static int list_tree(unsigned char *sha1)
2929 return 0 ;
3030}
3131
32- static void prime_cache_tree_rec (struct cache_tree * it , struct tree * tree )
33- {
34- struct tree_desc desc ;
35- struct name_entry entry ;
36- int cnt ;
37-
38- hashcpy (it -> sha1 , tree -> object .sha1 );
39- init_tree_desc (& desc , tree -> buffer , tree -> size );
40- cnt = 0 ;
41- while (tree_entry (& desc , & entry )) {
42- if (!S_ISDIR (entry .mode ))
43- cnt ++ ;
44- else {
45- struct cache_tree_sub * sub ;
46- struct tree * subtree = lookup_tree (entry .sha1 );
47- if (!subtree -> object .parsed )
48- parse_tree (subtree );
49- sub = cache_tree_sub (it , entry .path );
50- sub -> cache_tree = cache_tree ();
51- prime_cache_tree_rec (sub -> cache_tree , subtree );
52- cnt += sub -> cache_tree -> entry_count ;
53- }
54- }
55- it -> entry_count = cnt ;
56- }
57-
58- static void prime_cache_tree (void )
59- {
60- if (!nr_trees )
61- return ;
62- active_cache_tree = cache_tree ();
63- prime_cache_tree_rec (active_cache_tree , trees [0 ]);
64-
65- }
66-
6732static const char read_tree_usage [] = "git read-tree (<sha> | [[-m [--trivial] [--aggressive] | --reset | --prefix=<prefix>] [-u | -i]] [--exclude-per-directory=<gitignore>] [--index-output=<file>] <sha1> [<sha2> [<sha3>]])" ;
6833
6934static struct lock_file lock_file ;
@@ -236,7 +201,7 @@ int cmd_read_tree(int argc, const char **argv, const char *unused_prefix)
236201 * what came from the tree.
237202 */
238203 if (nr_trees == 1 && !opts .prefix )
239- prime_cache_tree ();
204+ prime_cache_tree (& active_cache_tree , trees [ 0 ] );
240205
241206 if (write_cache (newfd , active_cache , active_nr ) ||
242207 commit_locked_index (& lock_file ))
0 commit comments