mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 10:56:10 +01:00 
			
		
		
		
	| @@ -15,7 +15,7 @@ type CommitInfo struct { | |||||||
| func getCommitInfoSubmoduleFile(repoLink string, entry *TreeEntry, commit *Commit, treePathDir string) (*CommitSubmoduleFile, error) { | func getCommitInfoSubmoduleFile(repoLink string, entry *TreeEntry, commit *Commit, treePathDir string) (*CommitSubmoduleFile, error) { | ||||||
| 	fullPath := path.Join(treePathDir, entry.Name()) | 	fullPath := path.Join(treePathDir, entry.Name()) | ||||||
| 	submodule, err := commit.GetSubModule(fullPath) | 	submodule, err := commit.GetSubModule(fullPath) | ||||||
| 	if err != nil { | 	if submodule == nil || err != nil { | ||||||
| 		return nil, err | 		return nil, err | ||||||
| 	} | 	} | ||||||
| 	return NewCommitSubmoduleFile(repoLink, fullPath, submodule.URL, entry.ID.String()), nil | 	return NewCommitSubmoduleFile(repoLink, fullPath, submodule.URL, entry.ID.String()), nil | ||||||
|   | |||||||
| @@ -9,6 +9,7 @@ import ( | |||||||
| 	"time" | 	"time" | ||||||
|  |  | ||||||
| 	"github.com/stretchr/testify/assert" | 	"github.com/stretchr/testify/assert" | ||||||
|  | 	"github.com/stretchr/testify/require" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| const ( | const ( | ||||||
| @@ -120,6 +121,16 @@ func TestEntries_GetCommitsInfo(t *testing.T) { | |||||||
| 	defer clonedRepo1.Close() | 	defer clonedRepo1.Close() | ||||||
|  |  | ||||||
| 	testGetCommitsInfo(t, clonedRepo1) | 	testGetCommitsInfo(t, clonedRepo1) | ||||||
|  |  | ||||||
|  | 	t.Run("NonExistingSubmoduleAsNil", func(t *testing.T) { | ||||||
|  | 		commit, err := bareRepo1.GetCommit("HEAD") | ||||||
|  | 		require.NoError(t, err) | ||||||
|  | 		tree, err := commit.GetTreeEntryByPath("file1.txt") | ||||||
|  | 		require.NoError(t, err) | ||||||
|  | 		cisf, err := getCommitInfoSubmoduleFile("/any/repo-link", tree, commit, "") | ||||||
|  | 		require.NoError(t, err) | ||||||
|  | 		assert.Nil(t, cisf) | ||||||
|  | 	}) | ||||||
| } | } | ||||||
|  |  | ||||||
| func BenchmarkEntries_GetCommitsInfo(b *testing.B) { | func BenchmarkEntries_GetCommitsInfo(b *testing.B) { | ||||||
|   | |||||||
| @@ -35,7 +35,8 @@ func (c *Commit) GetSubModules() (*ObjectCache[*SubModule], error) { | |||||||
| 	return c.submoduleCache, nil | 	return c.submoduleCache, nil | ||||||
| } | } | ||||||
|  |  | ||||||
| // GetSubModule get the submodule according entry name | // GetSubModule gets the submodule by the entry name. | ||||||
|  | // It returns "nil, nil" if the submodule does not exist, caller should always remember to check the "nil" | ||||||
| func (c *Commit) GetSubModule(entryName string) (*SubModule, error) { | func (c *Commit) GetSubModule(entryName string) (*SubModule, error) { | ||||||
| 	modules, err := c.GetSubModules() | 	modules, err := c.GetSubModules() | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user