Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> --- Documentation/git-branch.txt | 8 ++++++++ builtin/branch.c | 18 +++++++++++++++--- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/Documentation/git-branch.txt b/Documentation/git-branch.txt index 903a690..3d1d600 100644 --- a/Documentation/git-branch.txt +++ b/Documentation/git-branch.txt @@ -9,6 +9,7 @@ SYNOPSIS -------- [verse] 'git branch' [--color[=<when>] | --no-color] [-r | -a] + [--columns | --no-columns] [-v [--abbrev=<length> | --no-abbrev]] [(--merged | --no-merged | --contains) [<commit>]] 'git branch' [--set-upstream | --track | --no-track] [-l] [-f] <branchname> [<start-point>] @@ -93,6 +94,13 @@ OPTIONS default to color output. Same as `--color=never`. +--columns:: + Show branches in columns. This option is ignored in verbose mode. + +--no-columns:: + Show branches in a single list. This option is used to override + core.columns if set. + -r:: List or delete (if used with -d) the remote-tracking branches. diff --git a/builtin/branch.c b/builtin/branch.c index 6cf7e72..16273cb 100644 --- a/builtin/branch.c +++ b/builtin/branch.c @@ -15,6 +15,7 @@ #include "branch.h" #include "diff.h" #include "revision.h" +#include "column.h" static const char * const builtin_branch_usage[] = { "git branch [options] [-r | -a] [--merged | --no-merged]", @@ -598,7 +599,7 @@ int cmd_branch(int argc, const char **argv, const char *prefix) { int delete = 0, rename = 0, force_create = 0; int verbose = 0, abbrev = DEFAULT_ABBREV, detached = 0; - int reflog = 0; + int reflog = 0, column_output = 0; enum branch_track track; int kinds = REF_LOCAL_BRANCH; struct commit_list *with_commit = NULL; @@ -648,10 +649,12 @@ int cmd_branch(int argc, const char **argv, const char *prefix) PARSE_OPT_LASTARG_DEFAULT | PARSE_OPT_NONEG, opt_parse_merge_filter, (intptr_t) "HEAD", }, + OPT_BOOLEAN(0, "columns", &column_output, "list branches in columns"), OPT_END(), }; git_config(git_branch_config, NULL); + column_output = core_column_output; if (branch_use_color == -1) branch_use_color = git_use_color_default; @@ -678,8 +681,17 @@ int cmd_branch(int argc, const char **argv, const char *prefix) if (delete) return delete_branches(argc, argv, delete > 1, kinds); - else if (argc == 0) - print_ref_list(kinds, detached, verbose, abbrev, with_commit); + else if (argc == 0) { + if (verbose) + print_ref_list(kinds, detached, verbose, abbrev, with_commit); + else { + if (column_output) + start_columnizer(NULL); + print_ref_list(kinds, detached, verbose, abbrev, with_commit); + if (column_output) + stop_columnizer(); + } + } else if (rename && (argc == 1)) rename_branch(head, argv[0], rename > 1); else if (rename && (argc == 2)) -- 1.7.0.1.370.gd3c5 -- 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