aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gogs.go2
-rw-r--r--models/mirror.go16
-rw-r--r--templates/.VERSION2
-rw-r--r--vendor/github.com/gogits/git-module/git.go2
-rw-r--r--vendor/github.com/gogits/git-module/repo.go15
-rw-r--r--vendor/vendor.json6
6 files changed, 34 insertions, 9 deletions
diff --git a/gogs.go b/gogs.go
index 11b7f407..30bbd941 100644
--- a/gogs.go
+++ b/gogs.go
@@ -16,7 +16,7 @@ import (
"github.com/gogits/gogs/pkg/setting"
)
-const APP_VER = "0.11.5.0406"
+const APP_VER = "0.11.6.0406"
func init() {
setting.AppVer = APP_VER
diff --git a/models/mirror.go b/models/mirror.go
index 30a0155f..778632b4 100644
--- a/models/mirror.go
+++ b/models/mirror.go
@@ -184,7 +184,7 @@ func (m *Mirror) SaveAddress(addr string) error {
return fmt.Errorf("Load: %v", err)
}
- cfg.Section("remote \"origin\"").Key("url").SetValue(escapeMirrorCredentials(addr))
+ cfg.Section(`remote "origin"`).Key("url").SetValue(escapeMirrorCredentials(addr))
return cfg.SaveToIndent(configPath, "\t")
}
@@ -320,9 +320,19 @@ func SyncMirrors() {
continue
}
- // Update repository last updated time
- if _, err = x.Exec("UPDATE repository SET updated_unix = ? WHERE id = ?", time.Now().Unix(), m.RepoID); err != nil {
+ // Get latest commit date and compare to current repository updated time,
+ // update if latest commit date is newer.
+ commitDate, err := git.GetLatestCommitDate(m.Repo.RepoPath(), "")
+ if err != nil {
+ log.Error(2, "GetLatestCommitDate [%s]: %v", m.RepoID, err)
+ continue
+ } else if commitDate.Before(m.Repo.Updated) {
+ 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
}
}
}
diff --git a/templates/.VERSION b/templates/.VERSION
index f9dd6482..8d050332 100644
--- a/templates/.VERSION
+++ b/templates/.VERSION
@@ -1 +1 @@
-0.11.5.0406 \ No newline at end of file
+0.11.6.0406 \ No newline at end of file
diff --git a/vendor/github.com/gogits/git-module/git.go b/vendor/github.com/gogits/git-module/git.go
index 538e66d7..f56d054e 100644
--- a/vendor/github.com/gogits/git-module/git.go
+++ b/vendor/github.com/gogits/git-module/git.go
@@ -10,7 +10,7 @@ import (
"time"
)
-const _VERSION = "0.6.0"
+const _VERSION = "0.6.1"
func Version() string {
return _VERSION
diff --git a/vendor/github.com/gogits/git-module/repo.go b/vendor/github.com/gogits/git-module/repo.go
index aef9f385..ca4805f5 100644
--- a/vendor/github.com/gogits/git-module/repo.go
+++ b/vendor/github.com/gogits/git-module/repo.go
@@ -278,3 +278,18 @@ func GetRepoSize(repoPath string) (*CountObject, error) {
return countObject, nil
}
+
+// GetLatestCommitDate returns the date of latest commit of repository.
+// If branch is empty, it returns the latest commit across all branches.
+func GetLatestCommitDate(repoPath, branch string) (time.Time, error) {
+ cmd := NewCommand("for-each-ref", "--count=1", "--sort=-committerdate", "--format=%(committerdate:iso8601)")
+ if len(branch) > 0 {
+ cmd.AddArguments("refs/heads/" + branch)
+ }
+ stdout, err := cmd.RunInDir(repoPath)
+ if err != nil {
+ return time.Time{}, err
+ }
+
+ return time.Parse("2006-01-02 15:04:05 -0700", strings.TrimSpace(stdout))
+}
diff --git a/vendor/vendor.json b/vendor/vendor.json
index bbfa8356..0118a017 100644
--- a/vendor/vendor.json
+++ b/vendor/vendor.json
@@ -177,10 +177,10 @@
"revisionTime": "2016-08-10T03:50:02Z"
},
{
- "checksumSHA1": "XT0fyELKMKgb4XeMAtIrmi4SetM=",
+ "checksumSHA1": "OmDPIa3NWPpl/rItpYC/Ig/m/gI=",
"path": "github.com/gogits/git-module",
- "revision": "2a496cad1f36aed60b14844b33b68eb3edfc2718",
- "revisionTime": "2017-04-04T05:59:12Z"
+ "revision": "1ebf9618c02c9480312bb55bccda7886c8d4caac",
+ "revisionTime": "2017-04-07T00:57:10Z"
},
{
"checksumSHA1": "D2kVXl0QpIw6t3891Sl7IM9wL+w=",