git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* [PATCH 1/3] t7006: add tests for how git branch paginates
@ 2017-11-19 15:03 Martin Ågren
  2017-11-19 15:03 ` [PATCH 2/3] branch: respect `pager.branch` in list-mode only Martin Ågren
  2017-11-19 15:03 ` [PATCH 3/3] branch: change default of `pager.branch` to "on" Martin Ågren
  0 siblings, 2 replies; 3+ messages in thread
From: Martin Ågren @ 2017-11-19 15:03 UTC (permalink / raw)
  To: git

The next couple of commits will change how `git branch` handles
`pager.branch`, similar to how de121ffe5 (tag: respect `pager.tag` in
list-mode only, 2017-08-02) and ff1e72483 (tag: change default of
`pager.tag` to "on", 2017-08-02) changed `git tag`.

Add tests in this area to make sure that we don't regress and so that
the upcoming commits can be made clearer by adapting the tests. Add some
tests for `--list` (implied), one for `--edit-description`, and one for
`--set-upstream-to` as a representative of "something other than the
first two".

In particular, use `test_expect_failure` to document that we currently
respect the pager-configuration with `--edit-description`. The current
behavior is buggy since the pager interferes with the editor and makes
the end result completely broken. See also b3ee740c8 (t7006: add tests
for how git tag paginates, 2017-08-02).

Signed-off-by: Martin Ågren <martin.agren@gmail.com>
---
 t/t7006-pager.sh | 38 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)

diff --git a/t/t7006-pager.sh b/t/t7006-pager.sh
index 865168ec6a..95547bb8c6 100755
--- a/t/t7006-pager.sh
+++ b/t/t7006-pager.sh
@@ -214,6 +214,44 @@ test_expect_success TTY 'git tag as alias respects pager.tag with -l' '
 	! test -e paginated.out
 '
 
+test_expect_success TTY 'git branch defaults to not paging' '
+	rm -f paginated.out &&
+	test_terminal git branch &&
+	! test -e paginated.out
+'
+
+test_expect_success TTY 'git branch respects pager.branch' '
+	rm -f paginated.out &&
+	test_terminal git -c pager.branch branch &&
+	test -e paginated.out
+'
+
+test_expect_success TTY 'git branch respects --no-pager' '
+	rm -f paginated.out &&
+	test_terminal git -c pager.branch --no-pager branch &&
+	! test -e paginated.out
+'
+
+test_expect_failure TTY 'git branch --edit-description ignores pager.branch' '
+	rm -f paginated.out editor.used &&
+	write_script editor <<-\EOF &&
+		echo "New description" >"$1"
+		touch editor.used
+	EOF
+	EDITOR=./editor test_terminal git -c pager.branch branch --edit-description &&
+	! test -e paginated.out &&
+	test -e editor.used
+'
+
+test_expect_success TTY 'git branch --set-upstream-to respects pager.branch' '
+	rm -f paginated.out &&
+	git branch other &&
+	test_when_finished "git branch -D other" &&
+	test_terminal git -c pager.branch branch --set-upstream-to=other &&
+	test_when_finished "git branch --unset-upstream" &&
+	test -e paginated.out
+'
+
 # A colored commit log will begin with an appropriate ANSI escape
 # for the first color; the text "commit" comes later.
 colorful() {
-- 
2.15.0.415.gac1375d7e


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH 2/3] branch: respect `pager.branch` in list-mode only
  2017-11-19 15:03 [PATCH 1/3] t7006: add tests for how git branch paginates Martin Ågren
@ 2017-11-19 15:03 ` Martin Ågren
  2017-11-19 15:03 ` [PATCH 3/3] branch: change default of `pager.branch` to "on" Martin Ågren
  1 sibling, 0 replies; 3+ messages in thread
From: Martin Ågren @ 2017-11-19 15:03 UTC (permalink / raw)
  To: git

Similar to de121ffe5 (tag: respect `pager.tag` in list-mode only,
2017-08-02), use the DELAY_PAGER_CONFIG-mechanism to only respect
`pager.branch` when we are listing branches.

We have two possibilities of generalizing what that earlier commit made
to `git tag`. One is to interpret, e.g., --set-upstream-to as "it does
not use an editor, so we should page". Another, the one taken by this
commit, is to say "it does not list, so let's not page". That is in line
with the approach of the series on `pager.tag` and in particular the
wording in Documentation/git-tag.txt, which this commit reuses for
git-branch.txt.

This fixes the failing test added in the previous commit. Also adapt the
test for whether `git branch --set-upstream-to` respects `pager.branch`.

Signed-off-by: Martin Ågren <martin.agren@gmail.com>
---
 Documentation/git-branch.txt | 6 ++++++
 t/t7006-pager.sh             | 6 +++---
 builtin/branch.c             | 3 +++
 git.c                        | 2 +-
 4 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/Documentation/git-branch.txt b/Documentation/git-branch.txt
index d6587c5e96..df24506e18 100644
--- a/Documentation/git-branch.txt
+++ b/Documentation/git-branch.txt
@@ -281,6 +281,12 @@ start-point is either a local or remote-tracking branch.
 	and the object it points at.  The format is the same as
 	that of linkgit:git-for-each-ref[1].
 
+CONFIGURATION
+-------------
+`pager.branch` is only respected when listing branches, i.e., when
+`--list` is used or implied.
+See linkgit:git-config[1].
+
 Examples
 --------
 
diff --git a/t/t7006-pager.sh b/t/t7006-pager.sh
index 95547bb8c6..bb4fee3901 100755
--- a/t/t7006-pager.sh
+++ b/t/t7006-pager.sh
@@ -232,7 +232,7 @@ test_expect_success TTY 'git branch respects --no-pager' '
 	! test -e paginated.out
 '
 
-test_expect_failure TTY 'git branch --edit-description ignores pager.branch' '
+test_expect_success TTY 'git branch --edit-description ignores pager.branch' '
 	rm -f paginated.out editor.used &&
 	write_script editor <<-\EOF &&
 		echo "New description" >"$1"
@@ -243,13 +243,13 @@ test_expect_failure TTY 'git branch --edit-description ignores pager.branch' '
 	test -e editor.used
 '
 
-test_expect_success TTY 'git branch --set-upstream-to respects pager.branch' '
+test_expect_success TTY 'git branch --set-upstream-to ignores pager.branch' '
 	rm -f paginated.out &&
 	git branch other &&
 	test_when_finished "git branch -D other" &&
 	test_terminal git -c pager.branch branch --set-upstream-to=other &&
 	test_when_finished "git branch --unset-upstream" &&
-	test -e paginated.out
+	! test -e paginated.out
 '
 
 # A colored commit log will begin with an appropriate ANSI escape
diff --git a/builtin/branch.c b/builtin/branch.c
index 33fd5fcfd1..9c74689fb0 100644
--- a/builtin/branch.c
+++ b/builtin/branch.c
@@ -675,6 +675,9 @@ int cmd_branch(int argc, const char **argv, const char *prefix)
 		copy *= 2;
 	}
 
+	if (list)
+		setup_auto_pager("branch", 0);
+
 	if (delete) {
 		if (!argc)
 			die(_("branch name required"));
diff --git a/git.c b/git.c
index 9e96dd4090..c870b9719c 100644
--- a/git.c
+++ b/git.c
@@ -372,7 +372,7 @@ static struct cmd_struct commands[] = {
 	{ "archive", cmd_archive, RUN_SETUP_GENTLY },
 	{ "bisect--helper", cmd_bisect__helper, RUN_SETUP },
 	{ "blame", cmd_blame, RUN_SETUP },
-	{ "branch", cmd_branch, RUN_SETUP },
+	{ "branch", cmd_branch, RUN_SETUP | DELAY_PAGER_CONFIG },
 	{ "bundle", cmd_bundle, RUN_SETUP_GENTLY },
 	{ "cat-file", cmd_cat_file, RUN_SETUP },
 	{ "check-attr", cmd_check_attr, RUN_SETUP },
-- 
2.15.0.415.gac1375d7e


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH 3/3] branch: change default of `pager.branch` to "on"
  2017-11-19 15:03 [PATCH 1/3] t7006: add tests for how git branch paginates Martin Ågren
  2017-11-19 15:03 ` [PATCH 2/3] branch: respect `pager.branch` in list-mode only Martin Ågren
@ 2017-11-19 15:03 ` Martin Ågren
  1 sibling, 0 replies; 3+ messages in thread
From: Martin Ågren @ 2017-11-19 15:03 UTC (permalink / raw)
  To: git

This is similar to ff1e72483 (tag: change default of `pager.tag` to
"on", 2017-08-02) and is safe now that we do not consider `pager.branch`
at all when we are not listing branches. This change will help with
listing many branches, but will not hurt users of `git branch
--edit-description` as it would have before the previous commit.

Signed-off-by: Martin Ågren <martin.agren@gmail.com>
---
 Documentation/git-branch.txt |  2 +-
 t/t7006-pager.sh             | 10 +++++-----
 builtin/branch.c             |  2 +-
 3 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/Documentation/git-branch.txt b/Documentation/git-branch.txt
index df24506e18..520c53b5e8 100644
--- a/Documentation/git-branch.txt
+++ b/Documentation/git-branch.txt
@@ -284,7 +284,7 @@ start-point is either a local or remote-tracking branch.
 CONFIGURATION
 -------------
 `pager.branch` is only respected when listing branches, i.e., when
-`--list` is used or implied.
+`--list` is used or implied. The default is to use a pager.
 See linkgit:git-config[1].
 
 Examples
diff --git a/t/t7006-pager.sh b/t/t7006-pager.sh
index bb4fee3901..f5f46a95b4 100755
--- a/t/t7006-pager.sh
+++ b/t/t7006-pager.sh
@@ -214,21 +214,21 @@ test_expect_success TTY 'git tag as alias respects pager.tag with -l' '
 	! test -e paginated.out
 '
 
-test_expect_success TTY 'git branch defaults to not paging' '
+test_expect_success TTY 'git branch defaults to paging' '
 	rm -f paginated.out &&
 	test_terminal git branch &&
-	! test -e paginated.out
+	test -e paginated.out
 '
 
 test_expect_success TTY 'git branch respects pager.branch' '
 	rm -f paginated.out &&
-	test_terminal git -c pager.branch branch &&
-	test -e paginated.out
+	test_terminal git -c pager.branch=false branch &&
+	! test -e paginated.out
 '
 
 test_expect_success TTY 'git branch respects --no-pager' '
 	rm -f paginated.out &&
-	test_terminal git -c pager.branch --no-pager branch &&
+	test_terminal git --no-pager branch &&
 	! test -e paginated.out
 '
 
diff --git a/builtin/branch.c b/builtin/branch.c
index 9c74689fb0..4e6b8c3bc1 100644
--- a/builtin/branch.c
+++ b/builtin/branch.c
@@ -676,7 +676,7 @@ int cmd_branch(int argc, const char **argv, const char *prefix)
 	}
 
 	if (list)
-		setup_auto_pager("branch", 0);
+		setup_auto_pager("branch", 1);
 
 	if (delete) {
 		if (!argc)
-- 
2.15.0.415.gac1375d7e


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2017-11-19 15:04 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-11-19 15:03 [PATCH 1/3] t7006: add tests for how git branch paginates Martin Ågren
2017-11-19 15:03 ` [PATCH 2/3] branch: respect `pager.branch` in list-mode only Martin Ågren
2017-11-19 15:03 ` [PATCH 3/3] branch: change default of `pager.branch` to "on" Martin Ågren

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).