Skip to content

Commit e8fad37

Browse files
committed
try to fix tests
1 parent 5e8c6b4 commit e8fad37

File tree

4 files changed

+80
-69
lines changed

4 files changed

+80
-69
lines changed

modules/git/git.go

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010
"fmt"
1111
"os"
1212
"os/exec"
13+
"path/filepath"
1314
"runtime"
1415
"strings"
1516
"sync"
@@ -139,8 +140,12 @@ func InitSimple(ctx context.Context) error {
139140
// HomeDir is the home dir for git to store the global config file used by Gitea internally
140141
func HomeDir() string {
141142
if setting.RepoRootPath == "" {
142-
log.Fatal("Can not get Git's HomeDir (RepoRootPath is empty), the setting and git modules are not initialized correctly")
143-
return ""
143+
// TODO: now, some unit test code call the git module directly without initialization, which is incorrect.
144+
// at the moment, we just use a temp HomeDir to prevent from conflicting with user's git config
145+
// in the future, the git module should be initialized first before use.
146+
tmpHomeDir := filepath.Join(os.TempDir(), "gitea-temp-home")
147+
log.Error("Git's HomeDir is empty (RepoRootPath is empty), the git module is not initialized correctly, using a temp HomeDir (%s) temporarily", tmpHomeDir)
148+
return tmpHomeDir
144149
}
145150
return setting.RepoRootPath
146151
}

modules/git/repo_language_stats_gogit.go

Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -45,28 +45,30 @@ func (repo *Repository) GetLanguageStats(commitID string) (map[string]int64, err
4545

4646
var checker *CheckAttributeReader
4747

48-
indexFilename, workTree, deleteTemporaryFile, err := repo.ReadTreeToTemporaryIndex(commitID)
49-
if err == nil {
50-
defer deleteTemporaryFile()
51-
checker = &CheckAttributeReader{
52-
Attributes: []string{"linguist-vendored", "linguist-generated", "linguist-language", "gitlab-language"},
53-
Repo: repo,
54-
IndexFile: indexFilename,
55-
WorkTree: workTree,
56-
}
57-
ctx, cancel := context.WithCancel(DefaultContext)
58-
if err := checker.Init(ctx); err != nil {
59-
log.Error("Unable to open checker for %s. Error: %v", commitID, err)
60-
} else {
61-
go func() {
62-
err = checker.Run()
63-
if err != nil {
64-
log.Error("Unable to open checker for %s. Error: %v", commitID, err)
65-
cancel()
66-
}
67-
}()
48+
{
49+
indexFilename, workTree, deleteTemporaryFile, err := repo.ReadTreeToTemporaryIndex(commitID)
50+
if err == nil {
51+
defer deleteTemporaryFile()
52+
checker = &CheckAttributeReader{
53+
Attributes: []string{"linguist-vendored", "linguist-generated", "linguist-language", "gitlab-language"},
54+
Repo: repo,
55+
IndexFile: indexFilename,
56+
WorkTree: workTree,
57+
}
58+
ctx, cancel := context.WithCancel(DefaultContext)
59+
if err := checker.Init(ctx); err != nil {
60+
log.Error("Unable to open checker for %s. Error: %v", commitID, err)
61+
} else {
62+
go func() {
63+
err = checker.Run()
64+
if err != nil {
65+
log.Error("Unable to open checker for %s. Error: %v", commitID, err)
66+
cancel()
67+
}
68+
}()
69+
}
70+
defer cancel()
6871
}
69-
defer cancel()
7072
}
7173

7274
sizes := make(map[string]int64)

modules/git/repo_language_stats_nogogit.go

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -65,31 +65,33 @@ func (repo *Repository) GetLanguageStats(commitID string) (map[string]int64, err
6565

6666
var checker *CheckAttributeReader
6767

68-
indexFilename, worktree, deleteTemporaryFile, err := repo.ReadTreeToTemporaryIndex(commitID)
69-
if err == nil {
70-
defer deleteTemporaryFile()
71-
checker = &CheckAttributeReader{
72-
Attributes: []string{"linguist-vendored", "linguist-generated", "linguist-language", "gitlab-language"},
73-
Repo: repo,
74-
IndexFile: indexFilename,
75-
WorkTree: worktree,
76-
}
77-
ctx, cancel := context.WithCancel(repo.Ctx)
78-
if err := checker.Init(ctx); err != nil {
79-
log.Error("Unable to open checker for %s. Error: %v", commitID, err)
80-
} else {
81-
go func() {
82-
err = checker.Run()
83-
if err != nil {
84-
log.Error("Unable to open checker for %s. Error: %v", commitID, err)
85-
cancel()
86-
}
68+
{
69+
indexFilename, worktree, deleteTemporaryFile, err := repo.ReadTreeToTemporaryIndex(commitID)
70+
if err == nil {
71+
defer deleteTemporaryFile()
72+
checker = &CheckAttributeReader{
73+
Attributes: []string{"linguist-vendored", "linguist-generated", "linguist-language", "gitlab-language"},
74+
Repo: repo,
75+
IndexFile: indexFilename,
76+
WorkTree: worktree,
77+
}
78+
ctx, cancel := context.WithCancel(repo.Ctx)
79+
if err := checker.Init(ctx); err != nil {
80+
log.Error("Unable to open checker for %s. Error: %v", commitID, err)
81+
} else {
82+
go func() {
83+
err = checker.Run()
84+
if err != nil {
85+
log.Error("Unable to open checker for %s. Error: %v", commitID, err)
86+
cancel()
87+
}
88+
}()
89+
}
90+
defer func() {
91+
_ = checker.Close()
92+
cancel()
8793
}()
8894
}
89-
defer func() {
90-
_ = checker.Close()
91-
cancel()
92-
}()
9395
}
9496

9597
contentBuf := bytes.Buffer{}

services/gitdiff/gitdiff.go

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1418,32 +1418,34 @@ func GetDiff(gitRepo *git.Repository, opts *DiffOptions, files ...string) (*Diff
14181418

14191419
var checker *git.CheckAttributeReader
14201420

1421-
indexFilename, worktree, deleteTemporaryFile, err := gitRepo.ReadTreeToTemporaryIndex(opts.AfterCommitID)
1422-
if err == nil {
1423-
defer deleteTemporaryFile()
1424-
1425-
checker = &git.CheckAttributeReader{
1426-
Attributes: []string{"linguist-vendored", "linguist-generated", "linguist-language", "gitlab-language"},
1427-
Repo: gitRepo,
1428-
IndexFile: indexFilename,
1429-
WorkTree: worktree,
1430-
}
1431-
ctx, cancel := context.WithCancel(gitRepo.Ctx)
1432-
if err := checker.Init(ctx); err != nil {
1433-
log.Error("Unable to open checker for %s. Error: %v", opts.AfterCommitID, err)
1434-
} else {
1435-
go func() {
1436-
err := checker.Run()
1437-
if err != nil && err != ctx.Err() {
1438-
log.Error("Unable to open checker for %s. Error: %v", opts.AfterCommitID, err)
1439-
}
1421+
{
1422+
indexFilename, worktree, deleteTemporaryFile, err := gitRepo.ReadTreeToTemporaryIndex(opts.AfterCommitID)
1423+
if err == nil {
1424+
defer deleteTemporaryFile()
1425+
1426+
checker = &git.CheckAttributeReader{
1427+
Attributes: []string{"linguist-vendored", "linguist-generated", "linguist-language", "gitlab-language"},
1428+
Repo: gitRepo,
1429+
IndexFile: indexFilename,
1430+
WorkTree: worktree,
1431+
}
1432+
ctx, cancel := context.WithCancel(gitRepo.Ctx)
1433+
if err := checker.Init(ctx); err != nil {
1434+
log.Error("Unable to open checker for %s. Error: %v", opts.AfterCommitID, err)
1435+
} else {
1436+
go func() {
1437+
err := checker.Run()
1438+
if err != nil && err != ctx.Err() {
1439+
log.Error("Unable to open checker for %s. Error: %v", opts.AfterCommitID, err)
1440+
}
1441+
cancel()
1442+
}()
1443+
}
1444+
defer func() {
1445+
_ = checker.Close()
14401446
cancel()
14411447
}()
14421448
}
1443-
defer func() {
1444-
_ = checker.Close()
1445-
cancel()
1446-
}()
14471449
}
14481450

14491451
for _, diffFile := range diff.Files {

0 commit comments

Comments
 (0)