4 ms·
I can see how that is confusing at first glance, maybe. I think people want branches to just do what they want. They complain that branches are confusing, but
by Buttons840 3y ago
I can see how that is confusing at first glance, maybe.
I think people want branches to just do what they want. They complain that branches are confusing, but if you ask them to define how a branch should work, they won't have a complete answer.
- forrestthewoods 3y agoSure. They won’t have a complete answer BECAUSE ITS CONFUSING. If people could give a complete and detailed answer then they wouldn’t be confused, by strict definition! There’s two problems here. One, branch tag behavior is genuinely confusing. Two, branch tags are intrinsically complex (which is why they’re confusing). Git is intrinsically complex. Version control is a hard, complex problem! Pretending that it isn’t complex just results in a lot of confused users and a lot of unhelpful people who think if they yell “it’s actually simple” just a few more times everything will be ok.
- Buttons840 3y agoThe big question is, can we find a more intuitive interface? I think git is pretty close to the most intuitive interface possible, but the problem git solves is hard, as you say. Even the best interface, programmed by God, might not make this easy.
- Espressosaurus 3y agoGit is one of the worst interfaces possible. The underlying implementation is fine, but far too much of the plumbing is visible as porcelain. Mercurial has about as intuitive an interface as is possible IMO. There's still all the intrinsic complexity of distributed version control, but the verbs are meaningful and if I don't know how to do something, knowing the verb is sufficient to use the built-in help to learn how to do the thing I want to do. The concept of branches as the entire DAG and not just a commit also better matches how I've seen version control workflows be used in practice across multiple teams and companies. Add in rewriteable history, like what Git allows or Evolve enables, and you're golden.
- forrestthewoods 3y agoIn my day job we use trunk based development. There is no such thing as a branch. All commit labels are advanced exclusively by the CI system. All commits are rebased by CI. It’s very simple to use and understand. It’s not perfect or anything. But Git is pretty damn far from intuitive imho. Especially for non-programmers who largely don’t use Git.