mirror of
				https://github.com/go-gitea/gitea
				synced 2025-11-04 13:28:25 +00:00 
			
		
		
		
	Backport #30878 by wxiaoguang Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
This commit is contained in:
		@@ -5,6 +5,7 @@ package repository
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"context"
 | 
			
		||||
	"fmt"
 | 
			
		||||
 | 
			
		||||
	"code.gitea.io/gitea/models/db"
 | 
			
		||||
	git_model "code.gitea.io/gitea/models/git"
 | 
			
		||||
@@ -36,6 +37,15 @@ func SyncRepoBranches(ctx context.Context, repoID, doerID int64) (int64, error)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func SyncRepoBranchesWithRepo(ctx context.Context, repo *repo_model.Repository, gitRepo *git.Repository, doerID int64) (int64, error) {
 | 
			
		||||
	objFmt, err := gitRepo.GetObjectFormat()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return 0, fmt.Errorf("GetObjectFormat: %w", err)
 | 
			
		||||
	}
 | 
			
		||||
	_, err = db.GetEngine(ctx).ID(repo.ID).Update(&repo_model.Repository{ObjectFormatName: objFmt.Name()})
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return 0, fmt.Errorf("UpdateRepository: %w", err)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	allBranches := container.Set[string]{}
 | 
			
		||||
	{
 | 
			
		||||
		branches, _, err := gitRepo.GetBranchNames(0, 0)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										31
									
								
								modules/repository/branch_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								modules/repository/branch_test.go
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,31 @@
 | 
			
		||||
// Copyright 2024 The Gitea Authors. All rights reserved.
 | 
			
		||||
// SPDX-License-Identifier: MIT
 | 
			
		||||
 | 
			
		||||
package repository
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"testing"
 | 
			
		||||
 | 
			
		||||
	"code.gitea.io/gitea/models/db"
 | 
			
		||||
	git_model "code.gitea.io/gitea/models/git"
 | 
			
		||||
	repo_model "code.gitea.io/gitea/models/repo"
 | 
			
		||||
	"code.gitea.io/gitea/models/unittest"
 | 
			
		||||
 | 
			
		||||
	"github.com/stretchr/testify/assert"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func TestSyncRepoBranches(t *testing.T) {
 | 
			
		||||
	assert.NoError(t, unittest.PrepareTestDatabase())
 | 
			
		||||
	_, err := db.GetEngine(db.DefaultContext).ID(1).Update(&repo_model.Repository{ObjectFormatName: "bad-fmt"})
 | 
			
		||||
	assert.NoError(t, db.TruncateBeans(db.DefaultContext, &git_model.Branch{}))
 | 
			
		||||
	assert.NoError(t, err)
 | 
			
		||||
	repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1})
 | 
			
		||||
	assert.Equal(t, "bad-fmt", repo.ObjectFormatName)
 | 
			
		||||
	_, err = SyncRepoBranches(db.DefaultContext, 1, 0)
 | 
			
		||||
	assert.NoError(t, err)
 | 
			
		||||
	repo = unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 1})
 | 
			
		||||
	assert.Equal(t, "sha1", repo.ObjectFormatName)
 | 
			
		||||
	branch, err := git_model.GetBranch(db.DefaultContext, 1, "master")
 | 
			
		||||
	assert.NoError(t, err)
 | 
			
		||||
	assert.EqualValues(t, "master", branch.Name)
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user