From d1562bfc341ea0b53d10ca194c5a59499b501745 Mon Sep 17 00:00:00 2001 From: xenofem <45297511+xenofem@users.noreply.github.com> Date: Sun, 5 Jul 2020 11:25:46 -0400 Subject: [PATCH] properly set symbolic-ref HEAD when a repo is created with a non-master default branch (#12135) This fixes an issue I noticed with #10803: when you create a repo with a non-master default branch, gitea doesn't change the remote ref HEAD, so it still points at refs/heads/master. As a result, cloning my repos gives me error messages and doesn't check out the desired default branch, so I need to manually check it out after cloning. --- modules/repository/init.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/modules/repository/init.go b/modules/repository/init.go index 8f3f2f0590..5bdfa7490d 100644 --- a/modules/repository/init.go +++ b/modules/repository/init.go @@ -214,6 +214,13 @@ func initRepository(ctx models.DBContext, repoPath string, u *models.User, repo repo.DefaultBranch = "master" if len(opts.DefaultBranch) > 0 { repo.DefaultBranch = opts.DefaultBranch + gitRepo, err := git.OpenRepository(repo.RepoPath()) + if err != nil { + return fmt.Errorf("openRepository: %v", err) + } + if err = gitRepo.SetDefaultBranch(repo.DefaultBranch); err != nil { + return fmt.Errorf("setDefaultBranch: %v", err) + } } if err = models.UpdateRepositoryCtx(ctx, repo, false); err != nil {