Skip to content

Commit

Permalink
Only sync tags after all batches (go-gitea#9319)
Browse files Browse the repository at this point in the history
Signed-off-by: jolheiser <[email protected]>
  • Loading branch information
jolheiser authored and lunny committed Dec 11, 2019
1 parent c3d31e5 commit 3bf5a07
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 7 deletions.
2 changes: 1 addition & 1 deletion modules/migrations/base/uploader.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ type Uploader interface {
CreateRepo(repo *Repository, opts MigrateOptions) error
CreateTopics(topic ...string) error
CreateMilestones(milestones ...*Milestone) error
CreateReleases(releases ...*Release) error
CreateReleases(syncTags bool, releases ...*Release) error
CreateLabels(labels ...*Label) error
CreateIssues(issues ...*Issue) error
CreateComments(comments ...*Comment) error
Expand Down
10 changes: 7 additions & 3 deletions modules/migrations/gitea.go
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,7 @@ func (g *GiteaLocalUploader) CreateLabels(labels ...*base.Label) error {
}

// CreateReleases creates releases
func (g *GiteaLocalUploader) CreateReleases(releases ...*base.Release) error {
func (g *GiteaLocalUploader) CreateReleases(syncTags bool, releases ...*base.Release) error {
var rels = make([]*models.Release, 0, len(releases))
for _, release := range releases {
var rel = models.Release{
Expand Down Expand Up @@ -292,8 +292,12 @@ func (g *GiteaLocalUploader) CreateReleases(releases ...*base.Release) error {
return err
}

// sync tags to releases in database
return models.SyncReleasesWithTags(g.repo, g.gitRepo)
if syncTags {
// sync tags to releases in database
return models.SyncReleasesWithTags(g.repo, g.gitRepo)
}

return nil
}

// CreateIssues creates issues
Expand Down
10 changes: 7 additions & 3 deletions modules/migrations/migrate.go
Original file line number Diff line number Diff line change
Expand Up @@ -161,12 +161,16 @@ func migrateRepository(downloader base.Downloader, uploader base.Uploader, opts
}

relBatchSize := uploader.MaxBatchInsertSize("release")
syncTags := false
for len(releases) > 0 {
if len(releases) < relBatchSize {
relBatchSize = len(releases)
if len(releases) <= relBatchSize {
if len(releases) < relBatchSize {
relBatchSize = len(releases)
}
syncTags = true
}

if err := uploader.CreateReleases(releases[:relBatchSize]...); err != nil {
if err := uploader.CreateReleases(syncTags, releases[:relBatchSize]...); err != nil {
return err
}
releases = releases[relBatchSize:]
Expand Down

0 comments on commit 3bf5a07

Please sign in to comment.