read-cache/write-cache: optionally return cache checksum SHA1.
[gitweb.git] / rev-list.c
index 000f27a8fedbb1ed981fc7466176c47cf8fee993..8b0ec388fa0afe5ffb28c94f2e75544612ab7265 100644 (file)
@@ -8,9 +8,9 @@
 #include "diff.h"
 #include "revision.h"
 
-/* bits #0-6 in revision.h */
+/* bits #0-15 in revision.h */
 
-#define COUNTED                (1u<<7)
+#define COUNTED                (1u<<16)
 
 static const char rev_list_usage[] =
 "git-rev-list [OPTION] <commit-id>... [ -- paths... ]\n"
@@ -41,13 +41,14 @@ struct rev_info revs;
 static int bisect_list = 0;
 static int show_timestamp = 0;
 static int hdr_termination = 0;
+static const char *header_prefix;
 
 static void show_commit(struct commit *commit)
 {
        if (show_timestamp)
                printf("%lu ", commit->date);
-       if (*revs.header_prefix)
-               fputs(revs.header_prefix, stdout);
+       if (header_prefix)
+               fputs(header_prefix, stdout);
        if (commit->object.flags & BOUNDARY)
                putchar('-');
        if (revs.abbrev_commit && revs.abbrev)
@@ -322,10 +323,13 @@ int main(int argc, const char **argv)
                /* The command line has a --pretty  */
                hdr_termination = '\n';
                if (revs.commit_format == CMIT_FMT_ONELINE)
-                       revs.header_prefix = "";
+                       header_prefix = "";
                else
-                       revs.header_prefix = "commit ";
+                       header_prefix = "commit ";
        }
+       else if (revs.verbose_header)
+               /* Only --header was specified */
+               revs.commit_format = CMIT_FMT_RAW;
 
        list = revs.commits;
 
@@ -337,6 +341,8 @@ int main(int argc, const char **argv)
 
        save_commit_buffer = revs.verbose_header;
        track_object_refs = 0;
+       if (bisect_list)
+               revs.limited = 1;
 
        prepare_revision_walk(&revs);
        if (revs.tree_objects)