Merge branch 'nd/git-dir-pointing-at-gitfile'
authorJunio C Hamano <gitster@pobox.com>
Wed, 18 Sep 2013 18:42:36 +0000 (11:42 -0700)
committerJunio C Hamano <gitster@pobox.com>
Wed, 18 Sep 2013 18:42:36 +0000 (11:42 -0700)
We made sure that we notice the user-supplied GIT_DIR is actually a
gitfile, but did not do the same when the default ".git" is a gitfile.

* nd/git-dir-pointing-at-gitfile:
Make setup_git_env() resolve .git file when $GIT_DIR is not specified

1  2 
environment.c
diff --combined environment.c
index 5398c36dd4dc2c1d7ded3f92c217a99a240a0a23,03c9eb7a2ea8ca7e58416a3b0d17e7e0bdc038e5..378254c77a00f93ef667c0510fa11b75988ef05a
@@@ -22,7 -22,6 +22,7 @@@ int prefer_symlink_refs
  int is_bare_repository_cfg = -1; /* unspecified */
  int log_all_ref_updates = -1; /* unspecified */
  int warn_ambiguous_refs = 1;
 +int warn_on_object_refname_ambiguity = 1;
  int repository_format_version;
  const char *git_commit_encoding;
  const char *git_log_output_encoding;
@@@ -38,6 -37,7 +38,6 @@@ size_t packed_git_window_size = DEFAULT
  size_t packed_git_limit = DEFAULT_PACKED_GIT_LIMIT;
  size_t delta_base_cache_limit = 16 * 1024 * 1024;
  unsigned long big_file_threshold = 512 * 1024 * 1024;
 -const char *log_pack_access;
  const char *pager_program;
  int pager_use_color = 1;
  const char *editor_program;
@@@ -123,14 -123,13 +123,13 @@@ static char *expand_namespace(const cha
  
  static void setup_git_env(void)
  {
+       const char *gitfile;
        git_dir = getenv(GIT_DIR_ENVIRONMENT);
-       git_dir = git_dir ? xstrdup(git_dir) : NULL;
-       if (!git_dir) {
-               git_dir = read_gitfile(DEFAULT_GIT_DIR_ENVIRONMENT);
-               git_dir = git_dir ? xstrdup(git_dir) : NULL;
-       }
        if (!git_dir)
                git_dir = DEFAULT_GIT_DIR_ENVIRONMENT;
+       gitfile = read_gitfile(git_dir);
+       git_dir = xstrdup(gitfile ? gitfile : git_dir);
        git_object_dir = getenv(DB_ENVIRONMENT);
        if (!git_object_dir) {
                git_object_dir = xmalloc(strlen(git_dir) + 9);