-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
dvc update
: support worktree update
#8649
Conversation
Codecov ReportBase: 94.12% // Head: 93.98% // Decreases project coverage by
Additional details and impacted files@@ Coverage Diff @@
## main #8649 +/- ##
==========================================
- Coverage 94.12% 93.98% -0.15%
==========================================
Files 435 435
Lines 33463 33523 +60
Branches 4711 4729 +18
==========================================
+ Hits 31496 31505 +9
- Misses 1538 1587 +49
- Partials 429 431 +2
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. β View full report at Codecov. |
Basic functionality looks good. Need to clarify a few flags:
|
I'm not sure we can actually implement no-download right now with the way cloud versioning is currently implemented. It works for imports because the etag/version/url for the import source is stored separately as a dep, and we just completely remove the output information for the import stage entirely. The problem with supporting this for worktrees is that we have to collect both the cloud/remote etag/version and the local md5 (which requires downloading) for the newly updated output. I guess we will need to just clear the md5 field for worktree I've been thinking about this a little bit and it seems like we probably need to change how we handle worktree remotes in the .dvc file. What we really have in this scenario is a local out, and then one more external data locations for each remote. The external locations function like an import's deps entry, but in this case you could have multiple possible locations (if you configure multiple remotes), and we can also write (push) to the external location as well (so it's not a read-only dependency). related: #8356
I'm not sure supporting |
Makes sense, @pmrowla! Can we throw an error that they are not supported for |
ace4878
to
15e7acd
Compare
β I have followed the Contributing to DVC checklist.
π If this PR requires documentation updates, I have created a separate PR (or issue, at least) in dvc.org and linked it here.
Thank you for the contribution - we'll try to review it as soon as possible. π
Will close #8382
worktree
remote,dvc update <target>...
will update the specified targets to get the latest modifications from the remotedvc push
for worktrees)dvc update
will output a warning and will not make local modificationsdvc update
will output a warning and will not make local modificationsdvc update
for worktrees will only download new and modified files from the remote (it does not re-download an entire remote directory like we do for updating imports)Also note that
dvc update
will only update one target at a time in sequence. When passed multiple targets it updates one target at a time, rather than attempting to batch all of the updates together (this is the same behavior as updating imports with multiple targets)