* [PATCH v3 1/2] status: introduce status.short to enable --short by default
@ 2013-06-10 15:27 Jorge Juan Garcia Garcia
2013-06-10 15:27 ` [PATCH v3 2/2] status:introduce status.branch to enable --branch " Jorge Juan Garcia Garcia
2013-06-10 18:16 ` [PATCH v3 1/2] status: introduce status.short to enable --short " Junio C Hamano
0 siblings, 2 replies; 5+ messages in thread
From: Jorge Juan Garcia Garcia @ 2013-06-10 15:27 UTC (permalink / raw)
To: git
Cc: gitster, Jorge Juan Garcia Garcia, Mathieu Lienard--Mayor, Matthieu Moy
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 v2:
-removal of double quotes in test
-use of git config --unset to clean up test environment
Documentation/config.txt | 4 ++++
builtin/commit.c | 5 +++++
t/t7508-status.sh | 35 +++++++++++++++++++++++++++++++++++
3 files changed, 44 insertions(+), 0 deletions(-)
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..287f1cb 100644
--- a/builtin/commit.c
+++ b/builtin/commit.c
@@ -1112,6 +1112,11 @@ 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;
+ 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..d99ca9f 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 actual expected_short
+'
+
+test_expect_success '"status.short=true" different from "--no-short"' '
+ git status --no-short >expected_noshort &&
+ test_must_fail test_cmp actual expected_noshort
+'
+
+test_expect_success '"status.short=true" weaker than "--no-short"' '
+ git -c status.short=true status --no-short >actual &&
+ test_cmp actual expected_noshort
+'
+
+test_expect_success '"status.short=false" same as "--no-short"' '
+ git -c status.short=false status >actual &&
+ git status -s >expected_short &&
+ test_cmp actual expected_noshort
+'
+
+test_expect_success '"status.short=false" weaker than "-s"' '
+ git -c status.short=false status -s >actual &&
+ test_cmp actual expected_short
+'
+
+test_expect_success 'Restore default test environment' '
+ git config --unset status.showUntrackedFiles
+'
+
test_done
--
1.7.8
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v3 2/2] status:introduce status.branch to enable --branch by default
2013-06-10 15:27 [PATCH v3 1/2] status: introduce status.short to enable --short by default Jorge Juan Garcia Garcia
@ 2013-06-10 15:27 ` Jorge Juan Garcia Garcia
2013-06-10 18:17 ` Junio C Hamano
2013-06-10 18:16 ` [PATCH v3 1/2] status: introduce status.short to enable --short " Junio C Hamano
1 sibling, 1 reply; 5+ messages in thread
From: Jorge Juan Garcia Garcia @ 2013-06-10 15:27 UTC (permalink / raw)
To: git
Cc: gitster, Jorge Juan Garcia Garcia, Mathieu Lienard--Mayor, Matthieu Moy
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 v2:
-removal of double quotes in test
Documentation/config.txt | 4 ++++
builtin/commit.c | 4 ++++
t/t7508-status.sh | 27 +++++++++++++++++++++++++++
3 files changed, 35 insertions(+), 0 deletions(-)
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 287f1cb..f2b5d44 100644
--- a/builtin/commit.c
+++ b/builtin/commit.c
@@ -1117,6 +1117,10 @@ static int git_status_config(const char *k, const char *v, void *cb)
status_format = STATUS_FORMAT_SHORT;
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 d99ca9f..5e6df95 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 actual expected_short
'
+test_expect_success '"status.branch=true" same as "-b"' '
+ git -c status.branch=true status -s >actual &&
+ git status -sb >expected_branch &&
+ test_cmp actual expected_branch
+'
+
+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 actual expected_nobranch
+'
+
+test_expect_success '"status.branch=true" weaker than "--no-branch"' '
+ git -c status.branch=true status -s --no-branch >actual &&
+ test_cmp actual expected_nobranch
+'
+
+test_expect_success '"status.branch=false" same as "--no-branch"' '
+ git -c status.branch=false status -s >actual &&
+ test_cmp actual expected_nobranch
+'
+
+test_expect_success '"status.branch=false" weaker than "-b"' '
+ git -c status.branch=false status -sb >actual &&
+ test_cmp actual expected_branch
+'
+
test_expect_success 'Restore default test environment' '
git config --unset status.showUntrackedFiles
'
--
1.7.8
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v3 1/2] status: introduce status.short to enable --short by default
2013-06-10 15:27 [PATCH v3 1/2] status: introduce status.short to enable --short by default Jorge Juan Garcia Garcia
2013-06-10 15:27 ` [PATCH v3 2/2] status:introduce status.branch to enable --branch " Jorge Juan Garcia Garcia
@ 2013-06-10 18:16 ` Junio C Hamano
2013-06-10 18:29 ` Matthieu Moy
1 sibling, 1 reply; 5+ messages in thread
From: Junio C Hamano @ 2013-06-10 18:16 UTC (permalink / raw)
To: Jorge Juan Garcia Garcia; +Cc: git, Mathieu Lienard--Mayor, Matthieu Moy
Jorge Juan Garcia Garcia <Jorge-Juan.Garcia-Garcia@ensimag.imag.fr>
writes:
> 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 v2:
> -removal of double quotes in test
> -use of git config --unset to clean up test environment
>
> Documentation/config.txt | 4 ++++
> builtin/commit.c | 5 +++++
> t/t7508-status.sh | 35 +++++++++++++++++++++++++++++++++++
> 3 files changed, 44 insertions(+), 0 deletions(-)
>
> 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..287f1cb 100644
> --- a/builtin/commit.c
> +++ b/builtin/commit.c
> @@ -1112,6 +1112,11 @@ 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;
And if the user has
[status]
short = no
in $GIT_DIR/config for this particular project, perhaps in order to
override a blanket setting
[status]
short
that is in $HOME/.gitconfig, what should happen?
Perhaps you need
if (git_config_bool(...))
status_format = STATUS_FORMAT_SHORT;
else
status_format = STATUS_FORMAT_NONE; /* default */
or something here?
> + 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..d99ca9f 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 actual expected_short
> +'
> +
> +test_expect_success '"status.short=true" different from "--no-short"' '
> + git status --no-short >expected_noshort &&
> + test_must_fail test_cmp actual expected_noshort
> +'
> +
> +test_expect_success '"status.short=true" weaker than "--no-short"' '
> + git -c status.short=true status --no-short >actual &&
> + test_cmp actual expected_noshort
> +'
> +
> +test_expect_success '"status.short=false" same as "--no-short"' '
> + git -c status.short=false status >actual &&
> + git status -s >expected_short &&
> + test_cmp actual expected_noshort
> +'
> +
> +test_expect_success '"status.short=false" weaker than "-s"' '
> + git -c status.short=false status -s >actual &&
> + test_cmp actual expected_short
> +'
> +
> +test_expect_success 'Restore default test environment' '
> + git config --unset status.showUntrackedFiles
> +'
A few observations.
* It is very good that you check not just positive cases that show
off how well this new feature works (i.e. status.short set
without command line override gives a short output) but also
negative cases that make sure the new feature does not kick in
when it should not. You test all four combinations, which is
good.
* If any of the first three fails, you may not have the correct
string in expected_short or expected_noshort when running later
tests that depend on them.
* Similarly, if the first one to set showUntrackedFiles fails, the
last one to --unset would also fail.
Perhaps limiting the number of tests that must pass (otherwise the
remainder becomes useless) by doing something like this is a better
alternative:
test_expect_success 'setup for status.short' '
git status --short >expected_short &&
git status --no-short >expected_noshort
'
test_expect_success '-c status.short=true == status -s' '
test_config status.showUntrackedFile no &&
test_config status.short yes &&
git status >actual &&
test_cmp expected_short actual
'
test_expect_success 'status --no-short defeats status.short=true' '
test_config status.showUntrackedFile no &&
test_config status.short yes &&
git status --no-short >actual &&
test_cmp expected_noshort actual
'
... other two combinations here ...
Points to note:
* test_config takes care of setting configuration variables and
then unsetting them when the test is done.
* test_cmp should compare expected with actual, not the other way,
so that "./t7508-status.sh -v" shows the diff between the two
shows how the actual output differs from what is expected.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v3 2/2] status:introduce status.branch to enable --branch by default
2013-06-10 15:27 ` [PATCH v3 2/2] status:introduce status.branch to enable --branch " Jorge Juan Garcia Garcia
@ 2013-06-10 18:17 ` Junio C Hamano
0 siblings, 0 replies; 5+ messages in thread
From: Junio C Hamano @ 2013-06-10 18:17 UTC (permalink / raw)
To: Jorge Juan Garcia Garcia; +Cc: git, Mathieu Lienard--Mayor, Matthieu Moy
Jorge Juan Garcia Garcia <Jorge-Juan.Garcia-Garcia@ensimag.imag.fr>
writes:
> 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 v2:
> -removal of double quotes in test
>
> Documentation/config.txt | 4 ++++
> builtin/commit.c | 4 ++++
> t/t7508-status.sh | 27 +++++++++++++++++++++++++++
> 3 files changed, 35 insertions(+), 0 deletions(-)
>
> 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 287f1cb..f2b5d44 100644
> --- a/builtin/commit.c
> +++ b/builtin/commit.c
> @@ -1117,6 +1117,10 @@ static int git_status_config(const char *k, const char *v, void *cb)
> status_format = STATUS_FORMAT_SHORT;
> return 0;
> }
> + if (!strcmp(k, "status.branch")) {
> + s->show_branch = git_config_bool(k, v);
This one, unlike 1/2, acts correctly when status.branch is set to
no. Good.
The same comments as 1/2 apply to the test script additions in this
patch.
> + 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 d99ca9f..5e6df95 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 actual expected_short
> '
>
> +test_expect_success '"status.branch=true" same as "-b"' '
> + git -c status.branch=true status -s >actual &&
> + git status -sb >expected_branch &&
> + test_cmp actual expected_branch
> +'
> +
> +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 actual expected_nobranch
> +'
> +
> +test_expect_success '"status.branch=true" weaker than "--no-branch"' '
> + git -c status.branch=true status -s --no-branch >actual &&
> + test_cmp actual expected_nobranch
> +'
> +
> +test_expect_success '"status.branch=false" same as "--no-branch"' '
> + git -c status.branch=false status -s >actual &&
> + test_cmp actual expected_nobranch
> +'
> +
> +test_expect_success '"status.branch=false" weaker than "-b"' '
> + git -c status.branch=false status -sb >actual &&
> + test_cmp actual expected_branch
> +'
> +
> test_expect_success 'Restore default test environment' '
> git config --unset status.showUntrackedFiles
> '
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v3 1/2] status: introduce status.short to enable --short by default
2013-06-10 18:16 ` [PATCH v3 1/2] status: introduce status.short to enable --short " Junio C Hamano
@ 2013-06-10 18:29 ` Matthieu Moy
0 siblings, 0 replies; 5+ messages in thread
From: Matthieu Moy @ 2013-06-10 18:29 UTC (permalink / raw)
To: Junio C Hamano; +Cc: Jorge Juan Garcia Garcia, git, Mathieu Lienard--Mayor
Junio C Hamano <gitster@pobox.com> writes:
> test_expect_success '-c status.short=true == status -s' '
> test_config status.showUntrackedFile no &&
That's an option, but having status.showUntrackedFile set in a separate
setup test makes the actual tests shorter. The setup test has no reason
to fail, so I find it OK.
--
Matthieu Moy
http://www-verimag.imag.fr/~moy/
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2013-06-10 18:29 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-06-10 15:27 [PATCH v3 1/2] status: introduce status.short to enable --short by default Jorge Juan Garcia Garcia
2013-06-10 15:27 ` [PATCH v3 2/2] status:introduce status.branch to enable --branch " Jorge Juan Garcia Garcia
2013-06-10 18:17 ` Junio C Hamano
2013-06-10 18:16 ` [PATCH v3 1/2] status: introduce status.short to enable --short " Junio C Hamano
2013-06-10 18:29 ` Matthieu Moy
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.