Backport #26517 by @wxiaoguang Close #26509 Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>tags/v1.20.3
@@ -80,7 +80,7 @@ func InitRepository(ctx context.Context, repoPath string, bare bool) error { | |||
// IsEmpty Check if repository is empty. | |||
func (repo *Repository) IsEmpty() (bool, error) { | |||
var errbuf, output strings.Builder | |||
if err := NewCommand(repo.Ctx).AddOptionFormat("--git-dir=%s", repo.Path).AddArguments("show-ref", "--head", "^HEAD$"). | |||
if err := NewCommand(repo.Ctx).AddOptionFormat("--git-dir=%s", repo.Path).AddArguments("rev-list", "-n", "1", "--all"). | |||
Run(&RunOpts{ | |||
Dir: repo.Path, | |||
Stdout: &output, |
@@ -370,7 +370,9 @@ func editFilePost(ctx *context.Context, form forms.EditRepoFileForm, isNewFile b | |||
} | |||
if ctx.Repo.Repository.IsEmpty { | |||
_ = repo_model.UpdateRepositoryCols(ctx, &repo_model.Repository{ID: ctx.Repo.Repository.ID, IsEmpty: false}, "is_empty") | |||
if isEmpty, err := ctx.Repo.GitRepo.IsEmpty(); err == nil && !isEmpty { | |||
_ = repo_model.UpdateRepositoryCols(ctx, &repo_model.Repository{ID: ctx.Repo.Repository.ID, IsEmpty: false}, "is_empty") | |||
} | |||
} | |||
redirectForCommitChoice(ctx, form.CommitChoice, branchName, form.TreePath) | |||
@@ -763,7 +765,9 @@ func UploadFilePost(ctx *context.Context) { | |||
} | |||
if ctx.Repo.Repository.IsEmpty { | |||
_ = repo_model.UpdateRepositoryCols(ctx, &repo_model.Repository{ID: ctx.Repo.Repository.ID, IsEmpty: false}, "is_empty") | |||
if isEmpty, err := ctx.Repo.GitRepo.IsEmpty(); err == nil && !isEmpty { | |||
_ = repo_model.UpdateRepositoryCols(ctx, &repo_model.Repository{ID: ctx.Repo.Repository.ID, IsEmpty: false}, "is_empty") | |||
} | |||
} | |||
redirectForCommitChoice(ctx, form.CommitChoice, branchName, form.TreePath) |
@@ -340,7 +340,9 @@ func ChangeRepoFiles(ctx context.Context, repo *repo_model.Repository, doer *use | |||
} | |||
if repo.IsEmpty { | |||
_ = repo_model.UpdateRepositoryCols(ctx, &repo_model.Repository{ID: repo.ID, IsEmpty: false, DefaultBranch: opts.NewBranch}, "is_empty", "default_branch") | |||
if isEmpty, err := gitRepo.IsEmpty(); err == nil && !isEmpty { | |||
_ = repo_model.UpdateRepositoryCols(ctx, &repo_model.Repository{ID: repo.ID, IsEmpty: false, DefaultBranch: opts.NewBranch}, "is_empty", "default_branch") | |||
} | |||
} | |||
return filesResponse, nil |