Re: [PATCH v3 00/20] repository object

2017-06-20 Thread Stefan Beller
On Tue, Jun 20, 2017 at 12:19 PM, Brandon Williams  wrote:
> I decided to split up the original series into three parts in order to make
> review a little bit easier.  As such this series is dependent on on
> 'bw/config-h' and 'bw/ls-files-sans-the-index' which should be moving into
> 'next' soon.  Due to this I was able to greatly shrink this series in terms of
> number of patches so hopefully it is a little easier to review.
>
> As before you can find this series at:
> https://github.com/bmwill/git/tree/repository-object

If you plan on building 'foreach' on top of Brandons series,
maybe start off the latest version here.

>
> Chagnes in v3:
...
>
>  * Added an additional initialization function to allow initializing a 'struct
>repository' as a submodule of another 'struct repository'.

This one seems relevant for 'foreach'


[PATCH v3 00/20] repository object

2017-06-20 Thread Brandon Williams
I decided to split up the original series into three parts in order to make
review a little bit easier.  As such this series is dependent on on
'bw/config-h' and 'bw/ls-files-sans-the-index' which should be moving into
'next' soon.  Due to this I was able to greatly shrink this series in terms of
number of patches so hopefully it is a little easier to review.

As before you can find this series at:
https://github.com/bmwill/git/tree/repository-object

Chagnes in v3:

 * Once v2 was merged to 'pu' a bug was discovered in how the 'do_git_path'
   function handled worktree's.  v3 addresses this by ensuring to only replace
   'gitdir/index' with 'repository->index_file' when not operating specifically
   on a 'struct worktree'.

 * Added a bunch of path related functions to facilitate construction of paths
   into a repository's gitdir or in a repository's worktree.

 * Added an additional initialization function to allow initializing a 'struct
   repository' as a submodule of another 'struct repository'.

Brandon Williams (20):
  setup: don't perform lazy initialization of repository state
  setup: add comment indicating a hack
  environment: remove namespace_len variable
  repository: introduce the repository object
  environment: place key repository state in the_repository
  environment: store worktree in the_repository
  path: create path.h
  path: always pass in commondir to update_common_dir
  path: convert strbuf_git_common_path to take a 'struct repository'
  path: convert do_git_path to take a 'struct repository'
  path: construct correct path to a worktree's index
  path: add repo_git_path and strbuf_repo_git_path
  path: add repo_worktree_path and strbuf_repo_worktree_path
  config: read config from a repository object
  repository: add index_state to struct repo
  submodule-config: store the_submodule_cache in the_repository
  submodule: add repo_read_gitmodules
  submodule: convert is_submodule_initialized to work on a repository
  repository: enable initialization of submodules
  ls-files: use repository object

 Makefile   |   1 +
 builtin/grep.c |   3 +-
 builtin/ls-files.c | 195 +++---
 builtin/submodule--helper.c|   9 +-
 cache.h|  62 +
 config.c   | 216 +++--
 config.h   |  24 
 environment.c  |  91 
 git.c  |   2 +-
 path.c | 136 ++
 path.h |  82 +++
 repository.c   | 245 +
 repository.h   |  76 ++
 setup.c|  33 +
 submodule-config.c |  70 +++---
 submodule-config.h |  10 ++
 submodule.c|  35 +++--
 submodule.h|   4 +-
 t/t3007-ls-files-recurse-submodules.sh |  39 ++
 worktree.c |   3 +-
 20 files changed, 962 insertions(+), 374 deletions(-)
 create mode 100644 path.h
 create mode 100644 repository.c
 create mode 100644 repository.h

-- 
2.13.1.611.g7e3b11ae1-goog