mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 16:40:24 +08:00 
			
		
		
		
	Abort merge if head has been updated before pressing merge (#18032)
* Abort merge if head has been updated before pressing merge It is possible that a PR head may be pushed to between the merge page being shown and the merge button being pressed. Pass the current expected head in as a parameter and cancel the merge if it has changed. Fix #18028 Signed-off-by: Andrew Thornton <art27@cantab.net> * adjust swagger Signed-off-by: Andrew Thornton <art27@cantab.net> * fix test Signed-off-by: Andrew Thornton <art27@cantab.net> * placate lint Signed-off-by: Andrew Thornton <art27@cantab.net>
This commit is contained in:
		@@ -241,11 +241,11 @@ func TestCantMergeConflict(t *testing.T) {
 | 
			
		||||
		gitRepo, err := git.OpenRepository(repo_model.RepoPath(user1.Name, repo1.Name))
 | 
			
		||||
		assert.NoError(t, err)
 | 
			
		||||
 | 
			
		||||
		err = pull.Merge(pr, user1, gitRepo, repo_model.MergeStyleMerge, "CONFLICT")
 | 
			
		||||
		err = pull.Merge(pr, user1, gitRepo, repo_model.MergeStyleMerge, "", "CONFLICT")
 | 
			
		||||
		assert.Error(t, err, "Merge should return an error due to conflict")
 | 
			
		||||
		assert.True(t, models.IsErrMergeConflicts(err), "Merge error is not a conflict error")
 | 
			
		||||
 | 
			
		||||
		err = pull.Merge(pr, user1, gitRepo, repo_model.MergeStyleRebase, "CONFLICT")
 | 
			
		||||
		err = pull.Merge(pr, user1, gitRepo, repo_model.MergeStyleRebase, "", "CONFLICT")
 | 
			
		||||
		assert.Error(t, err, "Merge should return an error due to conflict")
 | 
			
		||||
		assert.True(t, models.IsErrRebaseConflicts(err), "Merge error is not a conflict error")
 | 
			
		||||
		gitRepo.Close()
 | 
			
		||||
@@ -329,7 +329,7 @@ func TestCantMergeUnrelated(t *testing.T) {
 | 
			
		||||
			BaseBranch: "base",
 | 
			
		||||
		}).(*models.PullRequest)
 | 
			
		||||
 | 
			
		||||
		err = pull.Merge(pr, user1, gitRepo, repo_model.MergeStyleMerge, "UNRELATED")
 | 
			
		||||
		err = pull.Merge(pr, user1, gitRepo, repo_model.MergeStyleMerge, "", "UNRELATED")
 | 
			
		||||
		assert.Error(t, err, "Merge should return an error due to unrelated")
 | 
			
		||||
		assert.True(t, models.IsErrMergeUnrelatedHistories(err), "Merge error is not a unrelated histories error")
 | 
			
		||||
		gitRepo.Close()
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user