I know other version control software exists, but does anyone use it? Why? What are the differences? All I’ve ever actually seen people use is git.
oleid ( @oleid@programming.dev ) English13•1 year agoThere is pijul.
- Pijul’s defining feature is its innovative algebra of patches model for version control, allowing changes to be applied in any order without creating conflicts, thus simplifying collaborative work.
- It efficiently handles branches and merges, with its patch theory often enabling it to automatically resolve conflicts, eliminating much of the headache typically associated with merge conflicts.
- Pijul is also free and open-source
Check this out: https://stackoverflow.blog/2023/05/23/for-those-who-just-dont-git-it-ep-573/
canpolat ( @canpolat@programming.dev ) English8•1 year agoGit is definitely dominating the landscape. The fact that it is free software plays a big role. There are alternatives, but they are unlikely to gain much adoption. They may provide slightly better UX or marginally more comfortable flows, but it’s not enough to replace Git. Not to mention, most developers don’t even really care about which SCM they use.
nous ( @nous@programming.dev ) English14•1 year agoNot to mention, most developers don’t even really care about which SCM they use.
Get them to use CVS for a while. They will care then.
canpolat ( @canpolat@programming.dev ) English4•1 year agoYou are right about that! It was a pain to work with :)
Rexelpitlum ( @Rexelpitlum@discuss.tchncs.de ) English5•1 year agoYou clearly haven’t used ClearCase. That would seriously reallign your definition of “pain”… :-)
canpolat ( @canpolat@programming.dev ) English4•1 year agoI used ClearCase too :) And it was painful. But I don’t think CVS and/or ClearCase are considered to be meaningful alternatives to Git at this day and age. I was mostly thinking about Mercurial and Fossil. They are brought up as alternatives to Git more often. That’s my observation at least.
kus ( @colorado@programming.dev ) English1•1 year agoI never used CVS but the senior developer at one place mentioned about it once when I complained about subversion which we used there (this was in 2013).
erAck ( @erAck@discuss.tchncs.de ) English4•1 year agoThere is only one alternative for distributed version control, Mercurial. Everything else is significantly inferior, except maybe for special cases. Mercurial may be fine for newcomers to step in, but probably at some point the flexibility of Git will be missed. And because of so many people using Git there are more solutions to specific problems.
oleid ( @oleid@programming.dev ) English1•1 year agoEverything else is significantly inferior
Which ones did you try?
hallettj ( @hallettj@beehaw.org ) English1•1 year agoMercurial used to be fairly popular around the time when people were still migrating away from Subversion. Mercurial support used to be Bitbucket’s differentiating feature, but apparently they dropped support a few years ago. That’s not a great sign for current popularity.
IIRC Mercurial doesn’t support “lightweight” branches - if you wanted to create a branch you had to create a new repo clone. I think there was some rebasing-type stuff that you just couldn’t do. There are some ways it is simpler than git; but I found the Mercurial workflow quite confusing.
There was also Darcs which used a “theory of patches” that could merge without conflicts in some situations other systems couldn’t. In exchange it eschewed the idea that every clone would see history in the same order. It didn’t catch on because it turned out that its merge algorithm would get really slow in not-so-uncommon situations.
Netrunner ( @Netrunner@programming.dev ) English4•1 year agoGit is freaking amazing. Any current alternative is going to be a joke next to it.
People using other ones are simply missing out. SVN/CVS just need to die.
Jim ( @jim@programming.dev ) English2•1 year agoI’ve heard good things about
hg
though I haven’t used it myself. Git has the biggest mindshare that I never bothered even checking. Might as well use it and move on.
BusterLove ( @BusterLove@programming.dev ) English4•1 year agoI actually kind of miss Subversion etc now. Git was perfectly designed for open source projects, but its easy branching model has significantly undermined the practice of Continuous Integration in enterprise environments. I get that maybe devs just prefer working in an isolated branch, but something has been lost.
sorrus ( @sorrus@programming.dev ) English4•1 year agoThere’s perforce which is primarily used for game development. Often games have a lot of binary files that are hard/impossible to generate diffs of unlike text based files. Perforce requires you to check out individual files and prevents any merge conflicts on an individual file basis.
Mikina ( @Mikina@programming.dev ) English5•1 year agoMy experience with Perforce hasn’t been really positive - especially compared to Plastic SCM, which is amazing. The merge tracking in history is such a cool feature, and it’s generally really smooth to work with.
The only issue is the pricing model, which is also a reason why I sadly can’t use it on many projects. Unity way too greedy and their strategy is to just acquire and paywall anything usable.
eluvatar ( @eluvatar@programming.dev ) English1•1 year agoCheckout doesn’t prevent merge conflicts (unless you configure exclusive checkout which is quite annoying). We used perforce and definitely had merge conflicts, though they weren’t as crazy as a long git branch would be.
neil ( @ndotb@programming.dev ) English3•1 year agoDomains like CAD use revision control, if you’re looking for a rabbit hole to a parallel world to get lost in on a Sunday. It’s not to be completely confused with RCS that predated VCS.
lordmauve ( @lordmauve@programming.dev ) English2•1 year agoMercurial (
hg
) is a fine alternative that was widely adopted in the early 2010s, but has gradually lost mind share to git. Actually every company that I worked for in the 2010s had a Mercurial service (maybe unloved). I think companies adopted it because command linehg
is closer tosvn
, and more obvious in general, so it was an easier migration fromsvn
. I also think out-of-the-box hgserve is easier to understand than git serve, so before tools like GitLab and Gitea it was easier to host on-prem.Mercurial’s data model is indistinguishable from git, and IIRC it even slightly pre-dates git. The main thing git had going for it was GitHub, but that was enough to build a positive feedback loop and come to dominate the mindshare.
TheCee ( @TheCee@programming.dev ) English1•1 year agoSome people that require support for a lot of big binary assets probably use something else.
canpolat ( @canpolat@programming.dev ) English3•1 year agoThere is Git Large File Storage for that. But there may of course be alternatives that are better suited for that kind of tasks.
hallettj ( @hallettj@beehaw.org ) English1•1 year agoOr git-annex! That’s a nifty piece of software, and it doesn’t require special support from your git hosting provider.
Bruno Finger ( @brunofin@beehaw.org ) English1•1 year agoI’ve heard of some corporate environments using different tools because of some weird use case, but honestly I think it doesn’t justify, if you’re taking it seriously you should be using git.