• J
    grep: turn off gitlink detection for --no-index · 85975c0c
    Jeff King 提交于
    If we are running "git grep --no-index" outside of a git
    repository, we behave roughly like "grep -r", examining all
    files in the current directory and its subdirectories.
    However, because we use fill_directory() to do the
    recursion, it will skip over any directories which look like
    sub-repositories.
    
    For a normal git operation (like "git grep" in a repository)
    this makes sense; we do not want to cross the boundary out
    of our current repository into a submodule. But for
    "--no-index" without a repository, we should look at all
    files, including embedded repositories.
    
    There is one exception, though: we probably should _not_
    descend into ".git" directories. Doing so is inefficient and
    unlikely to turn up useful hits.
    
    This patch drops our use of dir.c's gitlink-detection, but
    we do still avoid ".git". That makes us more like tools such
    as "ack" or "ag", which also know to avoid cruft in .git.
    
    As a bonus, this also drops our usage of the ref code
    when we are outside of a repository, making the transition
    to pluggable ref backends cleaner.
    Signed-off-by: NJeff King <peff@peff.net>
    Signed-off-by: NJunio C Hamano <gitster@pobox.com>
    85975c0c
grep.c 24.4 KB