]> source.dussan.org Git - gitea.git/commitdiff
Add option to disable automatic mirror syncing. (#5242)
authorJonas Bröms <9416498+cez81@users.noreply.github.com>
Thu, 8 Nov 2018 23:58:02 +0000 (00:58 +0100)
committertechknowlogick <hello@techknowlogick.com>
Thu, 8 Nov 2018 23:58:02 +0000 (18:58 -0500)
Setting the interval to 0 will disable to automatic syncing.

models/repo_mirror.go
options/locale/locale_en-US.ini
routers/repo/setting.go

index 447d05530774d5072424060f0e55ee70f63dee4b..9f8c9bee659ab93c7dabdebf4f5eb1b1915f28cd 100644 (file)
@@ -63,7 +63,11 @@ func (m *Mirror) AfterLoad(session *xorm.Session) {
 
 // ScheduleNextUpdate calculates and sets next update time.
 func (m *Mirror) ScheduleNextUpdate() {
-       m.NextUpdateUnix = util.TimeStampNow().AddDuration(m.Interval)
+       if m.Interval != 0 {
+               m.NextUpdateUnix = util.TimeStampNow().AddDuration(m.Interval)
+       } else {
+               m.NextUpdateUnix = 0
+       }
 }
 
 func remoteAddress(repoPath string) (string, error) {
@@ -302,6 +306,7 @@ func MirrorUpdate() {
 
        if err := x.
                Where("next_update_unix<=?", time.Now().Unix()).
+               And("next_update_unix!=0").
                Iterate(new(Mirror), func(idx int, bean interface{}) error {
                        m := bean.(*Mirror)
                        if m.Repo == nil {
index 6f323415754b25bb26dc14fc183a3cffa5928ea1..a82acc3dd10f4e8542fd826c3847f23324aeb098 100644 (file)
@@ -524,7 +524,7 @@ create_repo = Create Repository
 default_branch = Default Branch
 mirror_prune = Prune
 mirror_prune_desc = Remove obsolete remote-tracking references
-mirror_interval = Mirror Interval (valid time units are 'h', 'm', 's')
+mirror_interval = Mirror Interval (valid time units are 'h', 'm', 's'). 0 to disable automatic sync.
 mirror_interval_invalid = The mirror interval is not valid.
 mirror_address = Clone From URL
 mirror_address_desc = Include any required authorization credentials in the URL.
index ff6b07f8e0e72c0fcda8facf50c9f51b19184749..61b00d793bfaedd0fbb3e4bfd93c804a8aed2cae 100644 (file)
@@ -117,12 +117,16 @@ func SettingsPost(ctx *context.Context, form auth.RepoSettingForm) {
                }
 
                interval, err := time.ParseDuration(form.Interval)
-               if err != nil || interval < setting.Mirror.MinInterval {
+               if err != nil && (interval != 0 || interval < setting.Mirror.MinInterval) {
                        ctx.RenderWithErr(ctx.Tr("repo.mirror_interval_invalid"), tplSettingsOptions, &form)
                } else {
                        ctx.Repo.Mirror.EnablePrune = form.EnablePrune
                        ctx.Repo.Mirror.Interval = interval
-                       ctx.Repo.Mirror.NextUpdateUnix = util.TimeStampNow().AddDuration(interval)
+                       if interval != 0 {
+                               ctx.Repo.Mirror.NextUpdateUnix = util.TimeStampNow().AddDuration(interval)
+                       } else {
+                               ctx.Repo.Mirror.NextUpdateUnix = 0
+                       }
                        if err := models.UpdateMirror(ctx.Repo.Mirror); err != nil {
                                ctx.RenderWithErr(ctx.Tr("repo.mirror_interval_invalid"), tplSettingsOptions, &form)
                                return