All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jonathan Nieder <jrnieder@gmail.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org, "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>,
	"Jeff King" <peff@peff.net>
Subject: [PATCH 07/12] bundle: run setup_git_directory_gently() sooner
Date: Thu, 5 Aug 2010 22:12:46 -0500	[thread overview]
Message-ID: <20100806031204.GK22369@burratino> (raw)
In-Reply-To: <20100806023529.GB22369@burratino>

From: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>

Without this change, “git -p bundle” does not always
respect the repository-local “[core] pager” setting.

It is hard to notice because subcommands other than
“git bundle unbundle” do not produce much output.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
---
New tests and explanation.

The first new test perhaps deserves some explanation.  Its
only purpose is to let us use the 

	test -e paginated.out || test -e subdir/paginated.out

hedge in other tests with good conscience.

 builtin/bundle.c |    6 ++----
 git.c            |    2 +-
 t/t7006-pager.sh |   33 +++++++++++++++++++++++++++++++++
 3 files changed, 36 insertions(+), 5 deletions(-)

diff --git a/builtin/bundle.c b/builtin/bundle.c
index 2006cc5..80649ba 100644
--- a/builtin/bundle.c
+++ b/builtin/bundle.c
@@ -18,7 +18,6 @@ static const char builtin_bundle_usage[] =
 int cmd_bundle(int argc, const char **argv, const char *prefix)
 {
 	struct bundle_header header;
-	int nongit;
 	const char *cmd, *bundle_file;
 	int bundle_fd = -1;
 	char buffer[PATH_MAX];
@@ -31,7 +30,6 @@ int cmd_bundle(int argc, const char **argv, const char *prefix)
 	argc -= 2;
 	argv += 2;
 
-	prefix = setup_git_directory_gently(&nongit);
 	if (prefix && bundle_file[0] != '/') {
 		snprintf(buffer, sizeof(buffer), "%s/%s", prefix, bundle_file);
 		bundle_file = buffer;
@@ -54,11 +52,11 @@ int cmd_bundle(int argc, const char **argv, const char *prefix)
 		return !!list_bundle_refs(&header, argc, argv);
 	}
 	if (!strcmp(cmd, "create")) {
-		if (nongit)
+		if (!startup_info->have_repository)
 			die("Need a repository to create a bundle.");
 		return !!create_bundle(&header, bundle_file, argc, argv);
 	} else if (!strcmp(cmd, "unbundle")) {
-		if (nongit)
+		if (!startup_info->have_repository)
 			die("Need a repository to unbundle.");
 		return !!unbundle(&header, bundle_fd) ||
 			list_bundle_refs(&header, argc, argv);
diff --git a/git.c b/git.c
index 82b390b..94bb1e3 100644
--- a/git.c
+++ b/git.c
@@ -306,7 +306,7 @@ static void handle_internal_command(int argc, const char **argv)
 		{ "bisect--helper", cmd_bisect__helper, RUN_SETUP | NEED_WORK_TREE },
 		{ "blame", cmd_blame, RUN_SETUP },
 		{ "branch", cmd_branch, RUN_SETUP },
-		{ "bundle", cmd_bundle },
+		{ "bundle", cmd_bundle, RUN_SETUP_GENTLY },
 		{ "cat-file", cmd_cat_file, RUN_SETUP },
 		{ "checkout", cmd_checkout, RUN_SETUP | NEED_WORK_TREE },
 		{ "checkout-index", cmd_checkout_index,
diff --git a/t/t7006-pager.sh b/t/t7006-pager.sh
index 96fbb0f..6680668 100755
--- a/t/t7006-pager.sh
+++ b/t/t7006-pager.sh
@@ -57,6 +57,21 @@ test_expect_success TTY 'some commands use a pager' '
 	test -e paginated.out
 '
 
+test_expect_failure TTY 'pager runs from subdir' '
+	echo subdir/paginated.out >expected &&
+	mkdir -p subdir &&
+	rm -f paginated.out subdir/paginated.out &&
+	(
+		cd subdir &&
+		test_terminal git log
+	) &&
+	{
+		ls paginated.out subdir/paginated.out ||
+		:
+	} >actual &&
+	test_cmp expected actual
+'
+
 test_expect_success TTY 'some commands do not use a pager' '
 	rm -f paginated.out ||
 	cleanup_fail &&
@@ -118,6 +133,24 @@ test_expect_success TTY 'configuration can disable pager' '
 	! test -e paginated.out
 '
 
+test_expect_success 'configuration can enable pager (from subdir)' '
+	rm -f paginated.out &&
+	mkdir -p subdir &&
+	git config pager.bundle true &&
+	test_when_finished "git config --unset pager.bundle" &&
+
+	git bundle create test.bundle --all &&
+	rm -f paginated.out subdir/paginated.out &&
+	(
+		cd subdir &&
+		test_terminal git bundle unbundle ../test.bundle
+	) &&
+	{
+		test -e paginated.out ||
+		test -e subdir/paginated.out
+	}
+'
+
 # A colored commit log will begin with an appropriate ANSI escape
 # for the first color; the text "commit" comes later.
 colorful() {
-- 
1.7.2.1.544.ga752d.dirty

  parent reply	other threads:[~2010-08-06  3:14 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-06-26 19:22 [PATCH 0/4] git --paginate: do not commit pager choice too early Jonathan Nieder
2010-06-26 19:23 ` [PATCH 1/4] t7006 (pager): introduce helper for parameterized tests Jonathan Nieder
2010-06-26 19:24 ` [PATCH 2/4] t7006: test pager configuration for several git commands Jonathan Nieder
2010-06-26 19:28   ` Jonathan Nieder
2010-06-26 19:25 ` [PATCH 3/4] tests: local config file should be honored from subdirs of toplevel Jonathan Nieder
2010-06-26 19:26 ` [PATCH 4/4] git --paginate: do not commit pager choice too early Jonathan Nieder
2010-06-28  9:40 ` [PATCH 0/4] " Jeff King
2010-06-28 10:13   ` Jonathan Nieder
2010-06-28 10:22     ` Jeff King
2010-06-28 12:45       ` Nguyen Thai Ngoc Duy
2010-06-29  5:42 ` Junio C Hamano
2010-07-14 20:36   ` Junio C Hamano
2010-07-14 21:30     ` Jonathan Nieder
2010-07-14 22:55     ` [PATCH] git --paginate: paginate external commands again Jonathan Nieder
2010-07-18 12:27     ` [PATCH 0/4] git --paginate: do not commit pager choice too early Nguyen Thai Ngoc Duy
2010-08-06  2:35     ` [PATCH jn/paginate-fix 0/12] " Jonathan Nieder
2010-08-06  2:40       ` [PATCH 01/12] git wrapper: introduce startup_info struct Jonathan Nieder
2010-08-06  2:46       ` [PATCH 02/12] setup: remember whether repository was found Jonathan Nieder
2010-08-06  2:52       ` [PATCH 03/12] git wrapper: allow setup_git_directory_gently() be called earlier Jonathan Nieder
2010-08-06  3:01       ` [PATCH 04/12] shortlog: run setup_git_directory_gently() sooner Jonathan Nieder
2010-08-06  3:06       ` [PATCH 05/12] grep: " Jonathan Nieder
2010-08-06  3:08       ` [PATCH 06/12] apply: " Jonathan Nieder
2010-08-15 20:13         ` Ævar Arnfjörð Bjarmason
2010-08-15 22:34           ` Nguyen Thai Ngoc Duy
2010-08-15 23:11             ` Jonathan Nieder
2010-08-16  0:36         ` [PATCH 06/12 v2] " Nguyễn Thái Ngọc Duy
2010-08-16  3:39           ` Junio C Hamano
2010-08-06  3:12       ` Jonathan Nieder [this message]
2010-08-16  7:21         ` [PATCH 07/12] bundle: " Thomas Rast
2010-08-16  8:07           ` Jonathan Nieder
2010-08-16  8:11             ` [PATCH 2/2] t7006 (pager): add missing TTY prerequisite Jonathan Nieder
2010-08-16 16:41               ` Junio C Hamano
2010-08-06  3:15       ` [PATCH 08/12] config: run setup_git_directory_gently() sooner Jonathan Nieder
2010-08-06  3:18       ` [PATCH 09/12] index-pack: " Jonathan Nieder
2010-08-06  3:20       ` [PATCH 10/12] ls-remote: " Jonathan Nieder
2010-08-06  3:21       ` [PATCH 11/12] var: " Jonathan Nieder
2010-08-06  3:27       ` [PATCH 12/12] merge-file: " Jonathan Nieder
2010-08-06  3:34       ` [PATCH master 0/2] fix "check-ref-format --branch" from subdir of toplevel Jonathan Nieder
2010-08-06  3:36         ` [PATCH 1/2] check-ref-format: handle subcommands in separate functions Jonathan Nieder
2010-08-06  3:39         ` [PATCH 2/2] Allow "check-ref-format --branch" from subdirectory Jonathan Nieder
2010-08-06 19:42           ` Junio C Hamano
2010-08-06  4:26       ` [PATCH jn/paginate-fix 0/12] Re: git --paginate: do not commit pager choice too early Nguyen Thai Ngoc Duy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20100806031204.GK22369@burratino \
    --to=jrnieder@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=pclouds@gmail.com \
    --cc=peff@peff.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.