From 2f83c57be4be14db565961c2b9f0ff85e3e5ff3a Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Mon, 3 Apr 2017 11:55:40 +0000 Subject: Adds file equality check to deduplication hook (#25215). Patch by Jens Kraemer. git-svn-id: http://svn.redmine.org/redmine/trunk@16459 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/models/attachment.rb | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'app/models') diff --git a/app/models/attachment.rb b/app/models/attachment.rb index 8e8cc0ac1..7e6b6bd03 100644 --- a/app/models/attachment.rb +++ b/app/models/attachment.rb @@ -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 -- cgit v1.2.3