threads / patch / 34102

v4, 2 partsstatus: introduce status.short to enable --short by default

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

## tl;dr

5 messages between Jun 11, 2013 and Jun 12, 2013. Diffs are folded; open one to read it.

replies: 4people: 3as markdown or json

jorge-juan.garcia-garcia@ensimag.imag.fr· Jun 11, 2013, 13:34 UTC · lore
From: Jorge Juan Garcia Garcia <Jorge-Juan.Garcia-Garcia@ensimag.imag.fr>

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@ensimag.imag.fr>
Signed-off-by: Mathieu Lienard--Mayor <Mathieu.Lienard--Mayor@ensimag.imag.fr>
Signed-off-by: Matthieu Moy <Matthieu.Moy@grenoble-inp.fr>
---
Changes since v3:
- Changes the order of the test between expected and actual.
- Format by default when status.short is not defined adequately.
- The number of test is the same (all posibilities that I wanted tested).
---
 Documentation/config.txt |    4 ++++
 builtin/commit.c         |    7 +++++++
 t/t7508-status.sh        |   35 +++++++++++++++++++++++++++++++++++
 3 files changed, 46 insertions(+), 0 deletions(-)
Show changes to 3 files +46 −0

Documentation/config.txt, builtin/commit.c, t/t7508-status.sh

diff --git a/Documentation/config.txt b/Documentation/config.txt
index 6e53fc5..1983bf7 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -2066,6 +2066,10 @@ 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].
+	The option --no-short takes precedence over this variable.
+
 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..075a91c 100644
--- a/builtin/commit.c
+++ b/builtin/commit.c
@@ -1112,6 +1112,13 @@ 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 (git_config_bool(k, v))
+			status_format = STATUS_FORMAT_SHORT;
+		else
+			status_format = STATUS_FORMAT_NONE;
+		return 0;
+	}
 	if (!strcmp(k, "status.color") || !strcmp(k, "color.status")) {
 		s->use_color = git_config_colorbool(k, v);
 		return 0;
diff --git a/t/t7508-status.sh b/t/t7508-status.sh
index e2ffdac..3c0818b 100755
--- a/t/t7508-status.sh
+++ b/t/t7508-status.sh
@@ -1335,4 +1335,39 @@ test_expect_failure '.git/config ignore=all suppresses submodule summary' '
 	git config -f .gitmodules  --remove-section submodule.subname
 '
 
+test_expect_success 'Setup of test environment' '
+	git config status.showUntrackedFiles no
+'
+
+test_expect_success '"status.short=true" same as "-s"' '
+	git -c status.short=true status >actual &&
+	git status -s >expected_short &&
+	test_cmp expected_short actual
+'
+
+test_expect_success '"status.short=true" different from "--no-short"' '
+	git status --no-short >expected_noshort &&
+	test_must_fail test_cmp expected_noshort actual
+'
+
+test_expect_success '"status.short=true" weaker than "--no-short"' '
+	git -c status.short=true status --no-short >actual &&
+	test_cmp expected_noshort actual
+'
+
+test_expect_success '"status.short=false" same as "--no-short"' '
+	git -c status.short=false status >actual &&
+	git status -s >expected_short &&
+	test_cmp expected_noshort actual
+'
+
+test_expect_success '"status.short=false" weaker than "-s"' '
+	git -c status.short=false status -s >actual &&
+	test_cmp expected_short actual
+'
+
+test_expect_success 'Restore default test environment' '
+	git config --unset status.showUntrackedFiles
+'
+
 test_done
-- 
1.7.8
jorge-juan.garcia-garcia@ensimag.imag.fr· Jun 11, 2013, 13:34 UTC · re: jorge-juan.garcia-garcia@ensimag.imag.fr · lore

[PATCH v4 2/2] status:introduce status.branch to enable --branch by default

From: Jorge Juan Garcia Garcia <Jorge-Juan.Garcia-Garcia@ensimag.imag.fr>

Some people often run 'git status -b'. The config variable status.branch allows to set it by default.

Signed-off-by: Jorge Juan Garcia Garcia <Jorge-Juan.Garcia-Garcia@ensimag.imag.fr>
Signed-off-by: Mathieu Lienard--Mayor <Mathieu.Lienard--Mayor@ensimag.imag.fr>
Signed-off-by: Matthieu Moy <Matthieu.Moy@grenoble-inp.fr>
---
Changes since v3:
- Changes in the order in test between expected and actual.
- The number of test is the same (all posibilities that I wanted tested).
---
 Documentation/config.txt |    4 ++++
 builtin/commit.c         |    4 ++++
 t/t7508-status.sh        |   27 +++++++++++++++++++++++++++
 3 files changed, 35 insertions(+), 0 deletions(-)
Show changes to 3 files +35 −0

Documentation/config.txt, builtin/commit.c, t/t7508-status.sh

diff --git a/Documentation/config.txt b/Documentation/config.txt
index 1983bf7..ecdcd6d 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -2070,6 +2070,10 @@ status.short::
 	Set to true to enable --short by default in linkgit:git-status[1].
 	The option --no-short takes precedence over this variable.
 
+status.branch::
+	Set to true to enable --branch by default in linkgit:git-status[1].
+	The option --no-branch takes precedence over this variable.
+
 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 075a91c..b589ce0 100644
--- a/builtin/commit.c
+++ b/builtin/commit.c
@@ -1119,6 +1119,10 @@ static int git_status_config(const char *k, const char *v, void *cb)
 			status_format = STATUS_FORMAT_NONE;
 		return 0;
 	}
+	if (!strcmp(k, "status.branch")) {
+		s->show_branch = git_config_bool(k, v);
+		return 0;
+	}
 	if (!strcmp(k, "status.color") || !strcmp(k, "color.status")) {
 		s->use_color = git_config_colorbool(k, v);
 		return 0;
diff --git a/t/t7508-status.sh b/t/t7508-status.sh
index 3c0818b..d627f9b 100755
--- a/t/t7508-status.sh
+++ b/t/t7508-status.sh
@@ -1366,6 +1366,33 @@ test_expect_success '"status.short=false" weaker than "-s"' '
 	test_cmp expected_short actual
 '
 
+test_expect_success '"status.branch=true" same as "-b"' '
+	git -c status.branch=true status -s >actual &&
+	git status -sb >expected_branch &&
+	test_cmp expected_branch actual
+'
+
+test_expect_success '"status.branch=true" different from "--no-branch"' '
+	git -c status.branch=true status -s >actual &&
+	git status -s --no-branch  >expected_nobranch &&
+	test_must_fail test_cmp expected_nobranch actual
+'
+
+test_expect_success '"status.branch=true" weaker than "--no-branch"' '
+	git -c status.branch=true status -s --no-branch >actual &&
+	test_cmp expected_nobranch actual
+'
+
+test_expect_success '"status.branch=false" same as "--no-branch"' '
+	git -c status.branch=false status -s >actual &&
+	test_cmp expected_nobranch actual
+'
+
+test_expect_success '"status.branch=false" weaker than "-b"' '
+	git -c status.branch=false status -sb >actual &&
+	test_cmp expected_branch actual
+'
+
 test_expect_success 'Restore default test environment' '
 	git config --unset status.showUntrackedFiles
 '
-- 
1.7.8
Matthieu Moy· Jun 11, 2013, 13:43 UTC · re: jorge-juan.garcia-garcia@ensimag.imag.fr · lore

Re: [PATCH v4 2/2] status:introduce status.branch to enable --branch by default

Jorge-Juan.Garcia-Garcia@ensimag.imag.fr writes:
> +test_expect_success '"status.branch=true" different from "--no-branch"' '
> +	git -c status.branch=true status -s >actual &&
> +	git status -s --no-branch  >expected_nobranch &&
Two nitpicks:
There are two spaces before >, there should be one.

If the first "git" command fails, then you fail to create expected_nobranch and the other tests fail too. Creating expected_nobranch before actual would solve this. You have the same issue in PATCH 1/2.

With or without these fixed,
Reviewed-by: Matthieu Moy <Matthieu.Moy@grenoble-inp.fr>
(both patches)
-- 
Matthieu Moy
http://www-verimag.imag.fr/~moy/
Junio C Hamano· Jun 11, 2013, 21:38 UTC · re: jorge-juan.garcia-garcia@ensimag.imag.fr · lore

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

Jorge-Juan.Garcia-Garcia@ensimag.imag.fr writes:
Show 22 quoted lines
> diff --git a/t/t7508-status.sh b/t/t7508-status.sh
> index e2ffdac..3c0818b 100755
> --- a/t/t7508-status.sh
> +++ b/t/t7508-status.sh
> @@ -1335,4 +1335,39 @@ test_expect_failure '.git/config ignore=all suppresses submodule summary' '
>  	git config -f .gitmodules  --remove-section submodule.subname
>  '
>  
> +test_expect_success 'Setup of test environment' '
> +	git config status.showUntrackedFiles no
> +'
> +
> +test_expect_success '"status.short=true" same as "-s"' '
> +	git -c status.short=true status >actual &&
> +	git status -s >expected_short &&
> +	test_cmp expected_short actual
> +'
> +
> +test_expect_success '"status.short=true" different from "--no-short"' '
> +	git status --no-short >expected_noshort &&
> +	test_must_fail test_cmp expected_noshort actual
> +'

I am not sure if "must be different, and I do not care what kind of difference we get" is a good test.

Show 10 quoted lines
> +test_expect_success '"status.short=true" weaker than "--no-short"' '
> +	git -c status.short=true status --no-short >actual &&
> +	test_cmp expected_noshort actual
> +'
> +
> +test_expect_success '"status.short=false" same as "--no-short"' '
> +	git -c status.short=false status >actual &&
> +	git status -s >expected_short &&
> +	test_cmp expected_noshort actual
> +'
I think the second line in this test is unwanted.
Show 11 quoted lines
> +
> +test_expect_success '"status.short=false" weaker than "-s"' '
> +	git -c status.short=false status -s >actual &&
> +	test_cmp expected_short actual
> +'
> +
> +test_expect_success 'Restore default test environment' '
> +	git config --unset status.showUntrackedFiles
> +'
> +
>  test_done
I'll queue this patch after tweaking the test part like this.
Thanks.
Show changes to t/t7508-status.sh +30 −0
diff --git a/t/t7508-status.sh b/t/t7508-status.sh
index e2ffdac..33cadd0 100755
--- a/t/t7508-status.sh
+++ b/t/t7508-status.sh
@@ -1335,4 +1335,34 @@ test_expect_failure '.git/config ignore=all suppresses submodule summary' '
 	git config -f .gitmodules  --remove-section submodule.subname
 '
 
+test_expect_success 'setup of test environment' '
+	git config status.showUntrackedFiles no &&
+	git status -s >expected_short &&
+	git status --no-short >expected_noshort
+'
+
+test_expect_success '"status.short=true" same as "-s"' '
+	git -c status.short=true status >actual &&
+	test_cmp expected_short actual
+'
+
+test_expect_success '"status.short=true" weaker than "--no-short"' '
+	git -c status.short=true status --no-short >actual &&
+	test_cmp expected_noshort actual
+'
+
+test_expect_success '"status.short=false" same as "--no-short"' '
+	git -c status.short=false status >actual &&
+	test_cmp expected_noshort actual
+'
+
+test_expect_success '"status.short=false" weaker than "-s"' '
+	git -c status.short=false status -s >actual &&
+	test_cmp expected_short actual
+'
+
+test_expect_success 'Restore default test environment' '
+	git config --unset status.showUntrackedFiles
+'
+
 test_done
Matthieu Moy· Jun 12, 2013, 06:57 UTC · re: Junio C Hamano · lore

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

Junio C Hamano <gitster@pobox.com> writes:
> I'll queue this patch after tweaking the test part like this.
I agree your version is better, thanks.
Jorge: this means if you have to edit the patch further, you'll have to
start with the version in Junio's pu. But hopefully you won't have to.
-- 
Matthieu Moy
http://www-verimag.imag.fr/~moy/

← back to recent threads