Skip to content

Commit 7e4db07

Browse files
committed
simplify
1 parent 659c7d1 commit 7e4db07

File tree

13 files changed

+53
-52
lines changed

13 files changed

+53
-52
lines changed

modules/git/commit_info_gogit.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import (
1616
)
1717

1818
// GetCommitsInfo gets information of all commits that are corresponding to these entries
19-
func (tes Entries) GetCommitsInfo(ctx context.Context, commit *Commit, treePath string) ([]CommitInfo, *Commit, error) {
19+
func (tes Entries) GetCommitsInfo(ctx context.Context, repoLink string, commit *Commit, treePath string) ([]CommitInfo, *Commit, error) {
2020
entryPaths := make([]string, len(tes)+1)
2121
// Get the commit for the treePath itself
2222
entryPaths[0] = ""
@@ -85,7 +85,7 @@ func (tes Entries) GetCommitsInfo(ctx context.Context, commit *Commit, treePath
8585
} else if subModule != nil {
8686
subModuleURL = subModule.URL
8787
}
88-
subModuleFile := NewCommitSubmoduleFile(fullPath, subModuleURL, entry.ID.String())
88+
subModuleFile := NewCommitSubmoduleFile(repoLink, fullPath, subModuleURL, entry.ID.String())
8989
commitsInfo[i].SubmoduleFile = subModuleFile
9090
}
9191
}

modules/git/commit_info_nogogit.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import (
1515
)
1616

1717
// GetCommitsInfo gets information of all commits that are corresponding to these entries
18-
func (tes Entries) GetCommitsInfo(ctx context.Context, commit *Commit, treePath string) ([]CommitInfo, *Commit, error) {
18+
func (tes Entries) GetCommitsInfo(ctx context.Context, repoLink string, commit *Commit, treePath string) ([]CommitInfo, *Commit, error) {
1919
entryPaths := make([]string, len(tes)+1)
2020
// Get the commit for the treePath itself
2121
entryPaths[0] = ""
@@ -76,7 +76,7 @@ func (tes Entries) GetCommitsInfo(ctx context.Context, commit *Commit, treePath
7676
} else if subModule != nil {
7777
subModuleURL = subModule.URL
7878
}
79-
subModuleFile := NewCommitSubmoduleFile(fullPath, subModuleURL, entry.ID.String())
79+
subModuleFile := NewCommitSubmoduleFile(repoLink, fullPath, subModuleURL, entry.ID.String())
8080
commitsInfo[i].SubmoduleFile = subModuleFile
8181
}
8282
}

modules/git/commit_info_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ func testGetCommitsInfo(t *testing.T, repo1 *Repository) {
8282
}
8383

8484
// FIXME: Context.TODO() - if graceful has started we should use its Shutdown context otherwise use install signals in TestMain.
85-
commitsInfo, treeCommit, err := entries.GetCommitsInfo(t.Context(), commit, testCase.Path)
85+
commitsInfo, treeCommit, err := entries.GetCommitsInfo(t.Context(), "/any/repo-link", commit, testCase.Path)
8686
assert.NoError(t, err, "Unable to get commit information for entries of subtree: %s in commit: %s from testcase due to error: %v", testCase.Path, testCase.CommitID, err)
8787
if err != nil {
8888
t.FailNow()
@@ -159,7 +159,7 @@ func BenchmarkEntries_GetCommitsInfo(b *testing.B) {
159159
b.ResetTimer()
160160
b.Run(benchmark.name, func(b *testing.B) {
161161
for b.Loop() {
162-
_, _, err := entries.GetCommitsInfo(b.Context(), commit, "")
162+
_, _, err := entries.GetCommitsInfo(b.Context(), "/any/repo-link", commit, "")
163163
if err != nil {
164164
b.Fatal(err)
165165
}

modules/git/commit_submodule_file.go

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import (
1414

1515
// CommitSubmoduleFile represents a file with submodule type.
1616
type CommitSubmoduleFile struct {
17+
repoLink string
1718
fullPath string
1819
refURL string
1920
refID string
@@ -23,20 +24,16 @@ type CommitSubmoduleFile struct {
2324
}
2425

2526
// NewCommitSubmoduleFile create a new submodule file
26-
func NewCommitSubmoduleFile(fullPath, refURL, refID string) *CommitSubmoduleFile {
27-
return &CommitSubmoduleFile{fullPath: fullPath, refURL: refURL, refID: refID}
27+
func NewCommitSubmoduleFile(repoLink, fullPath, refURL, refID string) *CommitSubmoduleFile {
28+
return &CommitSubmoduleFile{repoLink: repoLink, fullPath: fullPath, refURL: refURL, refID: refID}
2829
}
2930

30-
func (sf *CommitSubmoduleFile) RefID() string {
31-
return sf.refID
32-
}
33-
34-
func (sf *CommitSubmoduleFile) getWebLinkInTargetRepo(ctx context.Context, currentRepoHomeLink, moreLinkPath string) *SubmoduleWebLink {
31+
func (sf *CommitSubmoduleFile) getWebLinkInTargetRepo(ctx context.Context, moreLinkPath string) *SubmoduleWebLink {
3532
if sf == nil {
3633
return nil
3734
}
3835
if strings.HasPrefix(sf.refURL, "../") {
39-
targetLink := path.Join(currentRepoHomeLink, path.Dir(sf.fullPath), sf.refURL)
36+
targetLink := path.Join(sf.repoLink, path.Dir(sf.fullPath), sf.refURL)
4037
return &SubmoduleWebLink{RepoWebLink: targetLink, CommitWebLink: targetLink + moreLinkPath}
4138
}
4239
if !sf.parsed {
@@ -50,12 +47,20 @@ func (sf *CommitSubmoduleFile) getWebLinkInTargetRepo(ctx context.Context, curre
5047
return &SubmoduleWebLink{RepoWebLink: sf.parsedTargetLink, CommitWebLink: sf.parsedTargetLink + moreLinkPath}
5148
}
5249

50+
// RefID returns the commit ref id of the submodule file, it also works on "nil" receiver
51+
func (sf *CommitSubmoduleFile) RefID() string {
52+
if sf == nil {
53+
return ""
54+
}
55+
return sf.refID
56+
}
57+
5358
// SubmoduleWebLinkTree tries to make the submodule's tree link in its own repo, it also works on "nil" receiver
54-
func (sf *CommitSubmoduleFile) SubmoduleWebLinkTree(ctx context.Context, currentRepoHomeLink, refCommitID string) *SubmoduleWebLink {
55-
return sf.getWebLinkInTargetRepo(ctx, currentRepoHomeLink, "/tree/"+refCommitID)
59+
func (sf *CommitSubmoduleFile) SubmoduleWebLinkTree(ctx context.Context, refCommitID string) *SubmoduleWebLink {
60+
return sf.getWebLinkInTargetRepo(ctx, "/tree/"+refCommitID)
5661
}
5762

5863
// SubmoduleWebLinkCompare tries to make the submodule's compare link in its own repo, it also works on "nil" receiver
59-
func (sf *CommitSubmoduleFile) SubmoduleWebLinkCompare(ctx context.Context, currentRepoHomeLink, commitID1, commitID2 string) *SubmoduleWebLink {
60-
return sf.getWebLinkInTargetRepo(ctx, currentRepoHomeLink, "/compare/"+commitID1+"..."+commitID2)
64+
func (sf *CommitSubmoduleFile) SubmoduleWebLinkCompare(ctx context.Context, commitID1, commitID2 string) *SubmoduleWebLink {
65+
return sf.getWebLinkInTargetRepo(ctx, "/compare/"+commitID1+"..."+commitID2)
6166
}

modules/git/commit_submodule_file_test.go

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,30 +10,28 @@ import (
1010
)
1111

1212
func TestCommitSubmoduleLink(t *testing.T) {
13-
assert.Nil(t, (*CommitSubmoduleFile)(nil).SubmoduleWebLinkTree(t.Context(), "", ""))
14-
assert.Nil(t, (*CommitSubmoduleFile)(nil).SubmoduleWebLinkCompare(t.Context(), "", "", ""))
13+
assert.Nil(t, (*CommitSubmoduleFile)(nil).SubmoduleWebLinkTree(t.Context(), ""))
14+
assert.Nil(t, (*CommitSubmoduleFile)(nil).SubmoduleWebLinkCompare(t.Context(), "", ""))
1515

1616
t.Run("GitHubRepo", func(t *testing.T) {
17-
curRepoLink := "/any/repo-home-link"
18-
sf := NewCommitSubmoduleFile("full-path", "[email protected]:user/repo.git", "aaaa")
19-
wl := sf.SubmoduleWebLinkTree(t.Context(), curRepoLink, sf.RefID())
17+
sf := NewCommitSubmoduleFile("/any/repo-link", "full-path", "[email protected]:user/repo.git", "aaaa")
18+
wl := sf.SubmoduleWebLinkTree(t.Context(), sf.RefID())
2019
assert.Equal(t, "https://github.com/user/repo", wl.RepoWebLink)
2120
assert.Equal(t, "https://github.com/user/repo/tree/aaaa", wl.CommitWebLink)
2221

23-
wl = sf.SubmoduleWebLinkCompare(t.Context(), curRepoLink, "1111", "2222")
22+
wl = sf.SubmoduleWebLinkCompare(t.Context(), "1111", "2222")
2423
assert.Equal(t, "https://github.com/user/repo", wl.RepoWebLink)
2524
assert.Equal(t, "https://github.com/user/repo/compare/1111...2222", wl.CommitWebLink)
2625
})
2726

2827
t.Run("RelativePath", func(t *testing.T) {
29-
curRepoLink := "/subpath/any/repo-home-link"
30-
sf := NewCommitSubmoduleFile("full-path", "../../user/repo", "aaaa")
31-
wl := sf.SubmoduleWebLinkTree(t.Context(), curRepoLink, sf.RefID())
28+
sf := NewCommitSubmoduleFile("/subpath/any/repo-home-link", "full-path", "../../user/repo", "aaaa")
29+
wl := sf.SubmoduleWebLinkTree(t.Context(), sf.RefID())
3230
assert.Equal(t, "/subpath/user/repo", wl.RepoWebLink)
3331
assert.Equal(t, "/subpath/user/repo/tree/aaaa", wl.CommitWebLink)
3432

35-
sf = NewCommitSubmoduleFile("dir/submodule", "../../../user/repo", "aaaa")
36-
wl = sf.SubmoduleWebLinkCompare(t.Context(), curRepoLink, "1111", "2222")
33+
sf = NewCommitSubmoduleFile("/subpath/any/repo-home-link", "dir/submodule", "../../../user/repo", "aaaa")
34+
wl = sf.SubmoduleWebLinkCompare(t.Context(), "1111", "2222")
3735
assert.Equal(t, "/subpath/user/repo", wl.RepoWebLink)
3836
assert.Equal(t, "/subpath/user/repo/compare/1111...2222", wl.CommitWebLink)
3937
})

routers/web/repo/view.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -305,7 +305,7 @@ func renderDirectoryFiles(ctx *context.Context, timeout time.Duration) git.Entri
305305
defer cancel()
306306
}
307307

308-
files, latestCommit, err := allEntries.GetCommitsInfo(commitInfoCtx, ctx.Repo.Commit, ctx.Repo.TreePath)
308+
files, latestCommit, err := allEntries.GetCommitsInfo(commitInfoCtx, ctx.Repo.RepoLink, ctx.Repo.Commit, ctx.Repo.TreePath)
309309
if err != nil {
310310
ctx.ServerError("GetCommitsInfo", err)
311311
return nil

routers/web/repo/wiki.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ package repo
66

77
import (
88
"bytes"
9-
gocontext "context"
109
"html/template"
1110
"io"
1211
"net/http"
@@ -569,7 +568,7 @@ func WikiPages(ctx *context.Context) {
569568
}
570569
allEntries.CustomSort(base.NaturalSortLess)
571570

572-
entries, _, err := allEntries.GetCommitsInfo(gocontext.Context(ctx), commit, treePath)
571+
entries, _, err := allEntries.GetCommitsInfo(ctx, ctx.Repo.RepoLink, commit, treePath)
573572
if err != nil {
574573
ctx.ServerError("GetCommitsInfo", err)
575574
return

services/gitdiff/gitdiff.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1185,7 +1185,7 @@ func GetDiffForAPI(ctx context.Context, gitRepo *git.Repository, opts *DiffOptio
11851185
return diff, err
11861186
}
11871187

1188-
func GetDiffForRender(ctx context.Context, repoHomeLink string, gitRepo *git.Repository, opts *DiffOptions, files ...string) (*Diff, error) {
1188+
func GetDiffForRender(ctx context.Context, repoLink string, gitRepo *git.Repository, opts *DiffOptions, files ...string) (*Diff, error) {
11891189
diff, beforeCommit, afterCommit, err := getDiffBasic(ctx, gitRepo, opts, files...)
11901190
if err != nil {
11911191
return nil, err
@@ -1211,7 +1211,7 @@ func GetDiffForRender(ctx context.Context, repoHomeLink string, gitRepo *git.Rep
12111211

12121212
// Populate Submodule URLs
12131213
if diffFile.SubmoduleDiffInfo != nil {
1214-
diffFile.SubmoduleDiffInfo.PopulateURL(repoHomeLink, diffFile, beforeCommit, afterCommit)
1214+
diffFile.SubmoduleDiffInfo.PopulateURL(repoLink, diffFile, beforeCommit, afterCommit)
12151215
}
12161216

12171217
if !isVendored.Has() {

services/gitdiff/submodule.go

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,14 @@ import (
1414
)
1515

1616
type SubmoduleDiffInfo struct {
17-
RepoHomeLink string
1817
SubmoduleName string
1918
SubmoduleFile *git.CommitSubmoduleFile // it might be nil if the submodule is not found or unable to parse
2019
NewRefID string
2120
PreviousRefID string
2221
}
2322

24-
func (si *SubmoduleDiffInfo) PopulateURL(repoHomeLink string, diffFile *DiffFile, leftCommit, rightCommit *git.Commit) {
25-
si.RepoHomeLink, si.SubmoduleName = repoHomeLink, diffFile.Name
23+
func (si *SubmoduleDiffInfo) PopulateURL(repoLink string, diffFile *DiffFile, leftCommit, rightCommit *git.Commit) {
24+
si.SubmoduleName = diffFile.Name
2625
submoduleCommit := rightCommit // If the submodule is added or updated, check at the right commit
2726
if diffFile.IsDeleted {
2827
submoduleCommit = leftCommit // If the submodule is deleted, check at the left commit
@@ -38,28 +37,28 @@ func (si *SubmoduleDiffInfo) PopulateURL(repoHomeLink string, diffFile *DiffFile
3837
return // ignore the error, do not cause 500 errors for end users
3938
}
4039
if submodule != nil {
41-
si.SubmoduleFile = git.NewCommitSubmoduleFile(submoduleFullPath, submodule.URL, submoduleCommit.ID.String())
40+
si.SubmoduleFile = git.NewCommitSubmoduleFile(repoLink, submoduleFullPath, submodule.URL, submoduleCommit.ID.String())
4241
}
4342
}
4443

4544
func (si *SubmoduleDiffInfo) CommitRefIDLinkHTML(ctx context.Context, commitID string) template.HTML {
46-
webLink := si.SubmoduleFile.SubmoduleWebLinkTree(ctx, si.RepoHomeLink, commitID)
45+
webLink := si.SubmoduleFile.SubmoduleWebLinkTree(ctx, commitID)
4746
if webLink == nil {
4847
return htmlutil.HTMLFormat("%s", base.ShortSha(commitID))
4948
}
5049
return htmlutil.HTMLFormat(`<a href="%s">%s</a>`, webLink.CommitWebLink, base.ShortSha(commitID))
5150
}
5251

5352
func (si *SubmoduleDiffInfo) CompareRefIDLinkHTML(ctx context.Context) template.HTML {
54-
webLink := si.SubmoduleFile.SubmoduleWebLinkCompare(ctx, si.RepoHomeLink, si.PreviousRefID, si.NewRefID)
53+
webLink := si.SubmoduleFile.SubmoduleWebLinkCompare(ctx, si.PreviousRefID, si.NewRefID)
5554
if webLink == nil {
5655
return htmlutil.HTMLFormat("%s...%s", base.ShortSha(si.PreviousRefID), base.ShortSha(si.NewRefID))
5756
}
5857
return htmlutil.HTMLFormat(`<a href="%s">%s...%s</a>`, webLink.CommitWebLink, base.ShortSha(si.PreviousRefID), base.ShortSha(si.NewRefID))
5958
}
6059

6160
func (si *SubmoduleDiffInfo) SubmoduleRepoLinkHTML(ctx context.Context) template.HTML {
62-
webLink := si.SubmoduleFile.SubmoduleWebLinkTree(ctx, si.RepoHomeLink, si.SubmoduleFile.RefID())
61+
webLink := si.SubmoduleFile.SubmoduleWebLinkTree(ctx, si.SubmoduleFile.RefID())
6362
if webLink == nil {
6463
return htmlutil.HTMLFormat("%s", si.SubmoduleName)
6564
}

services/gitdiff/submodule_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ func TestSubmoduleInfo(t *testing.T) {
227227
assert.EqualValues(t, "aaaa...bbbb", sdi.CompareRefIDLinkHTML(ctx))
228228
assert.EqualValues(t, "name", sdi.SubmoduleRepoLinkHTML(ctx))
229229

230-
sdi.SubmoduleFile = git.NewCommitSubmoduleFile("fullpath", "https://github.com/owner/repo", "1234")
230+
sdi.SubmoduleFile = git.NewCommitSubmoduleFile("/any/repo-link", "fullpath", "https://github.com/owner/repo", "1234")
231231
assert.EqualValues(t, `<a href="https://github.com/owner/repo/tree/1111">1111</a>`, sdi.CommitRefIDLinkHTML(ctx, "1111"))
232232
assert.EqualValues(t, `<a href="https://github.com/owner/repo/compare/aaaa...bbbb">aaaa...bbbb</a>`, sdi.CompareRefIDLinkHTML(ctx))
233233
assert.EqualValues(t, `<a href="https://github.com/owner/repo">name</a>`, sdi.SubmoduleRepoLinkHTML(ctx))

0 commit comments

Comments
 (0)