forked from NYANDEV/forgejo
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?
This commit is contained in:
parent
67bd9d4f1e
commit
65acd1e9ef
4 changed files with 23 additions and 13 deletions
|
@ -11,6 +11,7 @@ import (
|
||||||
"code.gitea.io/gitea/models/db"
|
"code.gitea.io/gitea/models/db"
|
||||||
repo_model "code.gitea.io/gitea/models/repo"
|
repo_model "code.gitea.io/gitea/models/repo"
|
||||||
user_model "code.gitea.io/gitea/models/user"
|
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/log"
|
||||||
"code.gitea.io/gitea/modules/timeutil"
|
"code.gitea.io/gitea/modules/timeutil"
|
||||||
"code.gitea.io/gitea/modules/util"
|
"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
|
// 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
|
// 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).
|
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").
|
Cols("commit_id, commit_message, pusher_id, commit_time, is_deleted, updated_unix").
|
||||||
Update(&Branch{
|
Update(&Branch{
|
||||||
CommitID: commitID,
|
CommitID: commit.ID.String(),
|
||||||
CommitMessage: commitMessage,
|
CommitMessage: commit.Summary(),
|
||||||
PusherID: pusherID,
|
PusherID: pusherID,
|
||||||
CommitTime: timeutil.TimeStamp(commitTime.Unix()),
|
CommitTime: timeutil.TimeStamp(commit.Committer.When.Unix()),
|
||||||
IsDeleted: false,
|
IsDeleted: false,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -224,10 +225,10 @@ func UpdateBranch(ctx context.Context, repoID int64, branchName, commitID, commi
|
||||||
return db.Insert(ctx, &Branch{
|
return db.Insert(ctx, &Branch{
|
||||||
RepoID: repoID,
|
RepoID: repoID,
|
||||||
Name: branchName,
|
Name: branchName,
|
||||||
CommitID: commitID,
|
CommitID: commit.ID.String(),
|
||||||
CommitMessage: commitMessage,
|
CommitMessage: commit.Summary(),
|
||||||
PusherID: pusherID,
|
PusherID: pusherID,
|
||||||
CommitTime: timeutil.TimeStamp(commitTime.Unix()),
|
CommitTime: timeutil.TimeStamp(commit.Committer.When.Unix()),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,7 @@ import (
|
||||||
issues_model "code.gitea.io/gitea/models/issues"
|
issues_model "code.gitea.io/gitea/models/issues"
|
||||||
repo_model "code.gitea.io/gitea/models/repo"
|
repo_model "code.gitea.io/gitea/models/repo"
|
||||||
"code.gitea.io/gitea/models/unittest"
|
"code.gitea.io/gitea/models/unittest"
|
||||||
|
"code.gitea.io/gitea/modules/git"
|
||||||
"code.gitea.io/gitea/modules/util"
|
"code.gitea.io/gitea/modules/util"
|
||||||
|
|
||||||
"github.com/stretchr/testify/assert"
|
"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"})
|
secondBranch := unittest.AssertExistsAndLoadBean(t, &git_model.Branch{RepoID: repo.ID, Name: "branch2"})
|
||||||
assert.True(t, secondBranch.IsDeleted)
|
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)
|
assert.NoError(t, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -77,9 +77,9 @@ func SyncRepoBranchesWithRepo(ctx context.Context, repo *repo_model.Repository,
|
||||||
RepoID: repo.ID,
|
RepoID: repo.ID,
|
||||||
Name: branch,
|
Name: branch,
|
||||||
CommitID: commit.ID.String(),
|
CommitID: commit.ID.String(),
|
||||||
CommitMessage: commit.CommitMessage,
|
CommitMessage: commit.Summary(),
|
||||||
PusherID: doerID,
|
PusherID: doerID,
|
||||||
CommitTime: timeutil.TimeStamp(commit.Author.When.Unix()),
|
CommitTime: timeutil.TimeStamp(commit.Committer.When.Unix()),
|
||||||
})
|
})
|
||||||
} else if commit.ID.String() != dbb.CommitID {
|
} else if commit.ID.String() != dbb.CommitID {
|
||||||
toUpdate = append(toUpdate, &git_model.Branch{
|
toUpdate = append(toUpdate, &git_model.Branch{
|
||||||
|
@ -87,9 +87,9 @@ func SyncRepoBranchesWithRepo(ctx context.Context, repo *repo_model.Repository,
|
||||||
RepoID: repo.ID,
|
RepoID: repo.ID,
|
||||||
Name: branch,
|
Name: branch,
|
||||||
CommitID: commit.ID.String(),
|
CommitID: commit.ID.String(),
|
||||||
CommitMessage: commit.CommitMessage,
|
CommitMessage: commit.Summary(),
|
||||||
PusherID: doerID,
|
PusherID: doerID,
|
||||||
CommitTime: timeutil.TimeStamp(commit.Author.When.Unix()),
|
CommitTime: timeutil.TimeStamp(commit.Committer.When.Unix()),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -259,7 +259,7 @@ func pushUpdates(optsList []*repo_module.PushUpdateOptions) error {
|
||||||
|
|
||||||
notification.NotifyPushCommits(ctx, pusher, repo, opts, commits)
|
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)
|
return fmt.Errorf("git_model.UpdateBranch %s:%s failed: %v", repo.FullName(), branch, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue