All of lore.kernel.org
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: git@vger.kernel.org
Cc: Lasse Makholm <lasse.makholm@gmail.com>
Subject: [PATCH 2/2] check-attr: move to the top of working tree when in non-bare repository
Date: Thu,  6 Feb 2014 10:40:33 -0800	[thread overview]
Message-ID: <1391712033-9443-2-git-send-email-gitster@pobox.com> (raw)
In-Reply-To: <1391712033-9443-1-git-send-email-gitster@pobox.com>

Lasse Makholm noticed that running "git check-attr" from a place
totally unrelated to $GIT_DIR and $GIT_WORK_TREE does not give
expected results.  I think it is because the command does not say it
wants to call setup_work_tree().

We still need to support use cases where only a bare repository is
involved, so unconditionally requiring a working tree would not work
well.  Instead, make a call only in a non-bare repository.

We may want to see if we want to do a similar fix in the opposite
direction to check-ignore.  The command unconditionally requires a
working tree, but it should be usable in a bare repository just like
check-attr attempts to be.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
 builtin/check-attr.c  |  3 +++
 t/t0003-attributes.sh | 10 ++++++++++
 2 files changed, 13 insertions(+)

diff --git a/builtin/check-attr.c b/builtin/check-attr.c
index 075d01d..f29d6c3 100644
--- a/builtin/check-attr.c
+++ b/builtin/check-attr.c
@@ -94,6 +94,9 @@ int cmd_check_attr(int argc, const char **argv, const char *prefix)
 	struct git_attr_check *check;
 	int cnt, i, doubledash, filei;
 
+	if (!is_bare_repository())
+		setup_work_tree();
+
 	git_config(git_default_config, NULL);
 
 	argc = parse_options(argc, argv, prefix, check_attr_options,
diff --git a/t/t0003-attributes.sh b/t/t0003-attributes.sh
index 0554b13..6e6aef5 100755
--- a/t/t0003-attributes.sh
+++ b/t/t0003-attributes.sh
@@ -196,6 +196,16 @@ test_expect_success 'root subdir attribute test' '
 	attr_check subdir/a/i unspecified
 '
 
+test_expect_success 'using --git-dir and --work-tree' '
+	mkdir unreal real &&
+	git init real &&
+	echo "file test=in-real" >real/.gitattributes &&
+	(
+		cd unreal &&
+		attr_check file in-real "--git-dir ../real/.git --work-tree ../real"
+	)
+'
+
 test_expect_success 'setup bare' '
 	git clone --bare . bare.git
 '
-- 
1.9-rc2-233-ged4ee9f

  reply	other threads:[~2014-02-06 18:40 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-06 12:48 attr.c doesn't honor --work-tree option Lasse Makholm
2014-02-06 17:54 ` Junio C Hamano
2014-02-06 18:40   ` [PATCH 1/2] t0003: do not chdir the whole test process Junio C Hamano
2014-02-06 18:40     ` Junio C Hamano [this message]
2014-02-06 19:53       ` [PATCH 2/2] check-attr: move to the top of working tree when in non-bare repository Jonathan Nieder
2014-02-06 20:17         ` Jonathan Nieder
2014-02-06 20:32           ` Junio C Hamano
2014-02-16 11:15           ` Michael Haggerty
2014-02-06 19:45     ` [PATCH 1/2] t0003: do not chdir the whole test process Jonathan Nieder
2014-02-06 20:25       ` Junio C Hamano
2014-02-06 20:31         ` Jonathan Nieder
2014-02-06 21:26           ` Junio C Hamano
2014-02-10 12:57   ` attr.c doesn't honor --work-tree option Lasse Makholm

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=1391712033-9443-2-git-send-email-gitster@pobox.com \
    --to=gitster@pobox.com \
    --cc=git@vger.kernel.org \
    --cc=lasse.makholm@gmail.com \
    /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.