[PATCH 1/2] status: introduce status.short to enable --short by default

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]