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

From: Junio C Hamano <[email-masked]>
Date: Tue, 18 Jul 2017 12:36:14 -0700

Brandon Williams <[email-masked]> writes:

> 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.

Sounds good.  

Has this been rebased and if so on top of what?  It seems that I am
getting "am -3" conflicts at around 05/10---I think I can cope with,
but it is one unnecessary source of potential bugs, so...

> 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(-)