[PATCH] add *--no-merges* flag to suppress display of merge commits
From: Johannes Schindelin <hidden>
Date: 2016-06-15 22:42:03
Subsystem:
the rest · Maintainer:
Linus Torvalds
As requested by Junio (who suggested --single-parents-only, but this could forget a no-parent root). Also, adds a few missing options to the usage string. Signed-off-by: Johannes Schindelin <redacted> --- rev-list.c | 12 +++++++++++- 1 files changed, 11 insertions(+), 1 deletions(-) 4c24c4de403dcb658622590f6f6ef35232bbe709
diff --git a/rev-list.c b/rev-list.c
--- a/rev-list.c
+++ b/rev-list.c@@ -15,12 +15,15 @@ static const char rev_list_usage[] = " --max-count=nr\n" " --max-age=epoch\n" " --min-age=epoch\n" + " --parents\n" " --bisect\n" " --objects\n" " --unpacked\n" " --header\n" " --pretty\n" - " --merge-order [ --show-breaks ]"; + " --no-merges\n" + " --merge-order [ --show-breaks ]\n" + " --topo-order"; static int unpacked = 0; static int bisect_list = 0;
@@ -39,6 +42,7 @@ static int merge_order = 0; static int show_breaks = 0; static int stop_traversal = 0; static int topo_order = 0; +static int no_merges = 0; static void show_commit(struct commit *commit) {
@@ -82,6 +86,8 @@ static int filter_commit(struct commit * } if (max_count != -1 && !max_count--) return STOP; + if (no_merges && (commit->parents && commit->parents->next)) + return CONTINUE; return DO; }
@@ -498,6 +504,10 @@ int main(int argc, char **argv) verbose_header = 1; hdr_termination = '\n'; prefix = "commit "; + continue; + } + if (!strncmp(arg, "--no-merges", 11)) { + no_merges = 1; continue; } if (!strcmp(arg, "--parents")) {