Refs: #224517
Complexity: 5
Create Issue
Based on user feedback this milestone we have removed the "Incoming/Outgoing" section from the main "Source Control" view into a separate view called "Source Control Graph". The new view does not yet have feature parity with the old "Incoming/Outgoing" section but that feature gap will be addressed next milestone.
Prerequisites
- Install the latest VS Code Insiders release
- Ensure that the
scm.alwaysShowRepositories is set to false
Known issues
- Graph only supports single selection
- Graph is always scoped to the current branch, it's remote, and the base
- There are cases in which progress is being shown in both the "Source Control" and "Source Control Graph" views
No repository
- Open a folder in VS Code that does not contain a git repository
- Switch to the "Source Control" viewlet
- Confirm that the "Source Control Graph" view is not visible
Single-repository
- Open a folder/workspace that contains a git repository in VS Code
- Switch to the default branch of the repository (ex: main/master)
- Switch to the "Source Control" viewlet
- Confirm that the "Source Control Graph" view appears below the "Source Control" view
- Confirm that the "Source Control Graph" view loads fast and it contains the last 50 commits
- Scroll down in the view
- Confirm that when you scroll to the bottom, the next page of commits is automatically loaded
- Click on various commits in the graph
- Confirm that each commit opens in the multi-file diff editor
- Right click on a commit
- Confirm that each action is working as expected
- Use the status bar command to create a new topic branch
- Confirm that the graph gets updated and you can see labels for both main and the topic branch
- Modify a file, and create a new commit
- Confirm that the graph is being updated correctly
- Click on the "Publish" action in the view title
- Confirm that the graph is being updated correctly (label for remote branch is added)
- Modify a file, create a new commit, click on the "Push" action in the view's title bar
- Confirm that the graph is being updated correctly
- Checkout the default branch
- Confirm that the graph is being updated correctly
Single-repository (fetch)
- Open a folder/workspace that contains a git repository in VS Code
- Switch to the default branch of the repository (ex: main/master)
- In the "Source Control" view click the "Sync Changes" button if needed so that you are up to date
- Open the repository on GitHub and create a commit
- Switch back to VS Code and use the "Fetch" action in the view's title to fetch the new change
- Confirm that the graph is being updated correctly
- Scroll down the graph to load the next page of commits
- Switch back to GitHub and create another commit
- Switch back to VS Code and use the "Fetch" action in the view's title to fetch the new change
- Confirm that the graph is not being refreshed and scroll position remains the same
- Confirm that an "OUTDATED" description is added to the view's title
- Click on the "Refresh" action in the view's title
- Confirm that the graph is being updated correctly
- Confirm that the "OUTDATED" description is gone from the view's title
Multi-repository
- Open a folder/workspace that contains multiple git repositories in VS Code
- Switch to the "Source Control" viewlet and select multiple repositories to be visible
- Confirm that as you select various repositories that repositories in the "Source Control Graph" view are updated
- Scroll down the graph of the first repository
- Confirm that as you get to the bottom there is a "Load More..." entry and the next page is not loaded automatically
- Click on the "Load More..." entry
- Confirm that the next page of commits is loaded
- Try the "Fetch", "Pull", "Push", "Refresh" actions for a repository
Graph
- Clone a popular open source repository (ex: vscode)
- Open the repository in VS Code and open the "Source Control Graph" view
- Scroll down multiple pages of the graph
- Confirm that lines are continuous and the graph makes sense. When in doubt compare with other extensions (ex: Git Graph). If something looks incorrect please file an issue and provide screenshots from both VS Code and the extension.
Refs: #224517
Complexity: 5
Create Issue
Based on user feedback this milestone we have removed the "Incoming/Outgoing" section from the main "Source Control" view into a separate view called "Source Control Graph". The new view does not yet have feature parity with the old "Incoming/Outgoing" section but that feature gap will be addressed next milestone.
Prerequisites
scm.alwaysShowRepositoriesis set tofalseKnown issues
No repository
Single-repository
Single-repository (fetch)
Multi-repository
Graph