rev-list: move code to show bisect vars into its own function
authorChristian Couder <chriscool@tuxfamily.org>
Thu, 26 Mar 2009 04:55:30 +0000 (05:55 +0100)
committerJunio C Hamano <gitster@pobox.com>
Mon, 30 Mar 2009 08:22:54 +0000 (01:22 -0700)
This is a straightforward clean up to make "cmd_rev_list" function
smaller.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin-rev-list.c

index b1e8200d2b711d11012240999ba9a6fbcf647f42..74d22b4658fcfd63c09511ee34613c16e040a68d 100644 (file)
@@ -226,6 +226,49 @@ static int estimate_bisect_steps(int all)
        return (e < 3 * x) ? n : n - 1;
 }
 
+static int show_bisect_vars(int reaches, int all, int bisect_find_all)
+{
+       int cnt;
+       char hex[41];
+
+       if (!revs.commits)
+               return 1;
+
+       /*
+        * revs.commits can reach "reaches" commits among
+        * "all" commits.  If it is good, then there are
+        * (all-reaches) commits left to be bisected.
+        * On the other hand, if it is bad, then the set
+        * to bisect is "reaches".
+        * A bisect set of size N has (N-1) commits further
+        * to test, as we already know one bad one.
+        */
+       cnt = all - reaches;
+       if (cnt < reaches)
+               cnt = reaches;
+       strcpy(hex, sha1_to_hex(revs.commits->item->object.sha1));
+
+       if (bisect_find_all) {
+               traverse_commit_list(&revs, show_commit, show_object);
+               printf("------\n");
+       }
+
+       printf("bisect_rev=%s\n"
+              "bisect_nr=%d\n"
+              "bisect_good=%d\n"
+              "bisect_bad=%d\n"
+              "bisect_all=%d\n"
+              "bisect_steps=%d\n",
+              hex,
+              cnt - 1,
+              all - reaches - 1,
+              reaches - 1,
+              all,
+              estimate_bisect_steps(all));
+
+       return 0;
+}
+
 int cmd_rev_list(int argc, const char **argv, const char *prefix)
 {
        struct commit_list *list;
@@ -313,44 +356,8 @@ int cmd_rev_list(int argc, const char **argv, const char *prefix)
 
                revs.commits = find_bisection(revs.commits, &reaches, &all,
                                              bisect_find_all);
-               if (bisect_show_vars) {
-                       int cnt;
-                       char hex[41];
-                       if (!revs.commits)
-                               return 1;
-                       /*
-                        * revs.commits can reach "reaches" commits among
-                        * "all" commits.  If it is good, then there are
-                        * (all-reaches) commits left to be bisected.
-                        * On the other hand, if it is bad, then the set
-                        * to bisect is "reaches".
-                        * A bisect set of size N has (N-1) commits further
-                        * to test, as we already know one bad one.
-                        */
-                       cnt = all - reaches;
-                       if (cnt < reaches)
-                               cnt = reaches;
-                       strcpy(hex, sha1_to_hex(revs.commits->item->object.sha1));
-
-                       if (bisect_find_all) {
-                               traverse_commit_list(&revs, show_commit, show_object);
-                               printf("------\n");
-                       }
-
-                       printf("bisect_rev=%s\n"
-                              "bisect_nr=%d\n"
-                              "bisect_good=%d\n"
-                              "bisect_bad=%d\n"
-                              "bisect_all=%d\n"
-                              "bisect_steps=%d\n",
-                              hex,
-                              cnt - 1,
-                              all - reaches - 1,
-                              reaches - 1,
-                              all,
-                              estimate_bisect_steps(all));
-                       return 0;
-               }
+               if (bisect_show_vars)
+                       return show_bisect_vars(reaches, all, bisect_find_all);
        }
 
        traverse_commit_list(&revs,