diff options
author | Adam Majer <amajer@suse.de> | 2023-12-13 21:02:00 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-13 21:02:00 +0000 |
commit | cbf923e87bca0f50c2c01a60ccf544b63c365e98 (patch) | |
tree | 9e2e66c688bdc0f740e1ae333847dfb33677c730 /modules/repository | |
parent | 064f05204c0539d1f92895776dee7f626a628e3b (diff) | |
download | gitea-cbf923e87bca0f50c2c01a60ccf544b63c365e98.tar.gz gitea-cbf923e87bca0f50c2c01a60ccf544b63c365e98.zip |
Abstract hash function usage (#28138)
Refactor Hash interfaces and centralize hash function. This will allow
easier introduction of different hash function later on.
This forms the "no-op" part of the SHA256 enablement patch.
Diffstat (limited to 'modules/repository')
-rw-r--r-- | modules/repository/commits_test.go | 7 | ||||
-rw-r--r-- | modules/repository/generate.go | 6 | ||||
-rw-r--r-- | modules/repository/init.go | 4 | ||||
-rw-r--r-- | modules/repository/push.go | 6 |
4 files changed, 14 insertions, 9 deletions
diff --git a/modules/repository/commits_test.go b/modules/repository/commits_test.go index 827b2a9849..57f0c90fc6 100644 --- a/modules/repository/commits_test.go +++ b/modules/repository/commits_test.go @@ -144,7 +144,7 @@ func TestCommitToPushCommit(t *testing.T) { When: now, } const hexString = "0123456789abcdef0123456789abcdef01234567" - sha1, err := git.NewIDFromString(hexString) + sha1, err := git.IDFromString(hexString) assert.NoError(t, err) pushCommit := CommitToPushCommit(&git.Commit{ ID: sha1, @@ -169,11 +169,12 @@ func TestListToPushCommits(t *testing.T) { When: now, } + hashType := git.ObjectFormatFromID(git.Sha1) const hexString1 = "0123456789abcdef0123456789abcdef01234567" - hash1, err := git.NewIDFromString(hexString1) + hash1, err := hashType.NewIDFromString(hexString1) assert.NoError(t, err) const hexString2 = "fedcba9876543210fedcba9876543210fedcba98" - hash2, err := git.NewIDFromString(hexString2) + hash2, err := hashType.NewIDFromString(hexString2) assert.NoError(t, err) l := []*git.Commit{ diff --git a/modules/repository/generate.go b/modules/repository/generate.go index 4055029d22..c143431b7c 100644 --- a/modules/repository/generate.go +++ b/modules/repository/generate.go @@ -223,7 +223,8 @@ func generateRepoCommit(ctx context.Context, repo, templateRepo, generateRepo *r } } - if err := git.InitRepository(ctx, tmpDir, false); err != nil { + // FIXME: fix the hash + if err := git.InitRepository(ctx, tmpDir, false, git.ObjectFormatFromID(git.Sha1)); err != nil { return err } @@ -356,7 +357,8 @@ func GenerateRepository(ctx context.Context, doer, owner *user_model.User, templ } } - if err = CheckInitRepository(ctx, owner.Name, generateRepo.Name); err != nil { + // FIXME - fix the hash + if err = CheckInitRepository(ctx, owner.Name, generateRepo.Name, git.ObjectFormatFromID(git.Sha1)); err != nil { return generateRepo, err } diff --git a/modules/repository/init.go b/modules/repository/init.go index 6f791f742b..a9b5aab16a 100644 --- a/modules/repository/init.go +++ b/modules/repository/init.go @@ -188,7 +188,7 @@ func InitRepoCommit(ctx context.Context, tmpPath string, repo *repo_model.Reposi return nil } -func CheckInitRepository(ctx context.Context, owner, name string) (err error) { +func CheckInitRepository(ctx context.Context, owner, name string, objectFormat git.ObjectFormat) (err error) { // Somehow the directory could exist. repoPath := repo_model.RepoPath(owner, name) isExist, err := util.IsExist(repoPath) @@ -204,7 +204,7 @@ func CheckInitRepository(ctx context.Context, owner, name string) (err error) { } // Init git bare new repository. - if err = git.InitRepository(ctx, repoPath, true); err != nil { + if err = git.InitRepository(ctx, repoPath, true, objectFormat); err != nil { return fmt.Errorf("git.InitRepository: %w", err) } else if err = CreateDelegateHooks(repoPath); err != nil { return fmt.Errorf("createDelegateHooks: %w", err) diff --git a/modules/repository/push.go b/modules/repository/push.go index ea03f9e153..25695336a5 100644 --- a/modules/repository/push.go +++ b/modules/repository/push.go @@ -20,12 +20,14 @@ type PushUpdateOptions struct { // IsNewRef return true if it's a first-time push to a branch, tag or etc. func (opts *PushUpdateOptions) IsNewRef() bool { - return opts.OldCommitID == git.EmptySHA + commitID, err := git.IDFromString(opts.OldCommitID) + return err == nil && commitID.IsZero() } // IsDelRef return true if it's a deletion to a branch or tag func (opts *PushUpdateOptions) IsDelRef() bool { - return opts.NewCommitID == git.EmptySHA + commitID, err := git.IDFromString(opts.NewCommitID) + return err == nil && commitID.IsZero() } // IsUpdateRef return true if it's an update operation |