Subject: [PATCH v3 00/10] Convert grep to recurse in-process

From: Brandon Williams <[email-masked]>
Date: Tue, 18 Jul 2017 12:05:17 -0700

Changes in v3:
 * Fixes a bug with repo_read_gitmodules() where it was possible to
   segfault when a repository didn't have a worktree.  
 * In order to fix the above bug repo_read_gitmodules() and gitmodules_config()
   were merged so that there won't be any duplicate logic.  In order to merge
   these functions the parsing of submodule.fetchjobs and
   fetch.recursesubmodules were removed from the submodule-config parsing logic
   and instead moved into fetch and update-clone.  This also makes it easier to
   ensure that no additonal non-submodule specific configuration like this will
   be added to .gitmodules in the future.

Brandon Williams (10):
  repo_read_index: don't discard the index
  repository: have the_repository use the_index
  cache.h: add GITMODULES_FILE macro
  config: add config_from_gitmodules
  submodule: remove submodule.fetchjobs from submodule-config parsing
  submodule: remove fetch.recursesubmodules from submodule-config
    parsing
  submodule: check for unstaged .gitmodules outside of config parsing
  submodule: check for unmerged .gitmodules outside of config parsing
  submodule: merge repo_read_gitmodules and gitmodules_config
  grep: recurse in-process using 'struct repository'

 Documentation/git-grep.txt  |   7 -
 builtin/fetch.c             |  26 ++-
 builtin/grep.c              | 396 ++++++++++----------------------------------
 builtin/mv.c                |   2 +-
 builtin/rm.c                |   2 +-
 builtin/submodule--helper.c |  17 +-
 cache.h                     |   2 +-
 config.c                    |  17 ++
 config.h                    |  10 ++
 git.c                       |   2 +-
 grep.c                      |  13 --
 grep.h                      |   1 -
 repository.c                |   6 +-
 repository.h                |   8 +
 setup.c                     |  12 +-
 submodule-config.c          |   8 +
 submodule-config.h          |   1 +
 submodule.c                 | 147 +++++++---------
 submodule.h                 |   6 +-
 19 files changed, 240 insertions(+), 443 deletions(-)

-- 
2.13.2.932.g7449e964c-goog