summaryrefslogtreecommitdiffstats
path: root/modules
diff options
context:
space:
mode:
authorxenofem <45297511+xenofem@users.noreply.github.com>2020-07-05 11:25:46 -0400
committerGitHub <noreply@github.com>2020-07-05 16:25:46 +0100
commitd1562bfc341ea0b53d10ca194c5a59499b501745 (patch)
treebee7ec208483d5fe17067e740f9f919cdb449cd0 /modules
parent15d3aa7b95e37cc2e9a06208089169cbe04383b5 (diff)
downloadgitea-d1562bfc341ea0b53d10ca194c5a59499b501745.tar.gz
gitea-d1562bfc341ea0b53d10ca194c5a59499b501745.zip
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.
Diffstat (limited to 'modules')
-rw-r--r--modules/repository/init.go7
1 files changed, 7 insertions, 0 deletions
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 {