Compare a single file between two arbitrary git revisions
<!--IssueSummary start--> <details> <summary> Everyone can contribute. [Help move this issue forward](https://handbook.gitlab.com/handbook/marketing/developer-relations/contributor-success/community-contributors-workflows/#contributor-links) while earning points, leveling up and collecting rewards. </summary> - [Close this issue](https://contributors.gitlab.com/manage-issue?action=close&projectId=278964&issueIid=28555) </details> <!--IssueSummary end--> ### Problem to solve For audit, debugging, or just plain interest purposes, sometimes you need to view the changes in a specific file between two arbitrary revisions in git. Currently, the GitLab UI doesn't give a nice clean way to do this. ### Intended users Engineers, researchers ### Further details You can use the `Compare` page to see *all* changes in a revision, but when there are lots of changes, that can be very slow. If you already know the file, it would be better to be able to provide the name upfront. Git permits you to do this on the command line: ``` lupine@gitlab-t470p:~/dev/gitlab.com/gitlab-org/gdk-ce/gitlab$ git diff v10.0.0..v11.10.0 -- GITALY_SERVER_VERSION diff --git a/GITALY_SERVER_VERSION b/GITALY_SERVER_VERSION index ca75280b09b..7aa332e4163 100644 --- a/GITALY_SERVER_VERSION +++ b/GITALY_SERVER_VERSION @@ -1 +1 @@ -0.38.0 +1.33.0 ``` ### Proposal Allow an optional filename to be provided on the current Compare page: https://gitlab.com/gitlab-org/gitlab-ce/compare?from=master&to=master Add a button to the blob show page: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/GITALY_SERVER_VERSION that takes you to the Compare page with the file and source branch already filled in. This could go by the `Blame` and `History` buttons. ### Permissions and Security Nothing new ### Documentation Update https://docs.gitlab.com/ce/user/project/repository/#compare ### Testing Add a feature spec for this ### What does success look like, and how can we measure that? I can easily see what the Gitaly version change to between two arbitrary tags or branches in gitlab without having to resort to the command line. ### Links / references
issue