##// END OF EJS Templates
scm: git: reduce saving heads times in fetching revisions (#8857, #9472)...
Toshi MARUYAMA -
r9023:bcba955456c7
parent child
Show More
@@ -154,10 +154,13 class Repository::Git < Repository
154 154 from_scmid = h["branches"][br]["last_scmid"] if h["branches"][br]
155 155 h["branches"][br] ||= {}
156 156 begin
157 cnt = 0
158 last_rev_scmid = nil
157 159 scm.revisions('', from_scmid, br, {:reverse => true}) do |rev|
160 cnt += 1
158 161 db_rev = find_changeset_by_name(rev.revision)
159 transaction do
160 if db_rev.nil?
162 if db_rev.nil?
163 transaction do
161 164 db_saved_rev = save_revision(rev)
162 165 parents = {}
163 166 parents[db_saved_rev] = rev.parents unless rev.parents.nil?
@@ -165,11 +168,20 class Repository::Git < Repository
165 168 ch.parents = chparents.collect{|rp| find_changeset_by_name(rp)}.compact
166 169 end
167 170 end
168 h["branches"][br]["last_scmid"] = rev.scmid
171 end
172 last_rev_scmid = rev.scmid
173 if cnt > 100
174 cnt = 0
175 h["branches"][br]["last_scmid"] = last_rev_scmid
169 176 merge_extra_info(h)
170 177 self.save
171 178 end
172 179 end
180 unless last_rev_scmid.nil?
181 h["branches"][br]["last_scmid"] = last_rev_scmid
182 merge_extra_info(h)
183 self.save
184 end
173 185 rescue Redmine::Scm::Adapters::CommandFailed => e
174 186 logger.error("save revisions error: #{e.message}")
175 187 end
General Comments 0
You need to be logged in to leave comments. Login now