]> source.dussan.org Git - gitea.git/commitdiff
Fix bug for generated repository object format (#28969)
authorLunny Xiao <xiaolunwen@gmail.com>
Sun, 28 Jan 2024 20:18:15 +0000 (04:18 +0800)
committerGitHub <noreply@github.com>
Sun, 28 Jan 2024 20:18:15 +0000 (20:18 +0000)
A repository generated from a template repository should have the same
git ObjectFormat.

modules/repository/generate.go

index b32c4e058e503b19d2b93a8532cfd010c646f28d..013dd8f76f49f4d129e6332221144037a093ecb6 100644 (file)
@@ -224,8 +224,7 @@ func generateRepoCommit(ctx context.Context, repo, templateRepo, generateRepo *r
                }
        }
 
-       // FIXME: fix the hash
-       if err := git.InitRepository(ctx, tmpDir, false, git.Sha1ObjectFormat.Name()); err != nil {
+       if err := git.InitRepository(ctx, tmpDir, false, templateRepo.ObjectFormatName); err != nil {
                return err
        }
 
@@ -327,18 +326,19 @@ func (gro GenerateRepoOptions) IsValid() bool {
 // GenerateRepository generates a repository from a template
 func GenerateRepository(ctx context.Context, doer, owner *user_model.User, templateRepo *repo_model.Repository, opts GenerateRepoOptions) (_ *repo_model.Repository, err error) {
        generateRepo := &repo_model.Repository{
-               OwnerID:       owner.ID,
-               Owner:         owner,
-               OwnerName:     owner.Name,
-               Name:          opts.Name,
-               LowerName:     strings.ToLower(opts.Name),
-               Description:   opts.Description,
-               DefaultBranch: opts.DefaultBranch,
-               IsPrivate:     opts.Private,
-               IsEmpty:       !opts.GitContent || templateRepo.IsEmpty,
-               IsFsckEnabled: templateRepo.IsFsckEnabled,
-               TemplateID:    templateRepo.ID,
-               TrustModel:    templateRepo.TrustModel,
+               OwnerID:          owner.ID,
+               Owner:            owner,
+               OwnerName:        owner.Name,
+               Name:             opts.Name,
+               LowerName:        strings.ToLower(opts.Name),
+               Description:      opts.Description,
+               DefaultBranch:    opts.DefaultBranch,
+               IsPrivate:        opts.Private,
+               IsEmpty:          !opts.GitContent || templateRepo.IsEmpty,
+               IsFsckEnabled:    templateRepo.IsFsckEnabled,
+               TemplateID:       templateRepo.ID,
+               TrustModel:       templateRepo.TrustModel,
+               ObjectFormatName: templateRepo.ObjectFormatName,
        }
 
        if err = CreateRepositoryByExample(ctx, doer, owner, generateRepo, false, false); err != nil {
@@ -358,8 +358,7 @@ func GenerateRepository(ctx context.Context, doer, owner *user_model.User, templ
                }
        }
 
-       // FIXME - fix the hash
-       if err = CheckInitRepository(ctx, owner.Name, generateRepo.Name, git.Sha1ObjectFormat.Name()); err != nil {
+       if err = CheckInitRepository(ctx, owner.Name, generateRepo.Name, generateRepo.ObjectFormatName); err != nil {
                return generateRepo, err
        }