Avoid diff cost on "git log -z"
authorJunio C Hamano <gitster@pobox.com>
Sat, 16 Jun 2007 06:48:35 +0000 (23:48 -0700)
committerJunio C Hamano <gitster@pobox.com>
Sat, 16 Jun 2007 06:48:35 +0000 (23:48 -0700)
Johannes and Marco discovered that "git log -z" spent cycles in diff even
though there is no need to actually compute diffs.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
revision.c

index 0125d41..e43c648 100644 (file)
@@ -1171,7 +1171,8 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, const ch
 
                        opts = diff_opt_parse(&revs->diffopt, argv+i, argc-i);
                        if (opts > 0) {
 
                        opts = diff_opt_parse(&revs->diffopt, argv+i, argc-i);
                        if (opts > 0) {
-                               revs->diff = 1;
+                               if (strcmp(argv[i], "-z"))
+                                       revs->diff = 1;
                                i += opts - 1;
                                continue;
                        }
                                i += opts - 1;
                                continue;
                        }