]> source.dussan.org Git - redmine.git/commitdiff
Adds file equality check to deduplication hook (#25215).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Mon, 3 Apr 2017 11:55:40 +0000 (11:55 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Mon, 3 Apr 2017 11:55:40 +0000 (11:55 +0000)
Patch by Jens Kraemer.

git-svn-id: http://svn.redmine.org/redmine/trunk@16459 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/models/attachment.rb

index 8e8cc0ac1aed390f37e5761e8ced493446685918..7e6b6bd03e31b79b41492d867663bd58d8ec3ce6 100644 (file)
@@ -422,9 +422,16 @@ class Attachment < ActiveRecord::Base
                       .first
 
         original_diskfile = self.diskfile
-        self.update_columns disk_directory: existing.disk_directory,
-                            disk_filename: existing.disk_filename
-        File.delete(original_diskfile) if File.exist?(original_diskfile)
+        existing_diskfile = existing.diskfile
+
+        if File.readable?(original_diskfile) &&
+          File.readable?(existing_diskfile) &&
+          FileUtils.identical?(original_diskfile, existing_diskfile)
+
+          self.update_columns disk_directory: existing.disk_directory,
+                              disk_filename: existing.disk_filename
+          File.delete(original_diskfile)
+        end
       end
     end
   end