##// END OF EJS Templates
scm: git: reduce saving heads times in fetching revisions (#8857, #9472)...
Toshi MARUYAMA -
r8720:165327a074d8
parent child
Show More
@@ -162,10 +162,12 class Repository::Git < Repository
162 opts[:excludes] = prev_db_heads
162 opts[:excludes] = prev_db_heads
163 opts[:includes] = repo_heads
163 opts[:includes] = repo_heads
164 begin
164 begin
165 cnt = 0
165 scm.revisions('', nil, nil, opts) do |rev|
166 scm.revisions('', nil, nil, opts) do |rev|
167 cnt += 1
166 db_rev = find_changeset_by_name(rev.scmid)
168 db_rev = find_changeset_by_name(rev.scmid)
167 transaction do
169 if db_rev.nil?
168 if db_rev.nil?
170 transaction do
169 db_saved_rev = save_revision(rev)
171 db_saved_rev = save_revision(rev)
170 parents = {}
172 parents = {}
171 parents[db_saved_rev] = rev.parents unless rev.parents.nil?
173 parents[db_saved_rev] = rev.parents unless rev.parents.nil?
@@ -173,6 +175,9 class Repository::Git < Repository
173 ch.parents = chparents.collect{|rp| find_changeset_by_name(rp)}.compact
175 ch.parents = chparents.collect{|rp| find_changeset_by_name(rp)}.compact
174 end
176 end
175 end
177 end
178 end
179 if cnt > 100
180 cnt = 0
176 h["heads"] = prev_db_heads.dup
181 h["heads"] = prev_db_heads.dup
177 h["heads"] << rev.scmid
182 h["heads"] << rev.scmid
178 merge_extra_info(h)
183 merge_extra_info(h)
General Comments 0
You need to be logged in to leave comments. Login now