]> git.cameronkatri.com Git - cgit.git/blobdiff - ui-blame.c
tests: try with commit-graph
[cgit.git] / ui-blame.c
index 50d05803b4e621f4cefe4e6e67b4a88f887eafa5..cfab7fb98f0401557deca9c7a23716ca66336e4b 100644 (file)
@@ -10,7 +10,7 @@
 #include "ui-blame.h"
 #include "html.h"
 #include "ui-shared.h"
 #include "ui-blame.h"
 #include "html.h"
 #include "ui-shared.h"
-#include "argv-array.h"
+#include "strvec.h"
 #include "blame.h"
 
 
 #include "blame.h"
 
 
@@ -48,7 +48,7 @@ static void emit_blame_entry_hash(struct blame_entry *ent)
        unsigned long line = 0;
 
        char *detail = emit_suspect_detail(suspect);
        unsigned long line = 0;
 
        char *detail = emit_suspect_detail(suspect);
-       html("<span class='sha1'>");
+       html("<span class='oid'>");
        cgit_commit_link(find_unique_abbrev(oid, DEFAULT_ABBREV), detail,
                         NULL, ctx.qry.head, oid_to_hex(oid), suspect->path);
        html("</span>");
        cgit_commit_link(find_unique_abbrev(oid, DEFAULT_ABBREV), detail,
                         NULL, ctx.qry.head, oid_to_hex(oid), suspect->path);
        html("</span>");
@@ -104,7 +104,7 @@ static void print_object(const struct object_id *oid, const char *path,
        enum object_type type;
        char *buf;
        unsigned long size;
        enum object_type type;
        char *buf;
        unsigned long size;
-       struct argv_array rev_argv = ARGV_ARRAY_INIT;
+       struct strvec rev_argv = STRVEC_INIT;
        struct rev_info revs;
        struct blame_scoreboard sb;
        struct blame_origin *o;
        struct rev_info revs;
        struct blame_scoreboard sb;
        struct blame_origin *o;
@@ -124,13 +124,14 @@ static void print_object(const struct object_id *oid, const char *path,
                return;
        }
 
                return;
        }
 
-       argv_array_push(&rev_argv, "blame");
-       argv_array_push(&rev_argv, rev);
+       strvec_push(&rev_argv, "blame");
+       strvec_push(&rev_argv, rev);
        init_revisions(&revs, NULL);
        revs.diffopt.flags.allow_textconv = 1;
        init_revisions(&revs, NULL);
        revs.diffopt.flags.allow_textconv = 1;
-       setup_revisions(rev_argv.argc, rev_argv.argv, &revs, NULL);
+       setup_revisions(rev_argv.nr, rev_argv.v, &revs, NULL);
        init_scoreboard(&sb);
        sb.revs = &revs;
        init_scoreboard(&sb);
        sb.revs = &revs;
+       sb.repo = the_repository;
        setup_scoreboard(&sb, path, &o);
        o->suspects = blame_entry_prepend(NULL, 0, sb.num_lines, o);
        prio_queue_put(&sb.commits, o->commit);
        setup_scoreboard(&sb, path, &o);
        o->suspects = blame_entry_prepend(NULL, 0, sb.num_lines, o);
        prio_queue_put(&sb.commits, o->commit);
@@ -255,7 +256,7 @@ static int basedir_len(const char *path)
 
 void cgit_print_blame(void)
 {
 
 void cgit_print_blame(void)
 {
-       const char *rev = ctx.qry.sha1;
+       const char *rev = ctx.qry.oid;
        struct object_id oid;
        struct commit *commit;
        struct pathspec_item path_items = {
        struct object_id oid;
        struct commit *commit;
        struct pathspec_item path_items = {
@@ -278,7 +279,7 @@ void cgit_print_blame(void)
                        "Invalid revision name: %s", rev);
                return;
        }
                        "Invalid revision name: %s", rev);
                return;
        }
-       commit = lookup_commit_reference(&oid);
+       commit = lookup_commit_reference(the_repository, &oid);
        if (!commit || parse_commit(commit)) {
                cgit_print_error_page(404, "Not found",
                        "Invalid commit reference: %s", rev);
        if (!commit || parse_commit(commit)) {
                cgit_print_error_page(404, "Not found",
                        "Invalid commit reference: %s", rev);
@@ -289,8 +290,10 @@ void cgit_print_blame(void)
        walk_tree_ctx.match_baselen = (path_items.match) ?
                                       basedir_len(path_items.match) : -1;
 
        walk_tree_ctx.match_baselen = (path_items.match) ?
                                       basedir_len(path_items.match) : -1;
 
-       read_tree_recursive(commit->maybe_tree, "", 0, 0, &paths, walk_tree,
-               &walk_tree_ctx);
+       read_tree_recursive(the_repository,
+                           repo_get_commit_tree(the_repository, commit),
+                           "", 0, 0,
+                           &paths, walk_tree, &walk_tree_ctx);
        if (!walk_tree_ctx.state)
                cgit_print_error_page(404, "Not found", "Not found");
        else if (walk_tree_ctx.state == 2)
        if (!walk_tree_ctx.state)
                cgit_print_error_page(404, "Not found", "Not found");
        else if (walk_tree_ctx.state == 2)