-
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
scm: add config option to stage files automatically #4543
Conversation
Thinking more on this I do think it would be much better to fork in |
I moved the logic to |
Also, I was not sure about handling of If noone has objections to this I'll start looking at adding documentation possibilities soon. Edit: And look at tests. I looked at the tests before this failed now so I think I know what failed and why. |
6dc33d4
to
54f6595
Compare
Okay, I added I'm a little lost on how to test EDIT: I'm removing WIP, because the code seems ready for review at least.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for your patience!
Looks great! 🔥 Just a few minor comments to address.
That should cover both points. Would you prefer squashed commits in PRs? I'm used to doing that but usually on my own commits only. |
We'll squash automatically when merging, so it is up to you how to organize this PR internally 🙂 |
@bobertlo Btw, we'll need to add this new option to https://dvc.org/doc/command-reference/config . Could you submit a PR for it as well, please? |
@pmrowla Could you take a look, please? Wonder if this will affect the experiments feature in some harmful way. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In general, this LGTM.
Regarding the experiments feature, this shouldn't affect anything as far as I can tell. Currently dvc exp checkout ...
will still not stage any files even if core.autostage
is enabled, since nothing is added to the scm.files_to_track
list by Experiments.checkout()
. Given how the experiments feature is supposed to be used, this seems like the correct behavior to me. We can consider making exp checkout
support auto-staging at a later date if needed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good @bobertlo. Thanks for the PR. 🎉
Thank you @bobertlo ! 🙏 |
Fixes #4330
I'd appreciate feedback on this.
scm_autostage
was arbitrary, but chosen to matchno_scm
. I wasn't sure if justautostage
would be too generic or ifgit_autostage
might not be future proof.scm.remind_to_track
could be renamedscm.handle_changes
? I didn't want to go there without feedback. It's named in tests, but not called anywhere else in the codebase outside the context of this patch.scm_context
. I thought altering the attribute/behavior in the scm class would be more straight-forward but, after writing out the previous point, maybe a separate maybescm_context
could read the attribute from the repo class and handle the logic there, calling a separate function if changes are to be staged.❗ 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.
config: document new
core.autostage
setting dvc.org#1779Thank you for the contribution - we'll try to review it as soon as possible. 🙏