3 ms·
What you describe changes the name from "index" to "WIP commit", keeping the same semantics. Along the way, you now have a "commit" that doesn't behave like a c
by andreareina 9y ago
What you describe changes the name from "index" to "WIP commit", keeping the same semantics. Along the way, you now have a "commit" that doesn't behave like a commit, further adding to the potential for confusion. I strongly believe that things that behave differently should be named differently.
- kazinator 9y ago> What you describe changes the name from "index" to "WIP commit", keeping the same semantics. I.e. you get it. Importantly, the semantics is available through a common interface rather than a different design and implementation of the semantics for the index versus commits. > you now have a "commit" that doesn't behave like a commit Well, now; literally now you have a commit that doesn't behave like a commit: the index. If a real commit is used for staging, it behaves much more like a commit. It's just attributed as do-not-publish so it doesn't get pushed out. Under this model, all commits have this attribute; it's just false for most of them. Thus, it isn't a different kind of commit. > I strongly believe that things that behave differently should be named differently. Things that do not behave completely differently can use qualified names, in situations when it matters: "work-in-progress commit; tentative commit; ...." For instance we use "socket" for both TCP and UDP communication handles, or both Internet and Unix local ones.