[PATCH 00/16] nd/setup part two
From: Nguyễn Thái Ngọc Duy <hidden>
Date: 2016-06-15 22:48:25
While the first part is more of preventing faults. This part fixes the
remaining faults (or introduces more faults, who knows). I think I
have got it to a readable/testable state.
On top of nd/setup, obviously.
Nguyễn Thái Ngọc Duy (16):
Move enter_repo() to setup.c
enter_repo(): initialize other variables as setup_git_directory_gently() does
rev-parse --git-dir: print relative gitdir correctly
worktree setup: call set_git_dir explicitly
Add git_config_early()
Preparation
Use git_config_early() instead of git_config() during repo setup
worktree setup: restore original state when things go wrong
init/clone: turn on startup->have_repository properly
Improve setup stuff
git_config(): do not read .git/config if there is no repository
Do not read .git/info/exclude if there is no repository
Do not read .git/info/attributes if there is no repository
apply: do not check sha1 when repository has not been found
config: do not read .git/config if there is no repository
Stop improper access to repo (and incorrectly set git_dir
along the way)
Allow to undo setup_git_directory_gently() gracefully (and fix alias code)
alias: keep repository found while collecting aliases as long as possible
Alias fix/improvement. I think I can add some tests for this.
Guard unallowed access to repository when it's not set up
The original patch [1] that has grown up to a 37-patch, 2-part series
[1] http://mid.gmane.org/1265370468-6147-1-git-send-email-pclouds@gmail.com
attr.c | 5 +-
builtin/apply.c | 2 +-
builtin/clone.c | 3 +-
builtin/config.c | 9 ++-
builtin/init-db.c | 10 ++-
builtin/rev-parse.c | 8 ++
cache.h | 6 ++-
config.c | 22 +++++--
dir.c | 8 ++-
environment.c | 33 ++++++++-
git.c | 22 ++++---
path.c | 91 -----------------------
setup.c | 184 ++++++++++++++++++++++++++++++++++++++++++++---
t/t1300-repo-config.sh | 14 ++++
t/t1302-repo-version.sh | 2 +-
t/t7002-grep.sh | 24 ++++++
16 files changed, 309 insertions(+), 134 deletions(-)