This is a straightforward clean up to make "cmd_rev_list" function smaller. Signed-off-by: Christian Couder <chriscool@xxxxxxxxxxxxx> --- builtin-rev-list.c | 101 ++++++++++++++++++++++++++++------------------------ 1 files changed, 54 insertions(+), 47 deletions(-) diff --git a/builtin-rev-list.c b/builtin-rev-list.c index b50d304..6e0466e 100644 --- a/builtin-rev-list.c +++ b/builtin-rev-list.c @@ -237,6 +237,57 @@ static void show_tried(struct commit_list *tried) printf("'\n"); } +static int show_bisect_vars(int reaches, int all, int show_all, int skip) +{ + int cnt; + char hex[41]; + struct commit_list *tried; + + revs.commits = filter_skipped(revs.commits, &tried, show_all); + + if (!revs.commits && !skip) + 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; + if (revs.commits) + strcpy(hex, sha1_to_hex(revs.commits->item->object.sha1)); + else + hex[0] = '\0'; + + if (show_all) { + traverse_commit_list(&revs, show_commit, show_object); + printf("------\n"); + } + + if (skip) + show_tried(tried); + 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; @@ -332,57 +383,13 @@ int cmd_rev_list(int argc, const char **argv, const char *prefix) if (bisect_list) { int reaches = reaches, all = all; - struct commit_list *tried; revs.commits = find_bisection(revs.commits, &reaches, &all, bisect_find_all); - revs.commits = filter_skipped(revs.commits, &tried, - bisect_show_all); - - if (bisect_show_vars) { - int cnt; - char hex[41]; - if (!revs.commits && !bisect_skip) - 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; - if (revs.commits) - strcpy(hex, sha1_to_hex(revs.commits->item->object.sha1)); - else - hex[0] = '\0'; - - if (bisect_show_all) { - traverse_commit_list(&revs, show_commit, show_object); - printf("------\n"); - } - - if (bisect_skip) - show_tried(tried); - 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_show_all, bisect_skip); } traverse_commit_list(&revs, -- 1.6.2.83.g012a16.dirty -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html