Merge branch 'jn/maint-setup-fix'
authorJunio C Hamano <gitster@pobox.com>
Tue, 31 Aug 2010 23:23:19 +0000 (16:23 -0700)
committerJunio C Hamano <gitster@pobox.com>
Tue, 31 Aug 2010 23:23:19 +0000 (16:23 -0700)
* jn/maint-setup-fix:
  setup: split off a function to handle ordinary .git directories
  Revert "rehabilitate 'git index-pack' inside the object store"
  setup: do not forget working dir from subdir of gitdir
  t4111 (apply): refresh index before applying patches to it
  setup: split off get_device_or_die helper
  setup: split off a function to handle hitting ceiling in repo search
  setup: split off code to handle stumbling upon a repository
  setup: split off a function to checks working dir for .git file
  setup: split off $GIT_DIR-set case from setup_git_directory_gently
  tests: try git apply from subdir of toplevel
  t1501 (rev-parse): clarify

Conflicts:
builtin/index-pack.c

1  2 
builtin/index-pack.c

index fad76bf7a84a6a103de20732752119d5245e9638,89a1f12d615bb997bd992abba61da712def3ea44..96333d48cd49fcfba5707530440f6f6848a2acf5
@@@ -884,27 -885,10 +885,12 @@@ int cmd_index_pack(int argc, const cha
        if (argc == 2 && !strcmp(argv[1], "-h"))
                usage(index_pack_usage);
  
-       /*
-        * We wish to read the repository's config file if any, and
-        * for that it is necessary to call setup_git_directory_gently().
-        * However if the cwd was inside .git/objects/pack/ then we need
-        * to go back there or all the pack name arguments will be wrong.
-        * And in that case we cannot rely on any prefix returned by
-        * setup_git_directory_gently() either.
-        */
-       {
-               char cwd[PATH_MAX+1];
-               int nongit;
-               if (!getcwd(cwd, sizeof(cwd)-1))
-                       die("Unable to get current working directory");
-               setup_git_directory_gently(&nongit);
-               git_config(git_index_pack_config, NULL);
-               if (chdir(cwd))
-                       die("Cannot come back to cwd");
-       }
 +      read_replace_refs = 0;
 +
+       prefix = setup_git_directory_gently(&nongit);
+       git_config(git_index_pack_config, NULL);
+       if (prefix && chdir(prefix))
+               die("Cannot come back to cwd");
  
        for (i = 1; i < argc; i++) {
                const char *arg = argv[i];