diff options
author | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-17 12:40:18 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-17 12:40:18 -0700 |
commit | 7d60ad7cc948b1b9e1066a3e740c91651bdc7e8d (patch) | |
tree | 7108636195bd22054fc889ab6eb87b2a0eb98e4a | |
parent | Do a very simple "merge-base" that finds the most recent common (diff) | |
download | tgif-7d60ad7cc948b1b9e1066a3e740c91651bdc7e8d.tar.xz |
Make "parse_commit" return the "struct revision" for the commit.
Also, make it a fatal error to pass in a non-commit object. The callers
never checked, so better check here.
This simplifies merge-base further. It's now so trivial that it's almost
ridiculous.
-rw-r--r-- | merge-base.c | 5 | ||||
-rw-r--r-- | revision.h | 6 |
2 files changed, 4 insertions, 7 deletions
diff --git a/merge-base.c b/merge-base.c index 36ac42008c..dac5e4b5e0 100644 --- a/merge-base.c +++ b/merge-base.c @@ -46,10 +46,7 @@ int main(int argc, char **argv) * That's some time off, though, and in the meantime we know * that we have a solution to the eventual expense. */ - parse_commit(rev1); - parse_commit(rev2); - - common = common_parent(lookup_rev(rev1), lookup_rev(rev2)); + common = common_parent(parse_commit(rev1), parse_commit(rev2)); if (!common) die("no common parent found"); printf("%s\n", sha1_to_hex(common->sha1)); diff --git a/revision.h b/revision.h index f965f3fc5f..482729575c 100644 --- a/revision.h +++ b/revision.h @@ -129,7 +129,7 @@ static unsigned long parse_commit_date(const char *buf) return date; } -static int parse_commit(unsigned char *sha1) +static struct revision * parse_commit(unsigned char *sha1) { struct revision *rev = lookup_rev(sha1); @@ -142,7 +142,7 @@ static int parse_commit(unsigned char *sha1) rev->flags |= SEEN; buffer = bufptr = read_sha1_file(sha1, type, &size); if (!buffer || strcmp(type, "commit")) - return -1; + die("%s is not a commit object", sha1_to_hex(sha1)); bufptr += 46; /* "tree " + "hex sha1" + "\n" */ while (!memcmp(bufptr, "parent ", 7) && !get_sha1_hex(bufptr+7, parent)) { add_relationship(rev, parent); @@ -152,7 +152,7 @@ static int parse_commit(unsigned char *sha1) rev->date = parse_commit_date(bufptr); free(buffer); } - return 0; + return rev; } #endif /* REVISION_H */ |