From: Toshi MARUYAMA Date: Thu, 29 Mar 2012 22:41:20 +0000 (+0000) Subject: scm: git: use Changeset#create and Changeset#create_change as same with Subversion... X-Git-Tag: 1.4.0~75 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=f36eb54141c67f8d33a741182d5754ebec77d391;p=redmine.git scm: git: use Changeset#create and Changeset#create_change as same with Subversion and Mercurial git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9290 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- diff --git a/app/models/repository/git.rb b/app/models/repository/git.rb index b048c0f65..37104cbf0 100644 --- a/app/models/repository/git.rb +++ b/app/models/repository/git.rb @@ -208,12 +208,7 @@ class Repository::Git < Repository transaction do # There is no search in the db for this revision, because above we ensured, # that it's not in the db. - db_saved_rev = save_revision(rev) - parents = {} - parents[db_saved_rev] = rev.parents unless rev.parents.nil? - parents.each do |ch, chparents| - ch.parents = chparents.collect{|rp| find_changeset_by_name(rp)}.compact - end + save_revision(rev) end end h["heads"] = repo_heads.dup @@ -223,7 +218,7 @@ class Repository::Git < Repository private :save_revisions def save_revision(rev) - changeset = Changeset.new( + changeset = Changeset.create( :repository => self, :revision => rev.identifier, :scmid => rev.scmid, @@ -231,12 +226,12 @@ class Repository::Git < Repository :committed_on => rev.time, :comments => rev.message ) - if changeset.save - rev.paths.each do |file| - Change.create( - :changeset => changeset, - :action => file[:action], - :path => file[:path]) + 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