- struct revision *rev = lookup_rev(sha1);
-
- if (!(rev->flags & SEEN)) {
- void *buffer;
- unsigned long size;
- char type[20];
- unsigned char parent[20];
-
- rev->flags |= SEEN;
- buffer = read_sha1_file(sha1, type, &size);
- if (!buffer || strcmp(type, "commit"))
- return -1;
- buffer += 46; /* "tree " + "hex sha1" + "\n" */
- while (!memcmp(buffer, "parent ", 7) && !get_sha1_hex(buffer+7, parent)) {
- add_relationship(rev, parent);
- parse_commit(parent);
- buffer += 48; /* "parent " + "hex sha1" + "\n" */
- }
- }
- return 0;
-}