]> git.openstreetmap.org Git - rails.git/blobdiff - app/models/relation.rb
Dressed up friend_notification mail
[rails.git] / app / models / relation.rb
index e5e4ec894c8d699ca781e69bc6564b376d8988c5..b78c95ce4ddc9f9c0c9f99b61a6a683ed627c67c 100644 (file)
@@ -281,15 +281,19 @@ class Relation < ActiveRecord::Base
   private
 
   def save_with_history!
   private
 
   def save_with_history!
+    t = Time.now.getutc
+
+    self.version += 1
+    self.timestamp = t
+
     Relation.transaction do
       # have to be a little bit clever here - to detect if any tags
       # changed then we have to monitor their before and after state.
       tags_changed = false
 
     Relation.transaction do
       # have to be a little bit clever here - to detect if any tags
       # changed then we have to monitor their before and after state.
       tags_changed = false
 
-      t = Time.now.getutc
-      self.version += 1
-      self.timestamp = t
-      save!
+      # clone the object before saving it so that the original is
+      # still marked as dirty if we retry the transaction
+      clone.save!
 
       tags = self.tags.clone
       relation_tags.each do |old_tag|
 
       tags = self.tags.clone
       relation_tags.each do |old_tag|