update-ref --stdin: make error messages more consistent
[gitweb.git] / log-tree.c
index 40ef3ea6745af886b9143649e17798464f6f86bd..5ce217d5eba33a54419ac8b29223cc16aa1f905e 100644 (file)
@@ -100,7 +100,7 @@ static int add_ref_decoration(const char *refname, const unsigned char *sha1, in
 
        if (starts_with(refname, "refs/replace/")) {
                unsigned char original_sha1[20];
-               if (!read_replace_refs)
+               if (!check_replace_refs)
                        return 0;
                if (get_sha1_hex(refname + 13, original_sha1)) {
                        warning("invalid replace ref %s", refname);
@@ -134,6 +134,8 @@ static int add_ref_decoration(const char *refname, const unsigned char *sha1, in
                obj = ((struct tag *)obj)->tagged;
                if (!obj)
                        break;
+               if (!obj->parsed)
+                       parse_object(obj->sha1);
                add_name_decoration(DECORATION_REF_TAG, refname, obj);
        }
        return 0;
@@ -734,7 +736,7 @@ static int log_tree_diff(struct rev_info *opt, struct commit *commit, struct log
        if (!opt->diff && !DIFF_OPT_TST(&opt->diffopt, EXIT_WITH_STATUS))
                return 0;
 
-       parse_commit(commit);
+       parse_commit_or_die(commit);
        sha1 = commit->tree->object.sha1;
 
        /* Root commit? */
@@ -759,7 +761,7 @@ static int log_tree_diff(struct rev_info *opt, struct commit *commit, struct log
                         * parent, showing summary diff of the others
                         * we merged _in_.
                         */
-                       parse_commit(parents->item);
+                       parse_commit_or_die(parents->item);
                        diff_tree_sha1(parents->item->tree->object.sha1,
                                       sha1, "", &opt->diffopt);
                        log_tree_diff_flush(opt);
@@ -774,7 +776,7 @@ static int log_tree_diff(struct rev_info *opt, struct commit *commit, struct log
        for (;;) {
                struct commit *parent = parents->item;
 
-               parse_commit(parent);
+               parse_commit_or_die(parent);
                diff_tree_sha1(parent->tree->object.sha1,
                               sha1, "", &opt->diffopt);
                log_tree_diff_flush(opt);