Subject: [PATCH 00/16] nd/setup part two

From: Nguyễn Thái Ngọc Duy <[email-masked]>
Date: Thu, 11 Mar 2010 20:22:18 +0700

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/[email-masked]

 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(-)