UI is non-helpful when a squash fails during merge
Summary
When a squash fails on merging, the error message is unhelpful and disappears from the screen after 10 seconds, leaving no indication that there was a problem.
Steps to reproduce
Conflicting changes in master and the feature branch should be enough to trigger this — in this particular case, a file was edited in the feature branch and removed (incorrectly, as it turns out) in master after the branch had been taken. If git rebase master
fails on the feature branch, that should indicate this message will be triggered.
What is the current bug behavior?
When a squash fails during a merge, the message "Failed to squash. Should be done manually.. Refreshing in 10 seconds to show the updated status..." shows.
After the 10 seconds elapse, the message vanishes and the window looks exactly like it did before the "merge" button was clicked. Somebody not looking at the screen in that 10 second window will have no idea why they are looking at a merge request which has not been squashed and merged. This is particularly problematic if using "merge on pipeline success", as it's expected that the user will not be monitoring the screen.
What is the expected correct behavior?
The message should require manual dismissal rather than being on a timer, allowing people a chance to see that there was a failure.
The message should, if possible, give some indication of the cause of the failure, rather than just "computer says no".
There should be a hyperlink to a documentation page on how to manually squash from within GitLab — git rebase -i
followed by git push --force
seems to work, but plenty of people would greatly appreciate having some help here, if only to confirm that they're not about to horribly mess things up.
On a really pedantic note, the ellipsis after "manually" should be three dots, not two :)
Relevant logs and/or screenshots
Output of checks
(If you are reporting a bug on GitLab.com, write: This bug happens on GitLab.com)
Results of GitLab environment info
Expand for output related to GitLab environment info
System information System: Current User: git Using RVM: no Ruby Version: 2.5.3p105 Gem Version: 2.7.6 Bundler Version:1.16.6 Rake Version: 12.3.1 Redis Version: 3.2.12 Git Version: 2.18.1 Sidekiq Version:5.2.3 Go Version: unknownGitLab information Version: 11.6.3 Revision: bc9391c Directory: /opt/gitlab/embedded/service/gitlab-rails DB Adapter: postgresql URL: https://git.omgponies.org.uk HTTP Clone URL: https://git.omgponies.org.uk/some-group/some-project.git SSH Clone URL: git@git.omgponies.org.uk:some-group/some-project.git Using LDAP: no Using Omniauth: yes Omniauth Providers:
GitLab Shell Version: 8.4.3 Repository storage paths:
- default: /var/opt/gitlab/git-data/repositories Hooks: /opt/gitlab/embedded/service/gitlab-shell/hooks Git: /opt/gitlab/embedded/bin/git
Results of GitLab application Check
Expand for output related to the GitLab application check
Checking GitLab subtasks ...Checking GitLab Shell ...
GitLab Shell: ... GitLab Shell version >= 8.4.3 ? ... OK (8.4.3) Running /opt/gitlab/embedded/service/gitlab-shell/bin/check Check GitLab API access: OK Redis available via internal API: OK
Access to /var/opt/gitlab/.ssh/authorized_keys: OK gitlab-shell self-check successful
Checking GitLab Shell ... Finished
Checking Gitaly ...
Gitaly: ... default ... OK
Checking Gitaly ... Finished
Checking Sidekiq ...
Sidekiq: ... Running? ... yes Number of Sidekiq processes ... 1
Checking Sidekiq ... Finished
Checking Incoming Email ...
Incoming Email: ... Reply by email is disabled in config/gitlab.yml
Checking Incoming Email ... Finished
Checking LDAP ...
LDAP: ... LDAP is disabled in config/gitlab.yml
Checking LDAP ... Finished
Checking GitLab App ...
Git configured correctly? ... yes Database config exists? ... yes All migrations up? ... yes Database contains orphaned GroupMembers? ... no GitLab config exists? ... yes GitLab config up to date? ... yes Log directory writable? ... yes Tmp directory writable? ... yes Uploads directory exists? ... yes Uploads directory has correct permissions? ... yes Uploads directory tmp has correct permissions? ... yes Init script exists? ... skipped (omnibus-gitlab has no init script) Init script up-to-date? ... skipped (omnibus-gitlab has no init script) Projects have namespace: ... 3/1 ... yes 2/2 ... yes 2/3 ... yes 3/4 ... yes 2/5 ... yes Redis version >= 2.8.0? ... yes Ruby version >= 2.3.5 ? ... yes (2.5.3) Git version >= 2.18.0 ? ... yes (2.18.1) Git user has default SSH configuration? ... yes Active users: ... 2
Checking GitLab App ... Finished
Checking GitLab subtasks ... Finished
Possible fixes
(If you can, link to the line of code that might be responsible for the problem)