]> source.dussan.org Git - redmine.git/commitdiff
scm: git: use Changeset#create and Changeset#create_change as same with Subversion...
authorToshi MARUYAMA <marutosijp2@yahoo.co.jp>
Thu, 29 Mar 2012 22:41:20 +0000 (22:41 +0000)
committerToshi MARUYAMA <marutosijp2@yahoo.co.jp>
Thu, 29 Mar 2012 22:41:20 +0000 (22:41 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9290 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/models/repository/git.rb

index b048c0f65d402cdfcd7b673467ee7bb89f7551a6..37104cbf04e254fc569dfea4c7f2da98ac3f1191 100644 (file)
@@ -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