mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-27 17:06:28 +01:00 
			
		
		
		
	HasPreviousCommit causes recursive load of commits unnecessarily (#14598)
This PR improves HasPreviousCommit to prevent the automatic and recursive loading of previous commits using git merge-base --is-ancestor and git rev-list Fix #13684 Signed-off-by: Andrew Thornton <art27@cantab.net>
This commit is contained in:
		| @@ -105,3 +105,28 @@ empty commit`, commitFromReader.Signature.Payload) | ||||
| 	commitFromReader.Signature.Payload += "\n\n" | ||||
| 	assert.EqualValues(t, commitFromReader, commitFromReader2) | ||||
| } | ||||
|  | ||||
| func TestHasPreviousCommit(t *testing.T) { | ||||
| 	bareRepo1Path := filepath.Join(testReposDir, "repo1_bare") | ||||
|  | ||||
| 	repo, err := OpenRepository(bareRepo1Path) | ||||
| 	assert.NoError(t, err) | ||||
|  | ||||
| 	commit, err := repo.GetCommit("8006ff9adbf0cb94da7dad9e537e53817f9fa5c0") | ||||
| 	assert.NoError(t, err) | ||||
|  | ||||
| 	parentSHA := MustIDFromString("8d92fc957a4d7cfd98bc375f0b7bb189a0d6c9f2") | ||||
| 	notParentSHA := MustIDFromString("2839944139e0de9737a044f78b0e4b40d989a9e3") | ||||
|  | ||||
| 	haz, err := commit.HasPreviousCommit(parentSHA) | ||||
| 	assert.NoError(t, err) | ||||
| 	assert.True(t, haz) | ||||
|  | ||||
| 	hazNot, err := commit.HasPreviousCommit(notParentSHA) | ||||
| 	assert.NoError(t, err) | ||||
| 	assert.False(t, hazNot) | ||||
|  | ||||
| 	selfNot, err := commit.HasPreviousCommit(commit.ID) | ||||
| 	assert.NoError(t, err) | ||||
| 	assert.False(t, selfNot) | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user