How far is your fork behind/ahead of the upstream project
Release notes
Knowing the state of your fork in relation to its upstream project has become more intuitive. On any branch of your fork, you'll now see how many commits it is behind and/or ahead of the upstream project's main branch. You find this information on the project main page as well as under Repository > Files. In a second iteration, we intend to enable updating your fork's branch from the UI. Any feedback on that issue is welcome.
Problem to solve
Looking at a forked project in GitLab, there is no way to tell how far ahead or behind it is from the upstream project.
Proposal
Need way to show whether or not the origin fork master is in sync with the upstream master. Github currently shows the synchronization status at the top of each branch: (https://github.com/ahocevar/ol3). Would be nice to at least know if the upstream branch is ahead of the origin.
Information to display
- Ahead
- This branch is {#} commits ahead
- Behind
- This branch is {#} commits behind
- Up to date
- This branch is up to date
Looking at the display, here is a comparison of current versus design with fork widget.
Current | Fork branch status |
---|---|
States
Diverged state pending discussion #14491 (comment 1167417913)
Changes from current view
- Added icon of a fork
- Added description about branch status of commits relative to upstream
- Boxed information to match the last commit box
- In a future iteration we may update this styling but for this change we can reduce scope by focusing on the fork widget.
- Move the fork widget below the branch selector
Why move the fork widget below the branch selector?
Showing where a forked repository is behind/ahead the upstream repository is relative to the branch of the fork. The dropdown of the branch selector drives the information of whether it is behind/ahead the upstream repository.
Additionally, a re-base or synchronize button on the origin/master fork would improve the user experience significantly, versus have to do a pull and push to re-synchronize the origin.
Adding actions to synchronize will be handled in this issue Fetch new upstream contents when fork is behind (#330243 - closed)
Availability and Testing
Existing tests might require to be updated to incorporate the feature. Please assign a SET counterpart for an MR review.
This page may contain information related to upcoming products, features and functionality. It is important to note that the information presented is for informational purposes only, so please do not rely on the information for purchasing or planning purposes. Just like with all projects, the items mentioned on the page are subject to change or delay, and the development, release, and timing of any products, features, or functionality remain at the sole discretion of GitLab Inc.