-
Notifications
You must be signed in to change notification settings - Fork 34.9k
Closed
Labels
Milestone
Description
Refs: #192290
- anyOS @joaomoreno
- anyOS @rzhao271
Complexity: 5
This milestone we have added the information about the incoming/outgoing changes between the current local branch and the upstream/base branch in the main "Source Control" view. As the new functionality will be enabled by default, we would like to ensure that it meets our quality bar for a feature that is enabled by default. Thank you!
Prerequisites
- Install the latest VS Insiders release
- Ensure that the following settings have their default value:
- scm.showIncomingChanges
- scm.showOutgoingChanges
Publish branch flow
- Launch VS Code Insiders and open a folder/workspace that contains a git repository
- Ensure that you have a clean working tree and you are currently on the default branch (ex: main)
- Create a new topic branch (ex: topic-branch)
- Create several commits with additions, modifications, deletions
- Confirm that after the first commit, a node appears showing the outgoing changes
- Confirm that for subsequent commits, the outgoing changes node updates as expected
- Expand the "All Changes" node under outgoing changes confirm that all files appear that were changed
- Expand each commit and confirm that they contain the correct information
- Confirm that the file decorations (a: A, M, D) appear correctly for each resource
- Make some more changes and use "Commit (Amend)" in the commit action button
- Confirm that the last commit entry is updated correctly
- Click the "Publish Branch" action button
- Confirm that the branch has been published to the remote
- Confirm that the outgoing changes item is not show any more
Sync changes flow
- Make some more changes locally and commit them
- Confirm that your change appears as outgoing changes
- Open https://gihub.com and make some changes and commit them
- Switch back to VS Code and manually run the "Git: Fetch" command
- Expand the incoming changes entry
- Confirm that the summary node contains all the changes
- Confirm that the commit nodes contain the correct data
- Click the "Sync Changes" button
- Confirm that changes are pulled from the repository, and pushed to the upstream
- Confirm that the incoming/outgoing changes nodes are gone
- Confirm that the "Sync Changes" button is being disabled
View mode (list vs. tree)
- Launch VS Code Insiders and open a folder/workspace that contains a git repository
- Ensure that you have a clean working tree and you are currently on the default branch (ex: main)
- Make some changes and create multiple commits
- Expand the summary node, and the commit nodes under outgoing changes
- Use the action in the view's title bar to switch between list/tree view
- Confirm that the Tree/List is rendered correctly (expansion, selection)
- Confirm that the file decorations appear correctly in both modes
Settings
- Launch VS Code Insiders and open a folder/workspace that contains a git repository
- Switch to a branch that has an upstream (ex: main)
- Pull the latest from main, and ensure that you have a clean working tree
- Make a change to one or more files and commit the changes
- Confirm that the commit appears as outgoing changes
- Open settings, and set
scm.showIncomingChanges
toalways
- Confirm that the outgoing changes node appears, but it has 0 changes
- Set
scm.showIncomingChanges
andscm.showOutgoingChanges
tonever
- Confirm that incoming/outgoing changes are not shown in the view