mirror of
https://github.com/go-gitea/gitea
synced 2025-07-22 18:28:37 +00:00
Refactor Pull Mirror and fix out-of-sync bugs (#24732)
The "mirror" table and "repository" table might be out-of-sync in some cases. It means that "IsMirror=true" but "Mirror=nil" This PR removes unnecessary "Mirror" field, rename "Mirror" to "PullMirror" and fix nil panic bug. Screenshot of changed templates:  
This commit is contained in:
@@ -198,6 +198,15 @@ func SettingsPost(ctx *context.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
pullMirror, err := repo_model.GetMirrorByRepoID(ctx, ctx.Repo.Repository.ID)
|
||||
if err == repo_model.ErrMirrorNotExist {
|
||||
ctx.NotFound("", nil)
|
||||
return
|
||||
}
|
||||
if err != nil {
|
||||
ctx.ServerError("GetMirrorByRepoID", err)
|
||||
return
|
||||
}
|
||||
// This section doesn't require repo_name/RepoName to be set in the form, don't show it
|
||||
// as an error on the UI for this action
|
||||
ctx.Data["Err_RepoName"] = nil
|
||||
@@ -209,15 +218,15 @@ func SettingsPost(ctx *context.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
ctx.Repo.Mirror.EnablePrune = form.EnablePrune
|
||||
ctx.Repo.Mirror.Interval = interval
|
||||
ctx.Repo.Mirror.ScheduleNextUpdate()
|
||||
if err := repo_model.UpdateMirror(ctx, ctx.Repo.Mirror); err != nil {
|
||||
pullMirror.EnablePrune = form.EnablePrune
|
||||
pullMirror.Interval = interval
|
||||
pullMirror.ScheduleNextUpdate()
|
||||
if err := repo_model.UpdateMirror(ctx, pullMirror); err != nil {
|
||||
ctx.ServerError("UpdateMirror", err)
|
||||
return
|
||||
}
|
||||
|
||||
u, err := git.GetRemoteURL(ctx, ctx.Repo.Repository.RepoPath(), ctx.Repo.Mirror.GetRemoteName())
|
||||
u, err := git.GetRemoteURL(ctx, ctx.Repo.Repository.RepoPath(), pullMirror.GetRemoteName())
|
||||
if err != nil {
|
||||
ctx.Data["Err_MirrorAddress"] = true
|
||||
handleSettingRemoteAddrError(ctx, err, form)
|
||||
@@ -237,7 +246,7 @@ func SettingsPost(ctx *context.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
if err := mirror_service.UpdateAddress(ctx, ctx.Repo.Mirror, address); err != nil {
|
||||
if err := mirror_service.UpdateAddress(ctx, pullMirror, address); err != nil {
|
||||
ctx.ServerError("UpdateAddress", err)
|
||||
return
|
||||
}
|
||||
@@ -259,9 +268,9 @@ func SettingsPost(ctx *context.Context) {
|
||||
}
|
||||
}
|
||||
|
||||
ctx.Repo.Mirror.LFS = form.LFS
|
||||
ctx.Repo.Mirror.LFSEndpoint = form.LFSEndpoint
|
||||
if err := repo_model.UpdateMirror(ctx, ctx.Repo.Mirror); err != nil {
|
||||
pullMirror.LFS = form.LFS
|
||||
pullMirror.LFSEndpoint = form.LFSEndpoint
|
||||
if err := repo_model.UpdateMirror(ctx, pullMirror); err != nil {
|
||||
ctx.ServerError("UpdateMirror", err)
|
||||
return
|
||||
}
|
||||
|
Reference in New Issue
Block a user