Mercurial > hg > soundsoftware-site
comparison app/models/repository/git.rb @ 1464:261b3d9a4903 redmine-2.4
Update to Redmine 2.4 branch rev 12663
author | Chris Cannam |
---|---|
date | Tue, 14 Jan 2014 14:37:42 +0000 |
parents | 433d4f72a19b |
children | 51364c0cd58f e248c7af89ec |
comparison
equal
deleted
inserted
replaced
1296:038ba2d95de8 | 1464:261b3d9a4903 |
---|---|
1 # Redmine - project management software | 1 # Redmine - project management software |
2 # Copyright (C) 2006-2012 Jean-Philippe Lang | 2 # Copyright (C) 2006-2013 Jean-Philippe Lang |
3 # Copyright (C) 2007 Patrick Aljord patcito@ŋmail.com | 3 # Copyright (C) 2007 Patrick Aljord patcito@ŋmail.com |
4 # | 4 # |
5 # This program is free software; you can redistribute it and/or | 5 # This program is free software; you can redistribute it and/or |
6 # modify it under the terms of the GNU General Public License | 6 # modify it under the terms of the GNU General Public License |
7 # as published by the Free Software Foundation; either version 2 | 7 # as published by the Free Software Foundation; either version 2 |
189 # We make queries, just if there is any revision. | 189 # We make queries, just if there is any revision. |
190 limit = 100 | 190 limit = 100 |
191 offset = 0 | 191 offset = 0 |
192 revisions_copy = revisions.clone # revisions will change | 192 revisions_copy = revisions.clone # revisions will change |
193 while offset < revisions_copy.size | 193 while offset < revisions_copy.size |
194 recent_changesets_slice = changesets.find( | 194 scmids = revisions_copy.slice(offset, limit).map{|x| x.scmid} |
195 :all, | 195 recent_changesets_slice = changesets.where(:scmid => scmids).all |
196 :conditions => [ | |
197 'scmid IN (?)', | |
198 revisions_copy.slice(offset, limit).map{|x| x.scmid} | |
199 ] | |
200 ) | |
201 # Subtract revisions that redmine already knows about | 196 # Subtract revisions that redmine already knows about |
202 recent_revisions = recent_changesets_slice.map{|c| c.scmid} | 197 recent_revisions = recent_changesets_slice.map{|c| c.scmid} |
203 revisions.reject!{|r| recent_revisions.include?(r.scmid)} | 198 revisions.reject!{|r| recent_revisions.include?(r.scmid)} |
204 offset += limit | 199 offset += limit |
205 end | 200 end |
244 | 239 |
245 def latest_changesets(path,rev,limit=10) | 240 def latest_changesets(path,rev,limit=10) |
246 revisions = scm.revisions(path, nil, rev, :limit => limit, :all => false) | 241 revisions = scm.revisions(path, nil, rev, :limit => limit, :all => false) |
247 return [] if revisions.nil? || revisions.empty? | 242 return [] if revisions.nil? || revisions.empty? |
248 | 243 |
249 changesets.find( | 244 changesets.where(:scmid => revisions.map {|c| c.scmid}).all |
250 :all, | |
251 :conditions => [ | |
252 "scmid IN (?)", | |
253 revisions.map!{|c| c.scmid} | |
254 ], | |
255 :order => 'committed_on DESC' | |
256 ) | |
257 end | 245 end |
258 | 246 |
259 def clear_extra_info_of_changesets | 247 def clear_extra_info_of_changesets |
260 return if extra_info.nil? | 248 return if extra_info.nil? |
261 v = extra_info["extra_report_last_commit"] | 249 v = extra_info["extra_report_last_commit"] |