From d5a67a1be3b2c1bbbac81e9ce51ee67188dea36e Mon Sep 17 00:00:00 2001 From: Bo-Yi Wu Date: Wed, 21 Feb 2018 15:27:42 +0800 Subject: [PATCH 1/4] fix: if Mirrors repo no content is fetched, updated time should not be changed --- models/repo_mirror.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/models/repo_mirror.go b/models/repo_mirror.go index 197889e19ac69..89df7c79cfb0f 100644 --- a/models/repo_mirror.go +++ b/models/repo_mirror.go @@ -264,6 +264,21 @@ func SyncMirrors() { log.Error(4, "UpdateMirror [%s]: %v", repoID, err) continue } + + // Get latest commit date and compare to current repository updated time, + // update if latest commit date is newer. + commitDate, err := git.GetLatestCommitTime(m.Repo.RepoPath()) + if err != nil { + log.Error(2, "GetLatestCommitDate [%s]: %v", m.RepoID, err) + continue + } else if commitDate.Before(*m.Repo.UpdatedUnix.AsTimePtr()) { + continue + } + + if _, err = x.Exec("UPDATE repository SET updated_unix = ? WHERE id = ?", commitDate.Unix(), m.RepoID); err != nil { + log.Error(2, "Update repository 'updated_unix' [%s]: %v", m.RepoID, err) + continue + } } } From 07ac201cfceaac54b079eca5f9e90b3a63a467ae Mon Sep 17 00:00:00 2001 From: Bo-Yi Wu Date: Thu, 22 Feb 2018 10:04:01 +0800 Subject: [PATCH 2/4] fix: sync update time from mirror repo. --- models/repo_mirror.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/models/repo_mirror.go b/models/repo_mirror.go index 89df7c79cfb0f..20e066b63d6d5 100644 --- a/models/repo_mirror.go +++ b/models/repo_mirror.go @@ -271,8 +271,6 @@ func SyncMirrors() { if err != nil { log.Error(2, "GetLatestCommitDate [%s]: %v", m.RepoID, err) continue - } else if commitDate.Before(*m.Repo.UpdatedUnix.AsTimePtr()) { - continue } if _, err = x.Exec("UPDATE repository SET updated_unix = ? WHERE id = ?", commitDate.Unix(), m.RepoID); err != nil { From e5e87651732fadb31ca1be30c939f6d291f39416 Mon Sep 17 00:00:00 2001 From: Bo-Yi Wu Date: Thu, 22 Feb 2018 13:55:50 +0800 Subject: [PATCH 3/4] fix: one single session. --- models/repo_mirror.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/models/repo_mirror.go b/models/repo_mirror.go index 20e066b63d6d5..eabf5b4a09286 100644 --- a/models/repo_mirror.go +++ b/models/repo_mirror.go @@ -244,6 +244,8 @@ func MirrorUpdate() { // SyncMirrors checks and syncs mirrors. // TODO: sync more mirrors at same time. func SyncMirrors() { + sess := x.NewSession() + defer sess.Close() // Start listening on new sync requests. for repoID := range MirrorQueue.Queue() { log.Trace("SyncMirrors [repo_id: %v]", repoID) @@ -260,7 +262,7 @@ func SyncMirrors() { } m.ScheduleNextUpdate() - if err = UpdateMirror(m); err != nil { + if err = updateMirror(sess, m); err != nil { log.Error(4, "UpdateMirror [%s]: %v", repoID, err) continue } @@ -273,7 +275,7 @@ func SyncMirrors() { continue } - if _, err = x.Exec("UPDATE repository SET updated_unix = ? WHERE id = ?", commitDate.Unix(), m.RepoID); err != nil { + if _, err = sess.Exec("UPDATE repository SET updated_unix = ? WHERE id = ?", commitDate.Unix(), m.RepoID); err != nil { log.Error(2, "Update repository 'updated_unix' [%s]: %v", m.RepoID, err) continue } From ac27f460a0b43f4daad960975b5b71718a0fa9be Mon Sep 17 00:00:00 2001 From: Bo-Yi Wu Date: Thu, 22 Feb 2018 16:26:14 +0800 Subject: [PATCH 4/4] update comment. Signed-off-by: Bo-Yi Wu --- models/repo_mirror.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/models/repo_mirror.go b/models/repo_mirror.go index eabf5b4a09286..97fe2406c65ff 100644 --- a/models/repo_mirror.go +++ b/models/repo_mirror.go @@ -267,8 +267,7 @@ func SyncMirrors() { continue } - // Get latest commit date and compare to current repository updated time, - // update if latest commit date is newer. + // Get latest commit date and update to current repository updated time commitDate, err := git.GetLatestCommitTime(m.Repo.RepoPath()) if err != nil { log.Error(2, "GetLatestCommitDate [%s]: %v", m.RepoID, err)