From 10a2a904d7938e26f6d64fe9a9788185b802d4df Mon Sep 17 00:00:00 2001 From: SagePtr Date: Thu, 13 Sep 2018 05:40:35 +0200 Subject: Fix bug when repo remained bare if multiple branches pushed (#4923) --- models/action.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/models/action.go b/models/action.go index f3f89d143f..9050be22a6 100644 --- a/models/action.go +++ b/models/action.go @@ -537,12 +537,14 @@ func CommitRepoAction(opts CommitRepoActionOptions) error { } refName := git.RefEndName(opts.RefFullName) - if repo.IsBare && refName != repo.DefaultBranch { + + // Change default branch and bare status only if pushed ref is non-empty branch. + if repo.IsBare && opts.NewCommitID != git.EmptySHA && strings.HasPrefix(opts.RefFullName, git.BranchPrefix) { repo.DefaultBranch = refName + repo.IsBare = false } // Change repository bare status and update last updated time. - repo.IsBare = repo.IsBare && opts.Commits.Len <= 0 if err = UpdateRepository(repo, false); err != nil { return fmt.Errorf("UpdateRepository: %v", err) } -- cgit v1.2.3