Cleanup series, rebased on master.
Except 15/43 (which is now a comment only patch), no changes from pu 9f72b82.
Jonathan Nieder (2):
help: take note why this command is not applicable for
RUN_SETUP_GENTLY
t0001: Add test cases for "git init" with aliasesNguyễn Thái Ngọc Duy (41):
builtin: introduce startup_info struct
builtin: Support RUN_SETUP_GENTLY to set up repository early if found
config: use RUN_SETUP_GENTLY
hash-object: use RUN_SETUP_GENTLY
shortlog: use RUN_SETUP_GENTLY
grep: use RUN_SETUP_GENTLY
builtin: USE_PAGER should not be used without RUN_SETUP*
archive: use RUN_SETUP_GENTLY
mailinfo: use RUN_SETUP_GENTLY
check-ref-format: use RUN_SETUP_GENTLY
verify-pack: use RUN_SETUP_GENTLY
apply: use RUN_SETUP_GENTLY
bundle: use RUN_SETUP_GENTLY
diff: use RUN_SETUP_GENTLY
ls-remote: use RUN_SETUP_GENTLY
var: use RUN_SETUP_GENTLY
merge-file: use RUN_SETUP_GENTLY
worktree setup: calculate prefix even if no worktree is found
index-pack: trust the prefix returned by setup_git_directory_gently()
index-pack: use RUN_SETUP_GENTLY
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()
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
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
run_builtin(): save "-h" detection result for later use
builtins: utilize startup_info->help where possible
builtins: check for startup_info->help, print and exit early
Allow to undo setup_git_directory_gently() gracefully (and fix alias
code)
alias: keep repository found while collecting aliases as long as
possible
Guard unallowed access to repository when it's not set up
builtins: setup repository before print unknown command error
builtins: do not commit pager choice early attr.c | 5 +-
builtin/apply.c | 9 +-
builtin/archive.c | 2 +-
builtin/branch.c | 3 +
builtin/bundle.c | 6 +-
builtin/check-ref-format.c | 2 +-
builtin/checkout-index.c | 3 +
builtin/clone.c | 3 +-
builtin/commit.c | 6 +
builtin/config.c | 15 ++--
builtin/diff.c | 6 +-
builtin/gc.c | 3 +
builtin/grep.c | 11 +--
builtin/hash-object.c | 9 +-
builtin/help.c | 5 +
builtin/index-pack.c | 21 +---
builtin/init-db.c | 10 +-
builtin/log.c | 6 +-
builtin/ls-files.c | 3 +
builtin/ls-remote.c | 3 -
builtin/mailinfo.c | 3 -
builtin/merge-file.c | 4 +-
builtin/merge-ours.c | 2 +-
builtin/merge.c | 3 +
builtin/pack-redundant.c | 2 +-
builtin/rev-parse.c | 8 ++
builtin/shortlog.c | 4 +-
builtin/show-ref.c | 2 +-
builtin/update-index.c | 3 +
builtin/upload-archive.c | 7 +-
builtin/var.c | 2 -
cache.h | 14 +++-
config.c | 22 ++++-
dir.c | 8 +-
environment.c | 34 +++++++-
git.c | 99 ++++++++++++-------
help.c | 4 +
path.c | 91 ------------------
setup.c | 223 ++++++++++++++++++++++++++++++++++++++++----
t/t0001-init.sh | 52 ++++++++++
t/t1300-repo-config.sh | 14 +++
t/t1302-repo-version.sh | 2 +-
t/t1500-rev-parse.sh | 2 +-
t/t1501-worktree.sh | 5 +
t/t7002-grep.sh | 24 +++++
45 files changed, 525 insertions(+), 240 deletions(-)