mirror of
https://github.com/go-gitea/gitea
synced 2025-07-22 10:18:38 +00:00
Add abstraction layer to check if the repository exists on disk (#33874)
Extract from #28966 This PR uses `gitrepo.IsRepositoryExist` instead of `util.IsExist` to detect whether the repository exist in disk. This will move `RepoPath` detail behind of package `gitrepo` to make it easier to do possible changes where storing the repositories. No code change
This commit is contained in:
@@ -258,7 +258,7 @@ func generateRepoCommit(ctx context.Context, repo, templateRepo, generateRepo *r
|
||||
func generateGitContent(ctx context.Context, repo, templateRepo, generateRepo *repo_model.Repository) (err error) {
|
||||
tmpDir, err := os.MkdirTemp(os.TempDir(), "gitea-"+repo.Name)
|
||||
if err != nil {
|
||||
return fmt.Errorf("Failed to create temp dir for repository %s: %w", repo.RepoPath(), err)
|
||||
return fmt.Errorf("Failed to create temp dir for repository %s: %w", repo.FullName(), err)
|
||||
}
|
||||
|
||||
defer func() {
|
||||
@@ -350,10 +350,9 @@ func generateRepository(ctx context.Context, doer, owner *user_model.User, templ
|
||||
return nil, err
|
||||
}
|
||||
|
||||
repoPath := generateRepo.RepoPath()
|
||||
isExist, err := util.IsExist(repoPath)
|
||||
isExist, err := gitrepo.IsRepositoryExist(ctx, generateRepo)
|
||||
if err != nil {
|
||||
log.Error("Unable to check if %s exists. Error: %v", repoPath, err)
|
||||
log.Error("Unable to check if %s exists. Error: %v", generateRepo.FullName(), err)
|
||||
return nil, err
|
||||
}
|
||||
if isExist {
|
||||
@@ -363,7 +362,7 @@ func generateRepository(ctx context.Context, doer, owner *user_model.User, templ
|
||||
}
|
||||
}
|
||||
|
||||
if err = repo_module.CheckInitRepository(ctx, owner.Name, generateRepo.Name, generateRepo.ObjectFormatName); err != nil {
|
||||
if err = repo_module.CheckInitRepository(ctx, generateRepo); err != nil {
|
||||
return generateRepo, err
|
||||
}
|
||||
|
||||
@@ -372,7 +371,7 @@ func generateRepository(ctx context.Context, doer, owner *user_model.User, templ
|
||||
}
|
||||
|
||||
if stdout, _, err := git.NewCommand("update-server-info").
|
||||
RunStdString(ctx, &git.RunOpts{Dir: repoPath}); err != nil {
|
||||
RunStdString(ctx, &git.RunOpts{Dir: generateRepo.RepoPath()}); err != nil {
|
||||
log.Error("GenerateRepository(git update-server-info) in %v: Stdout: %s\nError: %v", generateRepo, stdout, err)
|
||||
return generateRepo, fmt.Errorf("error in GenerateRepository(git update-server-info): %w", err)
|
||||
}
|
||||
|
Reference in New Issue
Block a user