As before you can find this series at:
https://github.com/bmwill/git/tree/repository-object
Changes in v4:
* Patch 11 is slightly different and turns off all path relocation when a
worktree is provided instead of just for the index file (Thanks for the help
Jonathan Nieder).
* 'repo_init()' has a tighter API and now requires that the provided gitdir is
a path to the gitdir instead of either a path to the gitdir or path to the
worktree (which has a .git file or directory) (Thanks Jonathan Tan).
* Minor comment and commit message chagnes
Note: Like v3 this series is dependent on on 'bw/config-h' and
'bw/ls-files-sans-the-index'
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: worktree_git_path() should not use file relocation
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 | 192 +++++++++++---------------
builtin/submodule--helper.c | 9 +-
cache.h | 62 +--------
config.c | 216 +++++++++++++++++++----------
config.h | 24 ++++
environment.c | 91 ++++---------
git.c | 2 +-
path.c | 130 ++++++++++++++----
path.h | 82 +++++++++++
repository.c | 242 +++++++++++++++++++++++++++++++++
repository.h | 97 +++++++++++++
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, 972 insertions(+), 373 deletions(-)
create mode 100644 path.h
create mode 100644 repository.c
create mode 100644 repository.h
--
2.13.1.704.gde00cce3c-goog