| 1302 | } |
| 1303 | |
| 1304 | static struct object_list **process_tree(struct tree *tree, |
| 1305 | struct object_list **p) |
| 1306 | { |
| 1307 | struct object *obj = &tree->object; |
| 1308 | struct tree_desc desc; |
| 1309 | struct name_entry entry; |
| 1310 | |
| 1311 | obj->flags |= LOCAL; |
| 1312 | |
| 1313 | if (obj->flags & (UNINTERESTING | SEEN)) |
| 1314 | return p; |
| 1315 | if (repo_parse_tree(the_repository, tree) < 0) |
| 1316 | die("bad tree object %s", oid_to_hex(&obj->oid)); |
| 1317 | |
| 1318 | obj->flags |= SEEN; |
| 1319 | p = add_one_object(obj, p); |
| 1320 | |
| 1321 | init_tree_desc(&desc, &tree->object.oid, tree->buffer, tree->size); |
| 1322 | |
| 1323 | while (tree_entry(&desc, &entry)) |
| 1324 | switch (object_type(entry.mode)) { |
| 1325 | case OBJ_TREE: |
| 1326 | p = process_tree(lookup_tree(the_repository, &entry.oid), |
| 1327 | p); |
| 1328 | break; |
| 1329 | case OBJ_BLOB: |
| 1330 | p = process_blob(lookup_blob(the_repository, &entry.oid), |
| 1331 | p); |
| 1332 | break; |
| 1333 | default: |
| 1334 | /* Subproject commit - not in this repository */ |
| 1335 | break; |
| 1336 | } |
| 1337 | |
| 1338 | free_tree_buffer(tree); |
| 1339 | return p; |
| 1340 | } |
| 1341 | |
| 1342 | static int get_delta(struct rev_info *revs, struct remote_lock *lock) |
| 1343 | { |
no test coverage detected