Some people always run 'git status -s'. The configuration variable status.short allows to set it by default. Signed-off-by: Jorge Juan Garcia Garcia <Jorge-Juan.Garcia-Garcia@xxxxxxxxxxxxxxx> Signed-off-by: Mathieu Lienard--Mayor <Mathieu.Lienard--Mayor@xxxxxxxxxxxxxxx> Signed-off-by: Matthieu Moy <Matthieu.Moy@xxxxxxxxxxxxxxx> --- Documentation/config.txt | 3 +++ builtin/commit.c | 9 +++++++++ config.c | 1 + t/t7508-status.sh | 34 ++++++++++++++++++++++++++++++++++ 4 files changed, 47 insertions(+), 0 deletions(-) diff --git a/Documentation/config.txt b/Documentation/config.txt index 6e53fc5..80cdf75 100644 --- a/Documentation/config.txt +++ b/Documentation/config.txt @@ -2066,6 +2066,9 @@ status.relativePaths:: relative to the repository root (this was the default for Git prior to v1.5.4). +status.short:: + Set to true to enable --short by default in linkgit:git-status[1]. + status.showUntrackedFiles:: By default, linkgit:git-status[1] and linkgit:git-commit[1] show files which are not currently tracked by Git. Directories which diff --git a/builtin/commit.c b/builtin/commit.c index 1621dfc..0f3429f 100644 --- a/builtin/commit.c +++ b/builtin/commit.c @@ -1112,6 +1112,15 @@ static int git_status_config(const char *k, const char *v, void *cb) s->submodule_summary = -1; return 0; } + if (!strcmp(k, "status.short")) { + if (!v) + return config_error_nonbool(k); + if (git_config_bool(k,v)) { + status_format = STATUS_FORMAT_SHORT; + wt_shortstatus_print(s); + } + return 0; + } if (!strcmp(k, "status.color") || !strcmp(k, "color.status")) { s->use_color = git_config_colorbool(k, v); return 0; diff --git a/config.c b/config.c index 7a85ebd..85ddbf2 100644 --- a/config.c +++ b/config.c @@ -9,6 +9,7 @@ #include "exec_cmd.h" #include "strbuf.h" #include "quote.h" +#include "commit.h" typedef struct config_file { struct config_file *prev; diff --git a/t/t7508-status.sh b/t/t7508-status.sh index e2ffdac..4cb2b62 100755 --- a/t/t7508-status.sh +++ b/t/t7508-status.sh @@ -1334,5 +1334,39 @@ test_expect_failure '.git/config ignore=all suppresses submodule summary' ' git config --remove-section submodule.subname && git config -f .gitmodules --remove-section submodule.subname ' +test_expect_success 'setup for testing status.short' ' + >status1 && + >status2 +' + +test_expect_success '"status.short=true" same as "-s"' ' + git -c status.short=true status >status2 && + git status -s >status1 && + test_cmp status1 status2 +' + +test_expect_success '"status.short=true" different from "--no-short"' ' + git -c status.short=true status >status2 && + git status --no-short >status1 && + test_must_fail test_cmp status1 status2 +' + +test_expect_success '"status.short=true" weaker than "--no-short"' ' + git -c status.short=true status --no-short >status2 && + git status --no-short >status1 && + test_cmp status1 status2 +' + +test_expect_success '"status.short=false" same as "--no-short"' ' + git -c status.short=false status >status2 && + git status --no-short >status1 && + test_cmp status1 status2 +' + +test_expect_success '"status.short=false" weaker than "-s"' ' + git -c status.short=false status -s >status2 && + git status -s >status1 && + test_cmp status1 status2 +' test_done -- 1.7.8 -- 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