scm: git: backout r8840 (#8857, #9472)

reduce saving heads times in fetching revisions.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9141 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Toshi MARUYAMA 2012-03-07 05:57:29 +00:00
parent 2bcf9f2871
commit 374c2aa705
1 changed files with 2 additions and 7 deletions

View File

@ -162,12 +162,10 @@ class Repository::Git < Repository
opts[:excludes] = prev_db_heads opts[:excludes] = prev_db_heads
opts[:includes] = repo_heads opts[:includes] = repo_heads
begin begin
cnt = 0
scm.revisions('', nil, nil, opts) do |rev| scm.revisions('', nil, nil, opts) do |rev|
cnt += 1
db_rev = find_changeset_by_name(rev.scmid) db_rev = find_changeset_by_name(rev.scmid)
if db_rev.nil? transaction do
transaction do if db_rev.nil?
db_saved_rev = save_revision(rev) db_saved_rev = save_revision(rev)
parents = {} parents = {}
parents[db_saved_rev] = rev.parents unless rev.parents.nil? parents[db_saved_rev] = rev.parents unless rev.parents.nil?
@ -175,9 +173,6 @@ class Repository::Git < Repository
ch.parents = chparents.collect{|rp| find_changeset_by_name(rp)}.compact ch.parents = chparents.collect{|rp| find_changeset_by_name(rp)}.compact
end end
end end
end
if cnt > 100
cnt = 0
h["heads"] = prev_db_heads.dup h["heads"] = prev_db_heads.dup
h["heads"] << rev.scmid h["heads"] << rev.scmid
merge_extra_info(h) merge_extra_info(h)