Inconsistent Git history actions in views (removed history button on project page in 15.0)
Summary
The removal of the History button on the projects overview page in Remove history and upload btns from project page (!85332 - merged)
- May break existing workflows that are dependent on the mouse/keyboard navigation workflow.
Historyis a clear call-to-action. - Requires the user to understand that the project header "XY Commits" hides the Git history action underneath.
- Hovering and tooltips are not accessible. Also not available on mobile.
- Is inconsistent with other pages
- Viewing a file where the
Historybutton exists as an action. https://gitlab.com/gitlab-org/gitlab/-/blob/master/.gitignore - Repository > Files provides the
Historybutton too. https://gitlab.com/gitlab-org/gitlab/-/tree/master I googledGitLab git historyand landed on https://docs.gitlab.com/ee/user/project/repository/git_history.html
- Viewing a file where the
Additional thoughts on button removal
GitHub removed the History button some years ago too, and since then I struggle to find the XY commits URL in their UI.
The problem with the XY commits URL is that it is not a fixed size. Can be 1 commit, 12 commits, 123 commits, 1234 commits, and so on. Whereas History (or log referring to git log) is clear and static.
Steps to reproduce
- Open a project and view the main page overview, misses the
Historybutton - Open Repository > Files - see History button
- Open a file from the tree view, see History button
Example Project
What is the current bug behavior?
The history button is gone on the project page, which requires to learn a different workflow, and is inconsistent with other views.
What is the expected correct behavior?
Inspect the Git History on all pages in the same way. That can be a History button as action, or something else.
Viewing the git tree and file history to identify changes over time is one of my most common workflows during development.
Relevant logs and/or screenshots
Project view: https://gitlab.com/gitlab-com/www-gitlab-com
File view: https://gitlab.com/gitlab-com/www-gitlab-com/-/blob/master/.ruby-version
Output of checks
This bug happens on GitLab.com
Results of GitLab environment info
Expand for output related to GitLab environment info
(For installations with omnibus-gitlab package run and paste the output of: `sudo gitlab-rake gitlab:env:info`) (For installations from source run and paste the output of: `sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production`)
Results of GitLab application Check
Expand for output related to the GitLab application check
(For installations with omnibus-gitlab package run and paste the output of:
sudo gitlab-rake gitlab:check SANITIZE=true)(For installations from source run and paste the output of:
sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production SANITIZE=true)(we will only investigate if the tests are passing)
Possible fixes
Original proposal
- Re-add the
Historybutton in the projects view- Renaming History to Commits for consistency
- Discuss/implement a new "Git History" action across all pages in GitLab
- Going to start with consistent button order across pages.
cc @mvanremmerden @annabeldunstone @pslaughter
History button to be relabelled
Relabel all buttons "History" to Commits.
There are valid reasons to keep the name "History" as the button label too from the issue summary.
However at the moment both "Commits" and "History" take you to a page URL /-/commits.
A solution validation looked at renaming "History" to "Commits" for the project overview and directory repository views.
Button positions
Buttons should be rearranged for consistency.
Current
- Project overview: Find file, Web IDE, Download, Clone
- Directory: Lock, History, Find file, Web IDE, Download, Clone
- File: Find file, Blame, History, Permalink
Proposed update
- Project overview: Find file, Web IDE, Download, Clone
- Directory: Lock, Find file, Commits, Web IDE, Download, Clone
- File: Find file, Commits, Blame, Permalink
In the future we could look into exploring a new "Git History" action across all pages in GitLab if we identify a need for it.

