]> source.dussan.org Git - gitea.git/commitdiff
Fix branch commit message too long problem (#25588)
authorLunny Xiao <xiaolunwen@gmail.com>
Fri, 30 Jun 2023 09:03:05 +0000 (17:03 +0800)
committerGitHub <noreply@github.com>
Fri, 30 Jun 2023 09:03:05 +0000 (17:03 +0800)
When branch's commit CommitMessage is too long, the column maybe too
short.(TEXT 16K for mysql).
This PR will fix it to only store the summary because these message will
only show on branch list or possible future search?

models/git/branch.go
models/git/branch_test.go
modules/repository/branch.go
services/repository/push.go

index adf8b0a78d223b3b51e80e00e2af6499bc8e0d05..255b230b515cd4cf76ae3336ec17afb8d2636e63 100644 (file)
@@ -11,6 +11,7 @@ import (
        "code.gitea.io/gitea/models/db"
        repo_model "code.gitea.io/gitea/models/repo"
        user_model "code.gitea.io/gitea/models/user"
+       "code.gitea.io/gitea/modules/git"
        "code.gitea.io/gitea/modules/log"
        "code.gitea.io/gitea/modules/timeutil"
        "code.gitea.io/gitea/modules/util"
@@ -204,14 +205,14 @@ func DeleteBranches(ctx context.Context, repoID, doerID int64, branchIDs []int64
 
 // UpdateBranch updates the branch information in the database. If the branch exist, it will update latest commit of this branch information
 // If it doest not exist, insert a new record into database
-func UpdateBranch(ctx context.Context, repoID int64, branchName, commitID, commitMessage string, pusherID int64, commitTime time.Time) error {
+func UpdateBranch(ctx context.Context, repoID, pusherID int64, branchName string, commit *git.Commit) error {
        cnt, err := db.GetEngine(ctx).Where("repo_id=? AND name=?", repoID, branchName).
                Cols("commit_id, commit_message, pusher_id, commit_time, is_deleted, updated_unix").
                Update(&Branch{
-                       CommitID:      commitID,
-                       CommitMessage: commitMessage,
+                       CommitID:      commit.ID.String(),
+                       CommitMessage: commit.Summary(),
                        PusherID:      pusherID,
-                       CommitTime:    timeutil.TimeStamp(commitTime.Unix()),
+                       CommitTime:    timeutil.TimeStamp(commit.Committer.When.Unix()),
                        IsDeleted:     false,
                })
        if err != nil {
@@ -224,10 +225,10 @@ func UpdateBranch(ctx context.Context, repoID int64, branchName, commitID, commi
        return db.Insert(ctx, &Branch{
                RepoID:        repoID,
                Name:          branchName,
-               CommitID:      commitID,
-               CommitMessage: commitMessage,
+               CommitID:      commit.ID.String(),
+               CommitMessage: commit.Summary(),
                PusherID:      pusherID,
-               CommitTime:    timeutil.TimeStamp(commitTime.Unix()),
+               CommitTime:    timeutil.TimeStamp(commit.Committer.When.Unix()),
        })
 }
 
index bb63660d078a908ad4c373ba90fa3dc02c36b43d..ba6902692792e267a5ef0986e92b75083a86101f 100644 (file)
@@ -11,6 +11,7 @@ import (
        issues_model "code.gitea.io/gitea/models/issues"
        repo_model "code.gitea.io/gitea/models/repo"
        "code.gitea.io/gitea/models/unittest"
+       "code.gitea.io/gitea/modules/git"
        "code.gitea.io/gitea/modules/util"
 
        "github.com/stretchr/testify/assert"
@@ -28,7 +29,15 @@ func TestAddDeletedBranch(t *testing.T) {
        secondBranch := unittest.AssertExistsAndLoadBean(t, &git_model.Branch{RepoID: repo.ID, Name: "branch2"})
        assert.True(t, secondBranch.IsDeleted)
 
-       err := git_model.UpdateBranch(db.DefaultContext, repo.ID, secondBranch.Name, secondBranch.CommitID, secondBranch.CommitMessage, secondBranch.PusherID, secondBranch.CommitTime.AsLocalTime())
+       commit := &git.Commit{
+               ID:            git.MustIDFromString(secondBranch.CommitID),
+               CommitMessage: secondBranch.CommitMessage,
+               Committer: &git.Signature{
+                       When: secondBranch.CommitTime.AsLocalTime(),
+               },
+       }
+
+       err := git_model.UpdateBranch(db.DefaultContext, repo.ID, secondBranch.PusherID, secondBranch.Name, commit)
        assert.NoError(t, err)
 }
 
index 7fd29e3f7d02724b6665b358f782e95c294fb690..bffadd62f4d9244de9630cf1ee374887fba6d8f3 100644 (file)
@@ -77,9 +77,9 @@ func SyncRepoBranchesWithRepo(ctx context.Context, repo *repo_model.Repository,
                                RepoID:        repo.ID,
                                Name:          branch,
                                CommitID:      commit.ID.String(),
-                               CommitMessage: commit.CommitMessage,
+                               CommitMessage: commit.Summary(),
                                PusherID:      doerID,
-                               CommitTime:    timeutil.TimeStamp(commit.Author.When.Unix()),
+                               CommitTime:    timeutil.TimeStamp(commit.Committer.When.Unix()),
                        })
                } else if commit.ID.String() != dbb.CommitID {
                        toUpdate = append(toUpdate, &git_model.Branch{
@@ -87,9 +87,9 @@ func SyncRepoBranchesWithRepo(ctx context.Context, repo *repo_model.Repository,
                                RepoID:        repo.ID,
                                Name:          branch,
                                CommitID:      commit.ID.String(),
-                               CommitMessage: commit.CommitMessage,
+                               CommitMessage: commit.Summary(),
                                PusherID:      doerID,
-                               CommitTime:    timeutil.TimeStamp(commit.Author.When.Unix()),
+                               CommitTime:    timeutil.TimeStamp(commit.Committer.When.Unix()),
                        })
                }
        }
index 7e7069f580b4299ab32d2dad60ff0fc0c881d808..8e4bab156293cfb09a978e33462dd2aef99bd05a 100644 (file)
@@ -259,7 +259,7 @@ func pushUpdates(optsList []*repo_module.PushUpdateOptions) error {
 
                                notification.NotifyPushCommits(ctx, pusher, repo, opts, commits)
 
-                               if err = git_model.UpdateBranch(ctx, repo.ID, branch, newCommit.ID.String(), newCommit.CommitMessage, opts.PusherID, newCommit.Committer.When); err != nil {
+                               if err = git_model.UpdateBranch(ctx, repo.ID, opts.PusherID, branch, newCommit); err != nil {
                                        return fmt.Errorf("git_model.UpdateBranch %s:%s failed: %v", repo.FullName(), branch, err)
                                }