Make 'git' script be a bit more helpful on unrecognized commands
[gitweb.git] / merge-base.c
index 0e4c58ede915aca5719bbd12ecd1945f2f300590..12ebb95fba51ee9bba9767b25c999bd3de9ebd94 100644 (file)
@@ -6,40 +6,24 @@ static struct commit *process_list(struct commit_list **list_p, int this_mark,
                                   int other_mark)
 {
        struct commit *item = (*list_p)->item;
-       
-       if (item->object.flags & this_mark) {
-               /*
-                 printf("%d already seen %s %x\n",
-                 this_mark
-                 sha1_to_hex(posn->parent->sha1),
-                 posn->parent->flags);
-               */
-               /* do nothing; this indicates that this side
-                * split and reformed, and we only need to
-                * mark it once.
-                */
-               *list_p = (*list_p)->next;
-       } else if (item->object.flags & other_mark) {
+
+       if (item->object.flags & other_mark) {
                return item;
        } else {
-               /*
-                 printf("%d based on %s\n",
-                 this_mark,
-                 sha1_to_hex(posn->parent->sha1));
-               */
-               pop_most_recent_commit(list_p);
-               item->object.flags |= this_mark;
+               pop_most_recent_commit(list_p, this_mark);
        }
        return NULL;
 }
 
-struct commit *common_ancestor(struct commit *rev1, struct commit *rev2)
+static struct commit *common_ancestor(struct commit *rev1, struct commit *rev2)
 {
        struct commit_list *rev1list = NULL;
        struct commit_list *rev2list = NULL;
 
        commit_list_insert(rev1, &rev1list);
+       rev1->object.flags |= 0x1;
        commit_list_insert(rev2, &rev2list);
+       rev2->object.flags |= 0x2;
 
        parse_commit(rev1);
        parse_commit(rev2);
@@ -74,12 +58,12 @@ int main(int argc, char **argv)
        unsigned char rev1key[20], rev2key[20];
 
        if (argc != 3 ||
-           get_sha1_hex(argv[1], rev1key) ||
-           get_sha1_hex(argv[2], rev2key)) {
-               usage("merge-base <commit-id> <commit-id>");
+           get_sha1(argv[1], rev1key) ||
+           get_sha1(argv[2], rev2key)) {
+               usage("git-merge-base <commit-id> <commit-id>");
        }
-       rev1 = lookup_commit(rev1key);
-       rev2 = lookup_commit(rev2key);
+       rev1 = lookup_commit_reference(rev1key);
+       rev2 = lookup_commit_reference(rev2key);
        ret = common_ancestor(rev1, rev2);
        if (!ret)
                return 1;