diff --git a/models/repo.go b/models/repo.go index cb040d5b34..22336d3c1a 100644 --- a/models/repo.go +++ b/models/repo.go @@ -662,6 +662,31 @@ func MigrateRepository(u *User, opts MigrateRepoOptions) (*Repository, error) { return repo, fmt.Errorf("Clone: %v", err) } + // Check if repository is empty. + _, stderr, err := com.ExecCmdDir(repoPath, "git", "log", "-1") + if err != nil { + if strings.Contains(stderr, "fatal: bad default revision 'HEAD'") { + repo.IsBare = true + } else { + return repo, fmt.Errorf("check bare: %v - %s", err, stderr) + } + } + + if !repo.IsBare { + // Try to get HEAD branch and set it as default branch. + gitRepo, err := git.OpenRepository(repoPath) + if err != nil { + return repo, fmt.Errorf("OpenRepository: %v", err) + } + headBranch, err := gitRepo.GetHEADBranch() + if err != nil { + return repo, fmt.Errorf("GetHEADBranch: %v", err) + } + if headBranch != nil { + repo.DefaultBranch = headBranch.Name + } + } + if opts.IsMirror { if _, err = x.InsertOne(&Mirror{ RepoID: repo.ID, @@ -696,31 +721,6 @@ func CleanUpMigrateInfo(repo *Repository, repoPath string) (*Repository, error) return repo, fmt.Errorf("save config file: %v", err) } - // Check if repository is empty. - _, stderr, err := com.ExecCmdDir(repoPath, "git", "log", "-1") - if err != nil { - if strings.Contains(stderr, "fatal: bad default revision 'HEAD'") { - repo.IsBare = true - } else { - return repo, fmt.Errorf("check bare: %v - %s", err, stderr) - } - } - - // Try to get HEAD branch and set it as default branch. - gitRepo, err := git.OpenRepository(repoPath) - if err != nil { - log.Error(4, "OpenRepository: %v", err) - return repo, nil - } - headBranch, err := gitRepo.GetHEADBranch() - if err != nil { - log.Error(4, "GetHEADBranch: %v", err) - return repo, nil - } - if headBranch != nil { - repo.DefaultBranch = headBranch.Name - } - return repo, UpdateRepository(repo, false) }