Thread (44 messages) flat view 44 messages, 2 authors, 2021-10-16

Re: [PATCH 01/20] branch tests: test for errno propagating on failing read

From: Eric Sunshine <hidden>
Date: 2021-10-14 01:57:50

On Wed, Oct 13, 2021 at 8:07 PM Ævar Arnfjörð Bjarmason
[off-list ref] wrote:
quoted hunk ↗ jump to hunk
Add a test for "git branch" to cover the case where .git/refs is
symlinked. To check availability, refs_verify_refname_available() will
run refs_read_raw_ref() on each prefix, leading to a read() from
.git/refs (which is a directory).

It would probably be more robust to re-issue the lstat() as a normal
stat(), in which case, we would fall back to the directory case, but
for now let's just test for the existing behavior as-is. This test
covers a regression in a commit that only ever made it to "next", see
[1].

Signed-off-by: Han-Wen Nienhuys <redacted>
Signed-off-by: Ævar Arnfjörð Bjarmason <redacted>
---
diff --git a/t/t3200-branch.sh b/t/t3200-branch.sh
@@ -731,6 +731,26 @@ test_expect_success SYMLINKS 'git branch -m u v should fail when the reflog for
+test_expect_success SYMLINKS 'git branch -m with symlinked .git/refs' '
+       test_when_finished "rm -rf subdir" &&
+       git init subdir &&
+
+       (
+               cd subdir &&
+               for d in refs objects packed-refs
+               do
+                       rm -rf .git/$d &&
+                       ln -s ../../.git/$d .git/$d
+               done
+       ) &&
Amend the last line of the loop body:

    ln -s ../../.git/$d .git/$d || exit 1
+       git --git-dir subdir/.git/ branch rename-src &&
+       git rev-parse rename-src >expect &&
+       git --git-dir subdir/.git/ branch -m rename-src rename-dest &&
+       git rev-parse rename-dest >actual &&
+       test_cmp expect actual &&
+       git branch -D rename-dest
+'
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help