-
Notifications
You must be signed in to change notification settings - Fork 29
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Better support SCM functionality #772
Comments
cc @shcheklein @dberenbaum @efiop. Chat about this next time we are all together. |
Note: The native VS Code git extension gets all of the information that it needs from If we are going to emulate what IMO the current DVC implementation of |
Other related issues / comments / discussions:
I think the amount of information lying around actually muddies the waters. |
Having discussed with @efiop and @dberenbaum in the 21/09/14 cross team meeting we came to the following conclusion for next steps:
Points to discuss:
I will start a document now in notion here. We can continue the discussion there. |
Thanks, @mattseddon! Looks great. We actually have a proposal template in Notion. I didn't want to ask you to do that much work, but you basically filled the template already in the doc you created, so I transferred your text into a proposal in https://www.notion.so/iterative/Consolidate-repo-status-ed3cd60f706f4fcaba1d3f3cac1498e9. I'd like to flesh it out with some DVC requirements since this work should also be about improving the user experience within DVC. Take a look and let me know if/when it's okay to start adding on to the proposal. |
This comment has been minimized.
This comment has been minimized.
Issue when running experiments against example-dvc-experiments: microsoft/vscode#133425 cc @shcheklein (for when you see it) |
Demo on why we need two different modified statusesScreen.Recording.2021-10-06.at.1.42.05.pm.movRed = "stage Modified" (changed against HEAD, DVC up to date). Steps
Without a way to differentiate between the two sets of changes (i.e changes between the HEAD and the workspace and what DVC expects and the workspace) this would become even less intuitive to the user. Hopefully this helps to make more sense of why these two statuses are needed. cc @dberenbaum @efiop. Thanks, |
@mattseddon There is now a detailed proposal and examples for |
Work here has been done. |
From #318 the basic user cases are as follows:
Proposal
Notion.
SCM view
Statuses that we currently provide in the extension
diff
+list
diff
+list
diff
+list
+status
diff
+list
diff
+list
diff
+list
+status
git
dvc add
them.list
** Where possible we match the git extension's decorations because we are trying to make the extension feel as native as possible. Our SCM integration is designed to show the user the state of the workspace with respect to the most recent commit.
Current approach (parallel CLI Commands)
list
dvc list . --dvc-only -R --show-json
diff
dvc diff --show-json
added
,deleted
,renamed
,notInCache
. We use it in combination with the status output to determine the difference between modified and "stage modified"status
dvc status --show-json
We currently try to run all three of the above commands in parallel. If any of the commands fail then we will retry all three until they have all completed without error. We do this to best mitigate stale information ending up in the extension.
Issues with the current approach
get-started-experiments
after first running an experiment the output ofdiff
contains ~80k "added" files, none of these files are tracked by dvc so we filter all of the records out)Options for mitigation
--dvc-only
)My preference would be to start work on 4 as it would actually help us move towards 5.
The text was updated successfully, but these errors were encountered: