mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	Add a simple way to rename branch like gh (#15870)
- Update default branch if needed - Update protected branch if needed - Update all not merged pull request base branch name - Rename git branch - Record this rename work and auto redirect for old branch on ui Signed-off-by: a1012112796 <1012112796@qq.com> Co-authored-by: delvh <dev.lh@web.de>
This commit is contained in:
		@@ -79,3 +79,52 @@ func getDeletedBranch(t *testing.T, branch *DeletedBranch) *DeletedBranch {
 | 
			
		||||
 | 
			
		||||
	return deletedBranch
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func TestFindRenamedBranch(t *testing.T) {
 | 
			
		||||
	assert.NoError(t, db.PrepareTestDatabase())
 | 
			
		||||
	branch, exist, err := FindRenamedBranch(1, "dev")
 | 
			
		||||
	assert.NoError(t, err)
 | 
			
		||||
	assert.Equal(t, true, exist)
 | 
			
		||||
	assert.Equal(t, "master", branch.To)
 | 
			
		||||
 | 
			
		||||
	_, exist, err = FindRenamedBranch(1, "unknow")
 | 
			
		||||
	assert.NoError(t, err)
 | 
			
		||||
	assert.Equal(t, false, exist)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func TestRenameBranch(t *testing.T) {
 | 
			
		||||
	assert.NoError(t, db.PrepareTestDatabase())
 | 
			
		||||
	repo1 := db.AssertExistsAndLoadBean(t, &Repository{ID: 1}).(*Repository)
 | 
			
		||||
	_isDefault := false
 | 
			
		||||
 | 
			
		||||
	err := UpdateProtectBranch(repo1, &ProtectedBranch{
 | 
			
		||||
		RepoID:     repo1.ID,
 | 
			
		||||
		BranchName: "master",
 | 
			
		||||
	}, WhitelistOptions{})
 | 
			
		||||
	assert.NoError(t, err)
 | 
			
		||||
 | 
			
		||||
	assert.NoError(t, repo1.RenameBranch("master", "main", func(isDefault bool) error {
 | 
			
		||||
		_isDefault = isDefault
 | 
			
		||||
		return nil
 | 
			
		||||
	}))
 | 
			
		||||
 | 
			
		||||
	assert.Equal(t, true, _isDefault)
 | 
			
		||||
	repo1 = db.AssertExistsAndLoadBean(t, &Repository{ID: 1}).(*Repository)
 | 
			
		||||
	assert.Equal(t, "main", repo1.DefaultBranch)
 | 
			
		||||
 | 
			
		||||
	pull := db.AssertExistsAndLoadBean(t, &PullRequest{ID: 1}).(*PullRequest) // merged
 | 
			
		||||
	assert.Equal(t, "master", pull.BaseBranch)
 | 
			
		||||
 | 
			
		||||
	pull = db.AssertExistsAndLoadBean(t, &PullRequest{ID: 2}).(*PullRequest) // open
 | 
			
		||||
	assert.Equal(t, "main", pull.BaseBranch)
 | 
			
		||||
 | 
			
		||||
	renamedBranch := db.AssertExistsAndLoadBean(t, &RenamedBranch{ID: 2}).(*RenamedBranch)
 | 
			
		||||
	assert.Equal(t, "master", renamedBranch.From)
 | 
			
		||||
	assert.Equal(t, "main", renamedBranch.To)
 | 
			
		||||
	assert.Equal(t, int64(1), renamedBranch.RepoID)
 | 
			
		||||
 | 
			
		||||
	db.AssertExistsAndLoadBean(t, &ProtectedBranch{
 | 
			
		||||
		RepoID:     repo1.ID,
 | 
			
		||||
		BranchName: "main",
 | 
			
		||||
	})
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user