]> git.ipfire.org Git - thirdparty/git.git/blobdiff - range-diff.c
commit-graph: fix progress of reachable commits
[thirdparty/git.git] / range-diff.c
index f745567cf6719665cdfd23145335380f36e0c54b..40af0862818c15d6c432da1d02fbe1ba7cadf230 100644 (file)
@@ -63,6 +63,8 @@ static int read_patches(const char *range, struct string_list *list,
                        "--output-indicator-old=<",
                        "--output-indicator-context=#",
                        "--no-abbrev-commit",
+                       "--pretty=medium",
+                       "--notes",
                        NULL);
        if (other_arg)
                argv_array_pushv(&cp.args, other_arg->argv);
@@ -106,20 +108,34 @@ static int read_patches(const char *range, struct string_list *list,
                        continue;
                }
 
+               if (!util) {
+                       error(_("could not parse first line of `log` output: "
+                               "did not start with 'commit ': '%s'"),
+                             line);
+                       string_list_clear(list, 1);
+                       strbuf_release(&buf);
+                       strbuf_release(&contents);
+                       finish_command(&cp);
+                       return -1;
+               }
+
                if (starts_with(line, "diff --git")) {
                        struct patch patch = { 0 };
                        struct strbuf root = STRBUF_INIT;
                        int linenr = 0;
+                       int orig_len;
 
                        in_header = 0;
                        strbuf_addch(&buf, '\n');
                        if (!util->diff_offset)
                                util->diff_offset = buf.len;
                        line[len - 1] = '\n';
+                       orig_len = len;
                        len = parse_git_diff_header(&root, &linenr, 0, line,
                                                    len, size, &patch);
                        if (len < 0)
-                               die(_("could not parse git header '%.*s'"), (int)len, line);
+                               die(_("could not parse git header '%.*s'"),
+                                   orig_len, line);
                        strbuf_addstr(&buf, " ## ");
                        if (patch.is_new > 0)
                                strbuf_addf(&buf, "%s (new)", patch.new_name);