From: "Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
To: git@vger.kernel.org
Cc: "Junio C Hamano" <gitster@pobox.com>, "Jeff King" <peff@peff.net>,
"Johannes Sixt" <j.sixt@viscovery.net>,
"Nguyễn Thái Ngọc Duy" <pclouds@gmail.com>
Subject: [PATCH 3/3] grep: stop looking at random places for .gitattributes
Date: Wed, 10 Oct 2012 18:34:54 +0700 [thread overview]
Message-ID: <1349868894-3579-4-git-send-email-pclouds@gmail.com> (raw)
In-Reply-To: <1349868894-3579-1-git-send-email-pclouds@gmail.com>
grep searches for .gitattributes using "name" field in struct
grep_source but that field is not real on-disk path name. For example,
"grep pattern rev" fills the field with "rev:path", which is
non-existent usually until somebody exploits it to drive git away.
attr does not support looking up .gitattributes from a tree object.
Making "git grep pattern <rev>" support .gitattributes could be a big
work. Just note in document what we support for now. The document
changes in this patch are to be reverted once support is in place.
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
---
Documentation/git-grep.txt | 7 +++++--
grep.c | 3 ++-
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/Documentation/git-grep.txt b/Documentation/git-grep.txt
index cfecf84..a4c66ee 100644
--- a/Documentation/git-grep.txt
+++ b/Documentation/git-grep.txt
@@ -86,7 +86,9 @@ OPTIONS
files.
-I::
- Don't match the pattern in binary files.
+ Don't match the pattern in binary files. Note that binary
+ detection via .gitattributes only works with searching files
+ in working directory.
--max-depth <depth>::
For each <pathspec> given on command line, descend at most <depth>
@@ -189,7 +191,8 @@ OPTIONS
the match, unless the matching line is a function name itself.
The name is determined in the same way as 'git diff' works out
patch hunk headers (see 'Defining a custom hunk-header' in
- linkgit:gitattributes[5]).
+ linkgit:gitattributes[5]). Note that .gitattributes are only
+ support for searching files in working directory.
-<num>::
-C <num>::
diff --git a/grep.c b/grep.c
index 06bc1c6..e36c01b 100644
--- a/grep.c
+++ b/grep.c
@@ -1505,7 +1505,8 @@ void grep_source_load_driver(struct grep_source *gs)
return;
grep_attr_lock();
- gs->driver = userdiff_find_by_path(gs->name);
+ if (gs->path)
+ gs->driver = userdiff_find_by_path(gs->path);
if (!gs->driver)
gs->driver = userdiff_find_by_name("default");
grep_attr_unlock();
--
1.7.12.1.406.g6ab07c4
next prev parent reply other threads:[~2012-10-10 11:36 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-10-09 9:03 'git grep needle rev' attempts to access 'rev:.../.gitattributes' in the worktree Johannes Sixt
2012-10-09 9:38 ` Nguyen Thai Ngoc Duy
2012-10-09 12:01 ` Nguyen Thai Ngoc Duy
2012-10-09 12:41 ` Jeff King
2012-10-09 18:59 ` Junio C Hamano
2012-10-10 5:17 ` Nguyen Thai Ngoc Duy
2012-10-10 5:33 ` Junio C Hamano
2012-10-10 5:45 ` Nguyen Thai Ngoc Duy
2012-10-10 11:34 ` Nguyễn Thái Ngọc Duy
2012-10-10 11:34 ` [PATCH 1/3] quote: let caller reset buffer for quote_path_relative() Nguyễn Thái Ngọc Duy
2012-10-10 21:13 ` Junio C Hamano
2012-10-11 13:04 ` Nguyen Thai Ngoc Duy
2012-10-11 16:42 ` Junio C Hamano
2012-10-10 11:34 ` [PATCH 2/3] grep: pass true path name to grep machinery Nguyễn Thái Ngọc Duy
2012-10-10 11:34 ` Nguyễn Thái Ngọc Duy [this message]
2012-10-10 11:51 ` [PATCH 3/3] grep: stop looking at random places for .gitattributes Johannes Sixt
2012-10-10 12:03 ` Nguyen Thai Ngoc Duy
2012-10-10 12:12 ` Johannes Sixt
2012-10-10 12:32 ` Nguyen Thai Ngoc Duy
2012-10-10 12:43 ` Johannes Sixt
2012-10-10 12:51 ` Nguyen Thai Ngoc Duy
2012-10-10 19:44 ` Junio C Hamano
2012-10-11 5:55 ` Johannes Sixt
2012-10-11 7:04 ` Michael Haggerty
2012-10-11 8:17 ` Nguyen Thai Ngoc Duy
2012-10-10 13:59 ` [PATCH v2 0/2] Re: 'git grep needle rev' attempts to access 'rev:.../.gitattributes' in the worktree Nguyễn Thái Ngọc Duy
2012-10-10 13:59 ` [PATCH v2 1/2] quote: let caller reset buffer for quote_path_relative() Nguyễn Thái Ngọc Duy
2012-10-10 13:59 ` [PATCH v2 2/2] grep: stop looking at random places for .gitattributes Nguyễn Thái Ngọc Duy
2012-10-10 14:21 ` Johannes Sixt
2012-10-10 19:56 ` Junio C Hamano
2012-10-11 5:45 ` Johannes Sixt
2012-10-11 15:51 ` Junio C Hamano
2012-10-12 7:33 ` Johannes Sixt
2012-10-14 4:29 ` Junio C Hamano
2012-10-15 6:02 ` Johannes Sixt
2012-10-15 16:54 ` Junio C Hamano
2012-10-16 6:39 ` Johannes Sixt
2012-10-17 7:05 ` Johannes Sixt
2012-10-17 7:33 ` Junio C Hamano
2012-10-11 1:49 ` Nguyen Thai Ngoc Duy
2012-10-11 3:15 ` Junio C Hamano
2012-10-12 10:49 ` [PATCH v3] " Nguyễn Thái Ngọc Duy
2012-10-12 16:47 ` Junio C Hamano
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=1349868894-3579-4-git-send-email-pclouds@gmail.com \
--to=pclouds@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=j.sixt@viscovery.net \
--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.