Skip to content

Commit 65acd1e

Browse files
authored
Fix branch commit message too long problem (#25588)
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?
1 parent 67bd9d4 commit 65acd1e

File tree

4 files changed

+23
-13
lines changed

4 files changed

+23
-13
lines changed

models/git/branch.go

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
"code.gitea.io/gitea/models/db"
1212
repo_model "code.gitea.io/gitea/models/repo"
1313
user_model "code.gitea.io/gitea/models/user"
14+
"code.gitea.io/gitea/modules/git"
1415
"code.gitea.io/gitea/modules/log"
1516
"code.gitea.io/gitea/modules/timeutil"
1617
"code.gitea.io/gitea/modules/util"
@@ -204,14 +205,14 @@ func DeleteBranches(ctx context.Context, repoID, doerID int64, branchIDs []int64
204205

205206
// UpdateBranch updates the branch information in the database. If the branch exist, it will update latest commit of this branch information
206207
// If it doest not exist, insert a new record into database
207-
func UpdateBranch(ctx context.Context, repoID int64, branchName, commitID, commitMessage string, pusherID int64, commitTime time.Time) error {
208+
func UpdateBranch(ctx context.Context, repoID, pusherID int64, branchName string, commit *git.Commit) error {
208209
cnt, err := db.GetEngine(ctx).Where("repo_id=? AND name=?", repoID, branchName).
209210
Cols("commit_id, commit_message, pusher_id, commit_time, is_deleted, updated_unix").
210211
Update(&Branch{
211-
CommitID: commitID,
212-
CommitMessage: commitMessage,
212+
CommitID: commit.ID.String(),
213+
CommitMessage: commit.Summary(),
213214
PusherID: pusherID,
214-
CommitTime: timeutil.TimeStamp(commitTime.Unix()),
215+
CommitTime: timeutil.TimeStamp(commit.Committer.When.Unix()),
215216
IsDeleted: false,
216217
})
217218
if err != nil {
@@ -224,10 +225,10 @@ func UpdateBranch(ctx context.Context, repoID int64, branchName, commitID, commi
224225
return db.Insert(ctx, &Branch{
225226
RepoID: repoID,
226227
Name: branchName,
227-
CommitID: commitID,
228-
CommitMessage: commitMessage,
228+
CommitID: commit.ID.String(),
229+
CommitMessage: commit.Summary(),
229230
PusherID: pusherID,
230-
CommitTime: timeutil.TimeStamp(commitTime.Unix()),
231+
CommitTime: timeutil.TimeStamp(commit.Committer.When.Unix()),
231232
})
232233
}
233234

models/git/branch_test.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
issues_model "code.gitea.io/gitea/models/issues"
1212
repo_model "code.gitea.io/gitea/models/repo"
1313
"code.gitea.io/gitea/models/unittest"
14+
"code.gitea.io/gitea/modules/git"
1415
"code.gitea.io/gitea/modules/util"
1516

1617
"github.com/stretchr/testify/assert"
@@ -28,7 +29,15 @@ func TestAddDeletedBranch(t *testing.T) {
2829
secondBranch := unittest.AssertExistsAndLoadBean(t, &git_model.Branch{RepoID: repo.ID, Name: "branch2"})
2930
assert.True(t, secondBranch.IsDeleted)
3031

31-
err := git_model.UpdateBranch(db.DefaultContext, repo.ID, secondBranch.Name, secondBranch.CommitID, secondBranch.CommitMessage, secondBranch.PusherID, secondBranch.CommitTime.AsLocalTime())
32+
commit := &git.Commit{
33+
ID: git.MustIDFromString(secondBranch.CommitID),
34+
CommitMessage: secondBranch.CommitMessage,
35+
Committer: &git.Signature{
36+
When: secondBranch.CommitTime.AsLocalTime(),
37+
},
38+
}
39+
40+
err := git_model.UpdateBranch(db.DefaultContext, repo.ID, secondBranch.PusherID, secondBranch.Name, commit)
3241
assert.NoError(t, err)
3342
}
3443

modules/repository/branch.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -77,19 +77,19 @@ func SyncRepoBranchesWithRepo(ctx context.Context, repo *repo_model.Repository,
7777
RepoID: repo.ID,
7878
Name: branch,
7979
CommitID: commit.ID.String(),
80-
CommitMessage: commit.CommitMessage,
80+
CommitMessage: commit.Summary(),
8181
PusherID: doerID,
82-
CommitTime: timeutil.TimeStamp(commit.Author.When.Unix()),
82+
CommitTime: timeutil.TimeStamp(commit.Committer.When.Unix()),
8383
})
8484
} else if commit.ID.String() != dbb.CommitID {
8585
toUpdate = append(toUpdate, &git_model.Branch{
8686
ID: dbb.ID,
8787
RepoID: repo.ID,
8888
Name: branch,
8989
CommitID: commit.ID.String(),
90-
CommitMessage: commit.CommitMessage,
90+
CommitMessage: commit.Summary(),
9191
PusherID: doerID,
92-
CommitTime: timeutil.TimeStamp(commit.Author.When.Unix()),
92+
CommitTime: timeutil.TimeStamp(commit.Committer.When.Unix()),
9393
})
9494
}
9595
}

services/repository/push.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ func pushUpdates(optsList []*repo_module.PushUpdateOptions) error {
259259

260260
notification.NotifyPushCommits(ctx, pusher, repo, opts, commits)
261261

262-
if err = git_model.UpdateBranch(ctx, repo.ID, branch, newCommit.ID.String(), newCommit.CommitMessage, opts.PusherID, newCommit.Committer.When); err != nil {
262+
if err = git_model.UpdateBranch(ctx, repo.ID, opts.PusherID, branch, newCommit); err != nil {
263263
return fmt.Errorf("git_model.UpdateBranch %s:%s failed: %v", repo.FullName(), branch, err)
264264
}
265265

0 commit comments

Comments
 (0)