summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorToshi MARUYAMA <marutosijp2@yahoo.co.jp>2011-05-19 02:16:27 +0000
committerToshi MARUYAMA <marutosijp2@yahoo.co.jp>2011-05-19 02:16:27 +0000
commit098655dbd061111e7389b6558026edf2f6898f97 (patch)
tree2b985daddacb4511a432270ddab1b13072832be1
parent8dc8c625f6261acc72db05e4df5af04fe7a66f4a (diff)
downloadredmine-098655dbd061111e7389b6558026edf2f6898f97.tar.gz
redmine-098655dbd061111e7389b6558026edf2f6898f97.zip
scm: git: set revisions ordering inconsistent in existing database (#5357).
Between version 0.9 r2840 (#1406) and version 1.2 r5073 (#7821, #5357), git revisions are stored as *C-B-A-F-E-D* in database. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@5853 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--app/models/repository/git.rb12
1 files changed, 11 insertions, 1 deletions
diff --git a/app/models/repository/git.rb b/app/models/repository/git.rb
index 3e2edd9f7..7b229a279 100644
--- a/app/models/repository/git.rb
+++ b/app/models/repository/git.rb
@@ -109,7 +109,17 @@ class Repository::Git < Repository
scm_brs = branches
return if scm_brs.nil? || scm_brs.empty?
h = extra_info || {}
- h["branches"] ||= {}
+ h["branches"] ||= {}
+ h["db_consistent"] ||= {}
+ if changesets.count == 0
+ h["db_consistent"]["ordering"] = 1
+ merge_extra_info(h)
+ self.save
+ elsif ! h["db_consistent"].has_key?("ordering")
+ h["db_consistent"]["ordering"] = 0
+ merge_extra_info(h)
+ self.save
+ end
scm_brs.each do |br|
from_scmid = nil
from_scmid = h["branches"][br]["last_scmid"] if h["branches"][br]