diff --git a/pkg/git/init.go b/pkg/git/init.go index 89454692..30ffa1ae 100644 --- a/pkg/git/init.go +++ b/pkg/git/init.go @@ -48,13 +48,12 @@ func Init(repoPath string, commit bool, gitName, gitEmail string) error { return nil } +// Set the default branch for the passed repo as "main" func SwitchToMain(repo *git.Repository) error { - // Create and set the 'main' branch as default ref := plumbing.NewSymbolicReference(plumbing.HEAD, plumbing.ReferenceName("refs/heads/main")) if err := repo.Storer.SetReference(ref); err != nil { return fmt.Errorf("set reference: %s", err) } - // Update the repository configuration cfg, err := repo.Config() if err != nil { return fmt.Errorf("repo config: %s", err) diff --git a/pkg/git/init_test.go b/pkg/git/init_test.go index ff0338a8..29fcb057 100644 --- a/pkg/git/init_test.go +++ b/pkg/git/init_test.go @@ -8,21 +8,17 @@ import ( "github.com/go-git/go-git/v5/storage/memory" ) +// Verify that SwitchToMain has the desired effect on the repo func TestSwitchToMain(t *testing.T) { - // Create a new in-memory repository storage := memory.NewStorage() repo, err := git.Init(storage, nil) if err != nil { t.Fatalf("failed to create in-memory repository: %v", err) } - - // Call the function under test err = SwitchToMain(repo) if err != nil { t.Fatalf("SwitchToMain failed: %v", err) } - - // Verify that HEAD points to the 'main' branch ref, err := repo.Reference(plumbing.HEAD, false) if err != nil { t.Fatalf("failed to get HEAD reference: %v", err) @@ -30,8 +26,6 @@ func TestSwitchToMain(t *testing.T) { if ref.Target().String() != "refs/heads/main" { t.Errorf("expected HEAD to point to 'refs/heads/main', got %s", ref.Target().String()) } - - // Verify that the default branch is set to 'main' in the config cfg, err := repo.Config() if err != nil { t.Fatalf("failed to get repository config: %v", err)