[PATCH 3/4] Default to displaying /all/ non-tag refs, not just locals
From: Andy Parkins <hidden>
Date: 2016-08-11 19:32:59
Adds support for display_mode == 2; which shows all non-tag refs. I've set display_mode = 2 by default so it's easily reverted if needed - or if a switch for the old mode is wanted it can be easily added Signed-off-by: Andy Parkins <redacted> --- builtin-branch.c | 32 +++++++++++++++++++++++++------- 1 files changed, 25 insertions(+), 7 deletions(-)
diff --git a/builtin-branch.c b/builtin-branch.c
index 85b7007..b88413a 100644
--- a/builtin-branch.c
+++ b/builtin-branch.c@@ -104,20 +104,38 @@ static void print_ref_list(int display_m { int i; char c; + char *p; - if (display_mode) - for_each_remote_ref(append_ref, NULL); - else - for_each_branch_ref(append_ref, NULL); + switch (display_mode) { + case 0: + for_each_branch_ref(append_ref, NULL); + break; + case 1: + for_each_remote_ref(append_ref, NULL); + break; + case 2: + for_each_ref(append_ref, NULL); + break; + } qsort(ref_list, ref_index, sizeof(char *), ref_cmp); for (i = 0; i < ref_index; i++) { + p = ref_list[i]; + if (display_mode == 2) { + if (!strncmp( p, "refs/", 5 )) + p += 5; + if (!strncmp( p, "tags/", 5 )) + continue; + if (!strncmp( p, "heads/", 6 )) + p += 6; + } + c = ' '; - if (!strcmp(ref_list[i], head)) + if (!strcmp(p, head)) c = '*'; - printf("%c %s\n", c, ref_list[i]); + printf("%c %s\n", c, p); } }
@@ -160,7 +178,7 @@ static void create_branch(const char *na int cmd_branch(int argc, const char **argv, const char *prefix) { - int delete = 0, force_delete = 0, force_create = 0, display_mode = 0; + int delete = 0, force_delete = 0, force_create = 0, display_mode = 2; int reflog = 0; int i;
--
1.4.3.2