diff --git a/app/models/repository.rb b/app/models/repository.rb
index d9c5ec817a013df2093498dceed369636a5d3a29..39264726c9c100f36c168a6d403c5520fd6aa6a3 100644
--- a/app/models/repository.rb
+++ b/app/models/repository.rb
@@ -750,7 +750,7 @@ class Repository
       }
 
       if options[:previous_path]
-        commit_options[:file].merge!(previous_path: options[:previous_path])
+        commit_options[:file][:previous_path] = options[:previous_path]
 
         Gitlab::Git::Blob.rename(raw_repository, commit_options)
       else
diff --git a/app/views/projects/blob/_editor.html.haml b/app/views/projects/blob/_editor.html.haml
index 3c64b2f5e96e165cc02aa3464c21baaf13a2e8a3..31bd4646d3dd7d4b91d65cc0360c9550205f65bf 100644
--- a/app/views/projects/blob/_editor.html.haml
+++ b/app/views/projects/blob/_editor.html.haml
@@ -4,11 +4,9 @@
       = icon('code-fork')
       = ref
     %span.editor-file-name
-      - if current_action?(:edit) && can?(current_user, :push_code, @project)
-        = text_field_tag 'file_name', params[:file_name], placeholder: @path,
+      -if current_action?(:edit) || current_action?(:update)
+        = text_field_tag 'file_name', (params[:file_name] or @path),
                                       class: 'form-control new-file-name'
-      - else
-        = @path
 
     - if current_action?(:new) || current_action?(:create)
       %span.editor-file-name