git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9311 e93f8b46-1217-0410-a6f0-8f06a7374b81tags/1.4.0
@@ -218,21 +218,18 @@ class Repository::Git < Repository | |||
private :save_revisions | |||
def save_revision(rev) | |||
parents = (rev.parents || []).collect{|rp| find_changeset_by_name(rp)}.compact | |||
changeset = Changeset.create( | |||
:repository => self, | |||
:revision => rev.identifier, | |||
:scmid => rev.scmid, | |||
:committer => rev.author, | |||
:committed_on => rev.time, | |||
:comments => rev.message | |||
:comments => rev.message, | |||
:parents => parents | |||
) | |||
unless changeset.new_record? | |||
rev.paths.each { |change| changeset.create_change(change) } | |||
parents = {} | |||
parents[changeset] = rev.parents unless rev.parents.nil? | |||
parents.each do |ch, chparents| | |||
ch.parents = chparents.collect{|rp| find_changeset_by_name(rp)}.compact | |||
end | |||
end | |||
changeset | |||
end |
@@ -140,19 +140,16 @@ class Repository::Mercurial < Repository | |||
(db_rev + 1).step(scm_rev, FETCH_AT_ONCE) do |i| | |||
scm.each_revision('', i, [i + FETCH_AT_ONCE - 1, scm_rev].min) do |re| | |||
transaction do | |||
parents = (re.parents || []).collect{|rp| find_changeset_by_name(rp)}.compact | |||
cs = Changeset.create(:repository => self, | |||
:revision => re.revision, | |||
:scmid => re.scmid, | |||
:committer => re.author, | |||
:committed_on => re.time, | |||
:comments => re.message) | |||
:comments => re.message, | |||
:parents => parents) | |||
unless cs.new_record? | |||
re.paths.each { |e| cs.create_change(e) } | |||
parents = {} | |||
parents[cs] = re.parents unless re.parents.nil? | |||
parents.each do |ch, chparents| | |||
ch.parents = chparents.collect{|rp| find_changeset_by_name(rp)}.compact | |||
end | |||
end | |||
end | |||
end |