Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
git grep shows the same hit repeatedly for unmerged paths
author
Junio C Hamano
<gitster@pobox.com>
Thu, 6 Dec 2007 00:13:08 +0000
(16:13 -0800)
committer
Junio C Hamano
<gitster@pobox.com>
Thu, 6 Dec 2007 00:16:40 +0000
(16:16 -0800)
When the index is unmerged, e.g.
$ git ls-files -u
100644
faf413748eb6ccb15161a212156c5e348302b1b6
1 setup.c
100644
145eca50f41d811c4c8fcb21ed2604e6b2971aba
2 setup.c
100644
cb9558c49b6027bf225ba2a6154c4d2a52bcdbe2
3 setup.c
running "git grep" for work tree files repeats hits for each unmerged
stage.
$ git grep -n -e setup_work_tree -- '*.[ch]'
setup.c:209:void setup_work_tree(void)
setup.c:209:void setup_work_tree(void)
setup.c:209:void setup_work_tree(void)
This should fix it.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin-grep.c
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (from parent 1:
9d25acc
)
diff --git
a/builtin-grep.c
b/builtin-grep.c
index bbf747fc7b66f6b4f19d9dc62a9ba10965199917..f1ff8dc556ce6caa1cafe77be41396dd9b7c9ee6 100644
(file)
--- a/
builtin-grep.c
+++ b/
builtin-grep.c
@@
-343,12
+343,12
@@
static int external_grep(struct grep_opt *opt, const char **paths, int cached)
memcpy(name + 2, ce->name, len + 1);
}
argv[argc++] = name;
memcpy(name + 2, ce->name, len + 1);
}
argv[argc++] = name;
- if (
argc < MAXARGS)
-
continue
;
- status = flush_grep(opt, argc, nr, argv, &kept);
- if (0 < status)
-
hit = 1
;
- argc = nr + kept;
+ if (
MAXARGS <= argc) {
+
status = flush_grep(opt, argc, nr, argv, &kept)
;
+ if (0 < status)
+ hit = 1;
+
argc = nr + kept
;
+ }
if (ce_stage(ce)) {
do {
i++;
if (ce_stage(ce)) {
do {
i++;