exp: expose implementation (custom Git refs) #5896
Replies: 10 comments 5 replies
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
-
The main limitation with forcing users to use CLI Git for these kinds of operations is that they cannot use experiment names with CLI Git. Additionally, the 1:1 substitutes for certain exp commands would be low-level plumbing commands which users are probably unfamiliar with (and generally should not be using unless they are very familiar with how git internals work). As an example,
which is probably not something we want to tell users to use (for several reasons). Also, |
Beta Was this translation helpful? Give feedback.
-
Hmmmm OK. Here's my thought process: from our many iterations on Experiments docs I've realized it can get pretty tricky to explain experiments without the context of how they're implemented, which is why I think maybe it would be easier to expose it anyway, whether we keep some of these utilities or not. So maybe just consider removing |
Beta Was this translation helpful? Give feedback.
-
The issue with being unable to use exp names still applies with |
Beta Was this translation helpful? Give feedback.
-
On the issue of exp names vs. Git porcelain, one option is to show/list command SHAs by default instead (if we eventually decide to expose the underlying Git implementation). |
Beta Was this translation helpful? Give feedback.
-
I do think the opposite, there are already too much Git-related messages, e.g., I'd simply commit the changes (subject to an option) instead of telling the user "You can now |
Beta Was this translation helpful? Give feedback.
-
Interesting discussion!
This is a common suggestion since it feels like dvc requires an extra step that many users will always be doing by default. I think forcing users to @shcheklein has linked to this article before, which I find really useful in thinking about designing UI: https://hisham.hm/2020/12/18/user-power-not-power-users-htop-and-its-design-philosophy/. It's a bit long, but here's a quote that summarizes the point:
Whether this is correct or not, there is some rationale for why the current UI exists, and a similar rationale could apply to gently exposing the experiments implementation. |
Beta Was this translation helpful? Give feedback.
-
Idk if that's a problem. There's no way around the fact that DVC versioning and other features (experiments) need Git. The problem with just asking users to "commit changes to Git" is that some people may not know what to do exactly. Failing to copy/paste
Great principle. I think that as far as DVC builds up on Git, we may need to educate about that as needed. p.s. OK, moving this to discussions... |
Beta Was this translation helpful? Give feedback.
-
I just realized we are already pretty open about the underlying Git implementation of experiments in the options of |
Beta Was this translation helpful? Give feedback.
-
Specifically,
apply
andbranch
are wrappers of narrow/complexgit
operations. Originally we didn't want users to worry about how experiments are implemented. That makes sense but is it the practical approach? If users are already familiar with Git (at least some, at least somewhat), why not expose the fact that exps are commits/branches that can be targeted by (certain) regular Git commands? Examples:git checkout exp-1234
(detachedHEAD
)git merge --squash (--no-commit) (--theirs) exp-1234
(see Re-run previous experiments at current HEAD #5782)git branch exp-1234
git
substitute forexp remove
tooThe main pros I see is that the Git alternatives give users more flexibility, and we don't need to maintain them
The con is that we may need to educate users on Git to some extent.
Cc @pmrowla @dberenbaum @shcheklein
Beta Was this translation helpful? Give feedback.
All reactions