ref: 54baeb0ec3778b63a8088d0f5ef4ac9aa90d077d
parent: ae879b8cf5a87199802a33d6b15c76afafa8002b
author: Runxi Yu <me@runxiyu.org>
date: Sat Feb 21 06:25:41 EST 2026
testgit: Add ref-related functions
--- /dev/null
+++ b/internal/testgit/repo_refs.go
@@ -1,0 +1,38 @@
+package testgit
+
+import (
+ "strings"
+ "testing"
+
+ "codeberg.org/lindenii/furgit/objectid"
+)
+
+// UpdateRef updates a ref to point at id.
+func (testRepo *TestRepo) UpdateRef(tb testing.TB, name string, id objectid.ObjectID) {+ tb.Helper()
+ testRepo.Run(tb, "update-ref", name, id.String())
+}
+
+// SymbolicRef sets a symbolic reference target.
+func (testRepo *TestRepo) SymbolicRef(tb testing.TB, name, target string) {+ tb.Helper()
+ testRepo.Run(tb, "symbolic-ref", name, target)
+}
+
+// PackRefs runs git pack-refs with args.
+func (testRepo *TestRepo) PackRefs(tb testing.TB, args ...string) {+ tb.Helper()
+ cmd := append([]string{"pack-refs"}, args...)+ testRepo.Run(tb, cmd...)
+}
+
+// ShowRef returns lines from git show-ref output.
+func (testRepo *TestRepo) ShowRef(tb testing.TB, args ...string) []string {+ tb.Helper()
+ cmd := append([]string{"show-ref"}, args...)+ out := testRepo.Run(tb, cmd...)
+ if strings.TrimSpace(out) == "" {+ return nil
+ }
+ return strings.Split(strings.TrimSpace(out), "\n")
+}
--
⑨