3 ms·
Subversion is really simple too: it only has files and directories, branches are directories, tags are directories. I don’t think stupid and simple worked very
by micampe 14y ago
Subversion is really simple too: it only has files and directories, branches are directories, tags are directories. I don’t think stupid and simple worked very well in that case.
Arguments can be made for both sides, picking a single design decision and saying that that’s obviously better is not going to work. Implementation and (especially in a case like distributed systems) network effects are much stronger than any single isolated design decision.
- anonymous 14y agoSure, I was talking about my situation. And of course, if mercurial could give me more features, I'd probably think twice. However, it's practically equivalent to git. I was comparing git and mercurial, not giving the one true testament to comparison of every possible version control system.
- Aga 14y agoAlbert Einstein is attributed with a great quote: “Everything should be made as simple as possible, but no simpler.” I would argue that in the case of Git it's not about a single design decision. The whole design is very simple and easily understandable. Thus everything can be derived from the design decisions. The design decisions also have clear rationales. "Why something is better" and "why something has "won"" are of course different questions that deserve different answers.
- micampe 14y agoHaving taught Git to a number of people, I disagree that it’s easily understandable. It’s easy to understand the general idea of how it works, but actually productively using it is an entirely different matter. Of course, I may also be a terrible teacher.
- Aga 14y agoI too have been teaching Git for many years now. I find it easy to teach, thanks the concepts being simple and clear. I don't have to transfer a lot of information before people can start reasoning about things themselves and independently finding out more. I always try to make sure people understand two things: 1) The history tree (==how to read the metro-map that is gitk) 2) Distribution, that you are responsible for syncing with others, not the other way round Almost everything else I prefer the students at least try to figure out themselves.