3 ms·
Git is terrible at branching, constantly squashing and rebasing is not a feature but an annoyance. see fossil for how to do proper branching/merging/logging, by
by nmz 2y ago
Git is terrible at branching, constantly squashing and rebasing is not a feature but an annoyance. see fossil for how to do proper branching/merging/logging, by its very nature, Not to mention that by having the repository separate from the data, it forces you to organize it in a nice way (Mine look like Project/(repo.fossil, branch1/ branch2/ branch3/) You can achieve this with git now but I never had to think about it in fossil, its a natural consequence of the design.
- trhway 2y ago>constantly squashing and rebasing is not a feature but an annoyance it is a feature which allows, for example, to work simultaneously on several releases, patches, hot fixes, etc. Once better alternative emerges we'll jump the git ship as we did before when we jumped onto the git ship. >the repository separate from the data that was a feature of a bunch of source controls and a reason among others why they lost to git. >it forces you to that is another reason why source controls lose to git as git isn't forcing some narrow way of doing things upon you. I don't deny of course that for some people/teams/projects other source controls work better as you comment illustrates. I'm just saying why git won and keeps the majority of situations.
- nmz 2y ago> it is a feature which allows, for example, to work simultaneously on several releases, patches, hot fixes, etc. Once better alternative emerges we'll jump the git ship as we did before when we jumped onto the git ship. What are you talking about here? I'm not talking about eliminating branching, but the fact that merging a branch is usually just a fake single commit that hides away the complexity and decisions of the branch. see [0] into how you can leverage branches and the log for a sane commit history. > that was a feature of a bunch of source controls and a reason among others why they lost to git. Given the article, git won because it was foss, torvalds and speed, if you have proof of a good amount of people saying "I hate the division of data and repository!" then its a believable claim, or maybe you're confusing the data/repo division with cvs? git also didn't have to fight much, the only contender was hg [0]: https://fossil-scm.org/home/timeline https://fossil-scm.org/home/timeline
- johannes1234321 2y ago> Once better alternative emerges we'll jump the git ship as we did before when we jumped onto the git ship. It's not that easy at this point in time. git carries a lot of momentum, especially in combination with GitHub. Anybody learning about software development learns about git and GitHub. Software is expected to be in GitHub. At the time git became successful there were arguably better systems like mercurial and now we got fossil, but git's shortcomings are too little of a pain point compared to universal knowledge about it and integration into every tool (any editor, any CI system, any package manager, ...) and process.
- trhway 2y ago>It's not that easy at this point in time. git carries a lot of momentum, especially in combination with GitHub. CVS back then was like this too, including public repos, etc. >At the time git became successful there were arguably better systems like mercurial I specifically mentioned Mercurial above because they both emerged pretty simultaneously responding to the same challenges, and Mercurial happened to be just inferior due to its design choices. Companies were jumping onto it too, for example our management back then chose it, and it was a predictable huge pain in the neck, and some years down the road it was replaced with git.
- johannes1234321 2y ago> CVS back then was like this too, including public repos, etc. Not really. CVS had too many flaws (no atomicity, no proper branching, no good offline work, etc.) Subversion as "natural successor" fixed some things and was eating some parts of CVS. At the same time sourceforge, the GitHub of that time, started to alienate their users. And then enterprises used different tools to way larger degree (VSS, sccs, Bk, perforce, whatever) while that market basically doesn't exist anymore these days and git is ubiquitous. And many people went way longer without any version control than today. Today kids learn git fundamentals very early, even on Windows and make it a habit. Where's in the early 2000s I saw many "professional" developers where the only versioning was the ".bak" or ".old" file or copies of the source directory.