I was thinking of sending the remainder of nd/setup after this to save others the trouble of rebasing, but I fear the traffic would be too disruptive. So I am putting it up by git. Caveats: maybe these patches make no sense. After I last rebased them, I walked away without looking. Still, maybe they can save you some time. Good night, Jonathan The following changes since commit e0cc2322c409c6cfa897f395f6feb058e2d53d4a: Nguyễn Thái Ngọc Duy (1): config: run setup before commiting pager choice are available in the git repository at: git://repo.or.cz/git/jrn.git/ nd/setup Jonathan Nieder (5): t0001: test git init when run via an alias t5512: test that ls-remote does not require a git repository t7002: test git grep --no-index from a bare repository t7006: expose test_terminal() for use by other tests help: note why it is appropriate for this command not to use RUN_SETUP_GENTLY Nguyễn Thái Ngọc Duy (41): t1300: test that scripted commands do not respect stray .git/config setup: save prefix (original cwd relative to toplevel) in startup_info builtin: remove prefix variable from run_builtin() run_builtin(): save "-h" detection result for later use builtin: remember whether repository has been searched for builtin: USE_PAGER should not be used without RUN_SETUP* hash-object: use RUN_SETUP_GENTLY shortlog: use RUN_SETUP_GENTLY grep: use RUN_SETUP_GENTLY 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 if there is no repository config: do not read .git/config if there is no repository 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 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 | 9 +- 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 | 8 +- config.c | 22 +++- dir.c | 8 +- environment.c | 31 ++++- git.c | 84 +++++++----- help.c | 4 + path.c | 91 ------------ setup.c | 213 ++++++++++++++++++++++++++--- t/lib-pager.sh | 37 +++++ t/{t7006 => lib-pager}/test-terminal.perl | 0 t/t0001-init.sh | 56 ++++++++ t/t1300-repo-config.sh | 15 ++ t/t1302-repo-version.sh | 2 +- t/t1500-rev-parse.sh | 2 +- t/t1501-worktree.sh | 5 + t/t5512-ls-remote.sh | 14 ++ t/t7002-grep.sh | 116 ++++++++++++++++ t/t7006-pager.sh | 29 +---- t/t7020-help.sh | 18 +++ 50 files changed, 660 insertions(+), 260 deletions(-) create mode 100644 t/lib-pager.sh rename t/{t7006 => lib-pager}/test-terminal.perl (100%) create mode 100755 t/t7020-help.sh -- 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