mirror of
https://github.com/go-gitea/gitea
synced 2025-07-20 17:28:37 +00:00
Follow up #35096, fix #35095, fix #35115 and add more tests The old code used some fragile behaviors which depend on the "nil" receiver. This PR should be a complete fix for more edge cases.
27 lines
821 B
Go
27 lines
821 B
Go
// Copyright 2017 The Gitea Authors. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package git
|
|
|
|
import "path"
|
|
|
|
// CommitInfo describes the first commit with the provided entry
|
|
type CommitInfo struct {
|
|
Entry *TreeEntry
|
|
Commit *Commit
|
|
SubmoduleFile *CommitSubmoduleFile
|
|
}
|
|
|
|
func getCommitInfoSubmoduleFile(repoLink string, entry *TreeEntry, commit *Commit, treePathDir string) (*CommitSubmoduleFile, error) {
|
|
fullPath := path.Join(treePathDir, entry.Name())
|
|
submodule, err := commit.GetSubModule(fullPath)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
if submodule == nil {
|
|
// unable to find submodule from ".gitmodules" file
|
|
return NewCommitSubmoduleFile(repoLink, fullPath, "", entry.ID.String()), nil
|
|
}
|
|
return NewCommitSubmoduleFile(repoLink, fullPath, submodule.URL, entry.ID.String()), nil
|
|
}
|