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 <andyparkins@xxxxxxxxx> --- 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 - 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