diff options
author | Eric Wong <e@80x24.org> | 2023-11-28 14:56:25 +0000 |
---|---|---|
committer | Eric Wong <e@80x24.org> | 2023-11-29 02:13:25 +0000 |
commit | beb39f037ee439c02f1c4a8e7b1e19ce7acca100 (patch) | |
tree | a8aafb83115adeebe1713e43ac31fe3d73421f8c /t | |
parent | 56f844218d0a7ed2e10952715902572c28313517 (diff) | |
download | public-inbox-beb39f037ee439c02f1c4a8e7b1e19ce7acca100.tar.gz |
Absolute pathnames of git coderepos are stored in the cindex, but we should favor paths relative to $ENV{PWD} since it respects symlinks in the heirarchy. Respecting symlinks makes it easier to migrate cindex to new storage as old storage wears out and to relocate the storage device onto another machine.
Diffstat (limited to 't')
-rw-r--r-- | t/admin.t | 12 |
1 files changed, 12 insertions, 0 deletions
@@ -6,6 +6,7 @@ use v5.10.1; use PublicInbox::TestCommon; use PublicInbox::Import; use_ok 'PublicInbox::Admin'; +use autodie; my $v1 = create_inbox 'v1', -no_gc => 1, sub {}; my ($tmpdir, $for_destroy) = tmpdir(); my $git_dir = $v1->{inboxdir}; @@ -23,6 +24,17 @@ SKIP: { }; *resolve_inboxdir = \&PublicInbox::Admin::resolve_inboxdir; +*resolve_git_dir = \&PublicInbox::Admin::resolve_git_dir; + +{ + symlink $git_dir, my $sym = "$tmpdir/v1-symlink.git"; + for my $d ('') { # TODO: should work inside $sym/objects + local $ENV{PWD} = $sym.$d; + chdir $sym.$d; + is resolve_git_dir('.'), $sym, + "symlink preserved from {SYMLINKDIR}.git$d"; + } +} # v1 is(resolve_inboxdir($git_dir), $git_dir, 'top-level GIT_DIR resolved'); |