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 aliases Nguyễ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(-) -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html