Replaces all the explicit include metadata syntax in the specs (tag:
true) into the implicit one (:tag).
Added a cop to prevent future errors and handle autocorrection.
This commit moves the rendering of the button back to the server, and
shows/hides it using opacity rather than display. It also removes the
transform applied to the button on hover (scale). Previously, both of these
factors automatically triggered a reflow, which creates a performance
bottleneck on pages with larger DOM size.
MR: !12103
This is controlled with the feature flag gitlab_git_diff_size_limit_increase.
Both of these limits were basically picked arbitrarily in the first place;
disabling the feature flag reverts to the old limits.
```
Failure/Error: namespace.human_name + ' / ' + name
ActionView::Template::Error:
undefined method `+' for nil:NilClass
# ./app/models/project.rb:807:in `name_with_namespace'
# ./app/views/layouts/project.html.haml:1:in `_app_views_layouts_project_html_haml___2918737809244135908_70160161538920
'
# ./app/controllers/projects/commit_controller.rb:23:in `show'
# ./lib/gitlab/request_profiler/middleware.rb:15:in `call'
# ./lib/gitlab/middleware/go.rb:16:in `call'
# ./lib/gitlab/middleware/static.rb:9:in `call'
# ------------------
# --- Caused by: ---
# NoMethodError:
# undefined method `+' for nil:NilClass
# ./app/models/project.rb:807:in `name_with_namespace'
```
Capybara's `click_link` method doesn't actually wait for the page to reload.
When the `expand_all_diffs` parameter is used, we need to search for unique
elements that appear to ensure that the page has actually reloaded.
Closes#21841