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"]