shithub: furgit

Download patch

ref: dc7c74b9b0c6fe66bad9119b2d29e00f70a7cd3b
parent: b46eba214daa9a6ede179ed543033b0f3485ec2e
author: Runxi Yu <runxiyu@umich.edu>
date: Wed Mar 11 22:12:17 EDT 2026

refstore: More fixes on ResolveToDetached

--- a/receivepack/int_test.go
+++ b/receivepack/int_test.go
@@ -393,7 +393,7 @@
 
 		resolved, err := reopened.Refs().ResolveToDetached("refs/heads/main")
 		if err != nil {
-			t.Fatalf("ResolveFully(main): %v", err)
+			t.Fatalf("ResolveToDetached(main): %v", err)
 		}
 
 		if resolved.ID != commitID {
@@ -697,7 +697,7 @@
 
 		resolved, err := repo.Refs().ResolveToDetached("refs/heads/main")
 		if err != nil {
-			t.Fatalf("ResolveFully(main): %v", err)
+			t.Fatalf("ResolveToDetached(main): %v", err)
 		}
 
 		if resolved.ID != currentID {
@@ -788,7 +788,7 @@
 
 		resolved, err := receiver.OpenRepository(t).Refs().ResolveToDetached("refs/heads/main")
 		if err != nil {
-			t.Fatalf("ResolveFully(main): %v", err)
+			t.Fatalf("ResolveToDetached(main): %v", err)
 		}
 
 		if resolved.ID != commitID {
@@ -838,7 +838,7 @@
 
 		resolved, err := receiver.OpenRepository(t).Refs().ResolveToDetached("refs/heads/topic")
 		if err != nil {
-			t.Fatalf("ResolveFully(topic): %v", err)
+			t.Fatalf("ResolveToDetached(topic): %v", err)
 		}
 
 		if resolved.ID != commitID {
@@ -939,7 +939,7 @@
 
 		resolved, err := receiver.OpenRepository(t).Refs().ResolveToDetached("refs/heads/main")
 		if err != nil {
-			t.Fatalf("ResolveFully(main): %v", err)
+			t.Fatalf("ResolveToDetached(main): %v", err)
 		}
 
 		if resolved.ID != currentID {
--- a/refstore/chain/resolve.go
+++ b/refstore/chain/resolve.go
@@ -32,9 +32,9 @@
 	return nil, refstore.ErrReferenceNotFound
 }
 
-// ResolveFully resolves symbolic references through Resolve until detached.
+// ResolveToDetached resolves symbolic references through Resolve until detached.
 //
-// It intentionally does not call backend ResolveFully. This allows symbolic
+// It intentionally does not call backend ResolveToDetached. This allows symbolic
 // references to cross backends in the chain.
 func (chain *Chain) ResolveToDetached(name string) (ref.Detached, error) {
 	cur := name
--- a/refstore/files/packed_delete_test.go
+++ b/refstore/files/packed_delete_test.go
@@ -55,11 +55,11 @@
 
 			got, err := store.ResolveToDetached(prefix + "/foo")
 			if err != nil {
-				t.Fatalf("ResolveFully(lock held): %v", err)
+				t.Fatalf("ResolveToDetached(lock held): %v", err)
 			}
 
 			if got.ID != looseID {
-				t.Fatalf("ResolveFully(lock held) = %s, want %s", got.ID, looseID)
+				t.Fatalf("ResolveToDetached(lock held) = %s, want %s", got.ID, looseID)
 			}
 
 			gitRoot := testRepo.OpenGitRoot(t)
@@ -108,11 +108,11 @@
 
 			got, err := store.ResolveToDetached(prefix + "/foo")
 			if err != nil {
-				t.Fatalf("ResolveFully(new exists): %v", err)
+				t.Fatalf("ResolveToDetached(new exists): %v", err)
 			}
 
 			if got.ID != looseID {
-				t.Fatalf("ResolveFully(new exists) = %s, want %s", got.ID, looseID)
+				t.Fatalf("ResolveToDetached(new exists) = %s, want %s", got.ID, looseID)
 			}
 		})
 	})
@@ -184,11 +184,11 @@
 
 		got, err := store.ResolveToDetached(name)
 		if err != nil {
-			t.Fatalf("ResolveFully: %v", err)
+			t.Fatalf("ResolveToDetached: %v", err)
 		}
 
 		if got.ID != commitID {
-			t.Fatalf("ResolveFully = %s, want %s", got.ID, commitID)
+			t.Fatalf("ResolveToDetached = %s, want %s", got.ID, commitID)
 		}
 
 		actual := make([]string, 0)
@@ -206,7 +206,7 @@
 		for _, name := range actual {
 			refValue, resolveErr := store.ResolveToDetached(name)
 			if resolveErr != nil {
-				t.Fatalf("ResolveFully(%q): %v", name, resolveErr)
+				t.Fatalf("ResolveToDetached(%q): %v", name, resolveErr)
 			}
 
 			fullActual = append(fullActual, refValue.ID.String()+" "+name)
@@ -264,11 +264,11 @@
 
 		got, err := store.ResolveToDetached(prefix + "/foo")
 		if err != nil {
-			t.Fatalf("ResolveFully while lock held: %v", err)
+			t.Fatalf("ResolveToDetached while lock held: %v", err)
 		}
 
 		if got.ID != looseID {
-			t.Fatalf("ResolveFully while lock held = %s, want %s", got.ID, looseID)
+			t.Fatalf("ResolveToDetached while lock held = %s, want %s", got.ID, looseID)
 		}
 
 		testRepo.Remove(t, "packed-refs.lock")
--- a/refstore/files/read_resolve_fully.go
+++ b/refstore/files/read_resolve_fully.go
@@ -7,7 +7,7 @@
 	"codeberg.org/lindenii/furgit/ref"
 )
 
-// ResolveFully resolves symbolic references through the visible files store
+// ResolveToDetached resolves symbolic references through the visible files store
 // namespace until one detached reference is reached.
 func (store *Store) ResolveToDetached(name string) (ref.Detached, error) {
 	cur := name
--- a/refstore/files/resolve_list_test.go
+++ b/refstore/files/resolve_list_test.go
@@ -55,11 +55,11 @@
 
 		fullHead, err := store.ResolveToDetached("HEAD")
 		if err != nil {
-			t.Fatalf("ResolveFully(HEAD): %v", err)
+			t.Fatalf("ResolveToDetached(HEAD): %v", err)
 		}
 
 		if fullHead.ID != looseID {
-			t.Fatalf("ResolveFully(HEAD) = %s, want %s", fullHead.ID, looseID)
+			t.Fatalf("ResolveToDetached(HEAD) = %s, want %s", fullHead.ID, looseID)
 		}
 
 		allRefs, err := store.List("")
@@ -98,20 +98,20 @@
 
 		got, err := store.ResolveToDetached("refs/heads/no-lf")
 		if err != nil {
-			t.Fatalf("ResolveFully(no-lf): %v", err)
+			t.Fatalf("ResolveToDetached(no-lf): %v", err)
 		}
 
 		if got.ID != oid {
-			t.Fatalf("ResolveFully(no-lf) = %s, want %s", got.ID, oid)
+			t.Fatalf("ResolveToDetached(no-lf) = %s, want %s", got.ID, oid)
 		}
 
 		got, err = store.ResolveToDetached("refs/heads/trailing-ws")
 		if err != nil {
-			t.Fatalf("ResolveFully(trailing-ws): %v", err)
+			t.Fatalf("ResolveToDetached(trailing-ws): %v", err)
 		}
 
 		if got.ID != oid {
-			t.Fatalf("ResolveFully(trailing-ws) = %s, want %s", got.ID, oid)
+			t.Fatalf("ResolveToDetached(trailing-ws) = %s, want %s", got.ID, oid)
 		}
 
 		_, err = store.Resolve("refs/heads/leading-ws")
@@ -219,11 +219,11 @@
 
 			got, err := store.ResolveToDetached("refs/heads/main")
 			if err != nil {
-				t.Fatalf("ResolveFully(main): %v", err)
+				t.Fatalf("ResolveToDetached(main): %v", err)
 			}
 
 			if got.ID == oneID {
-				t.Fatalf("ResolveFully(main) unexpectedly returned stale packed id %s", oneID)
+				t.Fatalf("ResolveToDetached(main) unexpectedly returned stale packed id %s", oneID)
 			}
 
 			tagRef, err := store.Resolve("refs/tags/v1.0")
--- a/refstore/files/transaction_dirs_test.go
+++ b/refstore/files/transaction_dirs_test.go
@@ -59,7 +59,7 @@
 
 		got, err := store.ResolveToDetached("refs/e-update/foo")
 		if err != nil {
-			t.Fatalf("ResolveFully(updated foo): %v", err)
+			t.Fatalf("ResolveToDetached(updated foo): %v", err)
 		}
 
 		if got.ID != newID {
@@ -86,7 +86,7 @@
 
 		got, err = store.ResolveToDetached("refs/e-create/foo")
 		if err != nil {
-			t.Fatalf("ResolveFully(created foo): %v", err)
+			t.Fatalf("ResolveToDetached(created foo): %v", err)
 		}
 
 		if got.ID != oldID {
--- a/refstore/files/transaction_pseudoref_test.go
+++ b/refstore/files/transaction_pseudoref_test.go
@@ -37,7 +37,7 @@
 
 		got, err := store.ResolveToDetached("PSEUDOREF")
 		if err != nil {
-			t.Fatalf("ResolveFully(PSEUDOREF): %v", err)
+			t.Fatalf("ResolveToDetached(PSEUDOREF): %v", err)
 		}
 
 		if got.ID != aID {
@@ -61,7 +61,7 @@
 
 		got, err = store.ResolveToDetached("PSEUDOREF")
 		if err != nil {
-			t.Fatalf("ResolveFully(PSEUDOREF) after update: %v", err)
+			t.Fatalf("ResolveToDetached(PSEUDOREF) after update: %v", err)
 		}
 
 		if got.ID != bID {
--- a/refstore/files/transaction_symbolic_test.go
+++ b/refstore/files/transaction_symbolic_test.go
@@ -56,7 +56,7 @@
 
 		got, err := store.ResolveToDetached("refs/heads/main")
 		if err != nil {
-			t.Fatalf("ResolveFully(main): %v", err)
+			t.Fatalf("ResolveToDetached(main): %v", err)
 		}
 
 		if got.ID != mainID {
--- a/refstore/files/transaction_update_test.go
+++ b/refstore/files/transaction_update_test.go
@@ -40,11 +40,11 @@
 
 		got, err := store.ResolveToDetached("refs/heads/main")
 		if err != nil {
-			t.Fatalf("ResolveFully(main): %v", err)
+			t.Fatalf("ResolveToDetached(main): %v", err)
 		}
 
 		if got.ID != newID {
-			t.Fatalf("ResolveFully(main) = %s, want %s", got.ID, newID)
+			t.Fatalf("ResolveToDetached(main) = %s, want %s", got.ID, newID)
 		}
 
 		packedRefs := string(testRepo.ReadFile(t, "packed-refs"))
@@ -139,7 +139,7 @@
 
 		mainRef, err := store.ResolveToDetached("refs/heads/main")
 		if err != nil {
-			t.Fatalf("ResolveFully(main): %v", err)
+			t.Fatalf("ResolveToDetached(main): %v", err)
 		}
 
 		if mainRef.ID != secondID {
--- a/refstore/files/worktree_test.go
+++ b/refstore/files/worktree_test.go
@@ -52,56 +52,56 @@
 
 		got, err := mainStore.ResolveToDetached("refs/worktree/foo")
 		if err != nil {
-			t.Fatalf("ResolveFully(main refs/worktree/foo): %v", err)
+			t.Fatalf("ResolveToDetached(main refs/worktree/foo): %v", err)
 		}
 
 		if got.ID != initialID {
-			t.Fatalf("ResolveFully(main refs/worktree/foo) = %s, want %s", got.ID, initialID)
+			t.Fatalf("ResolveToDetached(main refs/worktree/foo) = %s, want %s", got.ID, initialID)
 		}
 
 		got, err = wt1Store.ResolveToDetached("refs/worktree/foo")
 		if err != nil {
-			t.Fatalf("ResolveFully(wt1 refs/worktree/foo): %v", err)
+			t.Fatalf("ResolveToDetached(wt1 refs/worktree/foo): %v", err)
 		}
 
 		if got.ID != wt1ID {
-			t.Fatalf("ResolveFully(wt1 refs/worktree/foo) = %s, want %s", got.ID, wt1ID)
+			t.Fatalf("ResolveToDetached(wt1 refs/worktree/foo) = %s, want %s", got.ID, wt1ID)
 		}
 
 		got, err = wt2Store.ResolveToDetached("refs/worktree/foo")
 		if err != nil {
-			t.Fatalf("ResolveFully(wt2 refs/worktree/foo): %v", err)
+			t.Fatalf("ResolveToDetached(wt2 refs/worktree/foo): %v", err)
 		}
 
 		if got.ID != wt2ID {
-			t.Fatalf("ResolveFully(wt2 refs/worktree/foo) = %s, want %s", got.ID, wt2ID)
+			t.Fatalf("ResolveToDetached(wt2 refs/worktree/foo) = %s, want %s", got.ID, wt2ID)
 		}
 
 		got, err = wt1Store.ResolveToDetached("main-worktree/HEAD")
 		if err != nil {
-			t.Fatalf("ResolveFully(wt1 main-worktree/HEAD): %v", err)
+			t.Fatalf("ResolveToDetached(wt1 main-worktree/HEAD): %v", err)
 		}
 
 		if got.ID != initialID {
-			t.Fatalf("ResolveFully(wt1 main-worktree/HEAD) = %s, want %s", got.ID, initialID)
+			t.Fatalf("ResolveToDetached(wt1 main-worktree/HEAD) = %s, want %s", got.ID, initialID)
 		}
 
 		got, err = mainStore.ResolveToDetached("worktrees/wt1/HEAD")
 		if err != nil {
-			t.Fatalf("ResolveFully(main worktrees/wt1/HEAD): %v", err)
+			t.Fatalf("ResolveToDetached(main worktrees/wt1/HEAD): %v", err)
 		}
 
 		if got.ID != wt1ID {
-			t.Fatalf("ResolveFully(main worktrees/wt1/HEAD) = %s, want %s", got.ID, wt1ID)
+			t.Fatalf("ResolveToDetached(main worktrees/wt1/HEAD) = %s, want %s", got.ID, wt1ID)
 		}
 
 		got, err = wt2Store.ResolveToDetached("worktrees/wt1/HEAD")
 		if err != nil {
-			t.Fatalf("ResolveFully(wt2 worktrees/wt1/HEAD): %v", err)
+			t.Fatalf("ResolveToDetached(wt2 worktrees/wt1/HEAD): %v", err)
 		}
 
 		if got.ID != wt1ID {
-			t.Fatalf("ResolveFully(wt2 worktrees/wt1/HEAD) = %s, want %s", got.ID, wt1ID)
+			t.Fatalf("ResolveToDetached(wt2 worktrees/wt1/HEAD) = %s, want %s", got.ID, wt1ID)
 		}
 
 		assertListMatchesGitForEachRef(t, testRepo.Run(t, "for-each-ref", "--format=%(refname)"), mainStore)
@@ -166,20 +166,20 @@
 
 		got, err := mainStore.ResolveToDetached("refs/bisect/main-only")
 		if err != nil {
-			t.Fatalf("ResolveFully(main-only): %v", err)
+			t.Fatalf("ResolveToDetached(main-only): %v", err)
 		}
 
 		if got.ID != mainID {
-			t.Fatalf("ResolveFully(main-only) = %s, want %s", got.ID, mainID)
+			t.Fatalf("ResolveToDetached(main-only) = %s, want %s", got.ID, mainID)
 		}
 
 		got, err = wt1Store.ResolveToDetached("refs/bisect/wt-only")
 		if err != nil {
-			t.Fatalf("ResolveFully(wt-only): %v", err)
+			t.Fatalf("ResolveToDetached(wt-only): %v", err)
 		}
 
 		if got.ID != wt1ID {
-			t.Fatalf("ResolveFully(wt-only) = %s, want %s", got.ID, wt1ID)
+			t.Fatalf("ResolveToDetached(wt-only) = %s, want %s", got.ID, wt1ID)
 		}
 
 		_, err = mainStore.Resolve("refs/bisect/wt-only")
--- a/refstore/reading.go
+++ b/refstore/reading.go
@@ -11,13 +11,13 @@
 	// If the reference does not exist, implementations should return
 	// ErrReferenceNotFound.
 	Resolve(name string) (ref.Ref, error)
-	// ResolveFully resolves a reference name to a detached object ID.
+	// ResolveToDetached resolves a reference name to a detached object ID.
 	//
 	// Implementations may use backend-local lookup semantics for symbolic hops.
 	// Callers that need cross-backend symbolic resolution (for example in a
 	// chain of stores) should prefer repeatedly calling Resolve.
 	//
-	// ResolveFully resolves symbolic references only. It does not imply peeling
+	// ResolveToDetached resolves symbolic references only. It does not imply peeling
 	// annotated tag objects.
 	ResolveToDetached(name string) (ref.Detached, error)
 	// List returns references matching pattern.
--- a/repository/refs_test.go
+++ b/repository/refs_test.go
@@ -58,11 +58,11 @@
 
 		head, err := repo.Refs().ResolveToDetached("HEAD")
 		if err != nil {
-			t.Fatalf("ResolveFully(HEAD): %v", err)
+			t.Fatalf("ResolveToDetached(HEAD): %v", err)
 		}
 
 		if head.ID != commitID {
-			t.Fatalf("ResolveFully(HEAD) id = %s, want %s", head.ID, commitID)
+			t.Fatalf("ResolveToDetached(HEAD) id = %s, want %s", head.ID, commitID)
 		}
 	})
 }
@@ -74,7 +74,7 @@
 		repoHarness := newRepoForRefs(t, algo, "files")
 		commitID := writeMainAndHead(t, repoHarness)
 		repoHarness.PackRefs(t, "--all", "--prune")
-		assertResolveFully(t, repoHarness, "refs/heads/main", commitID)
+		assertResolveToDetached(t, repoHarness, "refs/heads/main", commitID)
 	})
 }
 
@@ -97,7 +97,7 @@
 	return commitID
 }
 
-func assertResolveFully(t *testing.T, repoHarness *testgit.TestRepo, name string, want objectid.ObjectID) {
+func assertResolveToDetached(t *testing.T, repoHarness *testgit.TestRepo, name string, want objectid.ObjectID) {
 	t.Helper()
 
 	repo := repoHarness.OpenRepository(t)
@@ -104,10 +104,10 @@
 
 	resolved, err := repo.Refs().ResolveToDetached(name)
 	if err != nil {
-		t.Fatalf("ResolveFully(%s): %v", name, err)
+		t.Fatalf("ResolveToDetached(%s): %v", name, err)
 	}
 
 	if resolved.ID != want {
-		t.Fatalf("ResolveFully(%s) id = %s, want %s", name, resolved.ID, want)
+		t.Fatalf("ResolveToDetached(%s) id = %s, want %s", name, resolved.ID, want)
 	}
 }
--