]> git.ipfire.org Git - thirdparty/git.git/commitdiff
t0001: plug test gaps for git-init(1) with GIT_OBJECT_DIRECTORY
authorPatrick Steinhardt <ps@pks.im>
Tue, 26 May 2026 05:56:56 +0000 (07:56 +0200)
committerJunio C Hamano <gitster@pobox.com>
Tue, 26 May 2026 11:07:02 +0000 (20:07 +0900)
In subsequent commits we'll rework how we set up the repository. This is
a somewhat intricate and thus fragile sequence; there's many things that
can go subtly wrong, and there are lots of interesting interactions that
one can discover.

One such discovered edge case was the interaction between git-init(1)
and the "GIT_OBJECT_DIRECTORY" environment variable. When set, the
behaviour is that the object directory should be created at the path
that the variable points to. This behaviour is documented as such in
its man page:

  If the object storage directory is specified via the
  GIT_OBJECT_DIRECTORY environment variable then the sha1 directories
  are created underneath; otherwise, the default $GIT_DIR/objects
  directory is used.

Curiously enough though we don't seem to have any tests that exercise
this directly, and thus a subsequent commit inadvertently would have
broken this expectation.

Plug this test gap.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t0001-init.sh

index e4d32bb4d259f66523180e9bf0a4befb2c8cb011..e89feca544d29c5cc3ac9c2e6c6cd87532cc5fc1 100755 (executable)
@@ -980,4 +980,14 @@ test_expect_success 're-init reads matching includeIf.onbranch' '
        test_cmp expect err
 '
 
+test_expect_success 'init honors GIT_OBJECT_DIRECTORY' '
+       test_when_finished "rm -rf init-objdir custom-odb" &&
+       mkdir custom-odb &&
+       env GIT_OBJECT_DIRECTORY="$(pwd)/custom-odb" \
+               git init init-objdir &&
+       test_path_is_missing init-objdir/.git/objects/pack &&
+       test_path_is_dir custom-odb/pack &&
+       test_path_is_dir custom-odb/info
+'
+
 test_done