MR Review: Show changed file diff (Git-provided)
Problem to solve
After implementing #264 (closed), user can see change diff for an MR file, but the change needs to be fetched from the GitLab API, putting additional load on the API but mainly decreasing the responsivness of the review. Often the file is going to be already present in the local Git repo and that's where we'll try to get it from.
Proposal
Implement a content provider that will be able to serve file content for a specific version. It will serve this content from the local git repository.
Further details
Showing the diff is explained in the MR Review POC. When we are done, we'll have a chain of content providers as shown in:
graph LR
A[VS Code] -- "gl-review: URI" --> B[LocalGitContentProvider]
B --> C[RemoteApiContentProvider]
This issue implements the LocalGitContentProvider
Good way to approach this is going to be to use the native Git extension that is always present as a part of VS Code. That way we'll have all git-related information in VS Code in sync. Eventually we might want to move away from executing the git command ourselves in other parts of the codebase as well.