gonna do a short thread of git vs other version control systems polls just to get an overall vibe

poll 1: if you've used both hg and git, which do you prefer?

(no replies please though, i have already read 300 comments about git vs other version control systems today and i can't read more)

hg
21.3%
git
65.5%
depends
7.7%
other
5.4%
Poll ended at .

poll 2: if you've used both svn and git, which do you prefer?

(no replies please, i have already read 300 comments about git vs other version control systems today and they were great but i can't read more)

svn
3.5%
git
91.8%
depends
3.2%
other
1.5%
Poll ended at .

poll: is any of these your favourite version control system?

(please don't reply if your answer is "other”, i have some polls elsewhere in this thread about other systems)

bazaar
13.8%
fossil
33.9%
perforce
34.9%
cvs
17.4%
Poll ended at .

poll: is any of these your favourite version control system?

(please don't reply if your answer is "other”, i have some polls elsewhere in this thread about other systems)

clearcase
12.9%
pijul
41.9%
darcs
35.5%
TFS/TFVC
9.7%
Poll ended at .
@b0rk ooooh are you doing a March Madness bracket for version control

@cliffle haha kind of but it seems really annoying to do it rigorously so I'm probably just going to put these polls out there and let people draw their own conclusions.

I was surprised that people who answered the hg vs git poll generally prefer git since I hear "mercurial is better" so much. I guess a lot of people prefer mercurial but not a majority? Or maybe I didn't phrase it well enough. Who knows.

@b0rk Yeah, hard to tell! (I voted hg; I'm in the "hg has a much better UI if only we lived in a world where people used hg, but we don't, so git" camp)
@cliffle @b0rk For a lot of newcomers and simple version control users, Mercurial is fantastic (and I'm in that boat of "simple" user of version control). But when you start wanting to play around with the repository data itself (e.g. rebase, amend, etc.), Mercurial makes this hard compared to Git, and if you're used to the ease in which Git lets you mutate the data, then you're gonna hate Mercurial.

@Conan_Kudo @cliffle @b0rk (I worked on hg/sapling at Meta for many years)

This is somewhat true, but also for many of the most advanced workflows, revsets are much nicer than whatever series of messes git has.

Consider jujutsu, it has an interface very similar to hg while being fully compatible with existing (colocated) git repos, and *much* better support for rebases than git or hg

@rain @cliffle @b0rk Oh, I absolutely agree. I'm a huge fan of Mercurial and I only stopped using it because I was basically forced to for some of the Git workflows. For a long time, I used Mercurial as a Git frontend because I *really* don't like the Git interface.
@b0rk I’m darcs at the moment, but I’m actively learning pijul and don’t hate it yet ;-)
@josephholsten @b0rk I did use darcs once upon a time… IIRC there were significant perf issues, but I don’t recall whether I hit any of them myself or am just imagining that I did, since it was so long ago.
@alpha @b0rk Long ago I tried converting history of larger projects into darcs and didn’t enjoy it. But I think of it like apache hive versus sqlite. Like git, hive can handle tremendously more data, but the semantics suffer. But if I can get away with it, I’ll be much happier with sqlite on a small dataset and darcs on a small repo.
@alpha @josephholsten @b0rk I read about the theory behind darcs maybe a decade ago, and I really liked some of the ideas, but I’m not sure I ever actually used it. Now I’d want to use it with a host more or less like GitHub
@b0rk ClearCase! My mortal enemy.

@c0dec0dec0de @b0rk Mine too.

I have a whole section of Clearcase induced scars, but thankfully I've stopped having nightmares involving "Your VOB is corrupt". :)

@feoh @c0dec0dec0de @b0rk corrupred vob was the least of my troubles. We had multisite with mixed ownership. That was shadow ops among other admins.
@c0dec0dec0de @b0rk ah, spoken like any person who has ever come near ClearCase! *spits reflexively*

@gnomon I have exactly once been in a situation where we had a choice of ClearCase or Git, looked at how we needed to be able to manage the versions and said "ClearCase, definitely"

I think it's also the first time our SW CM had supported a project with pure ClearCase, no wrapper scripts to dumb it down, on purpose (I'm sure it happened before they had the wrapper scripts—reading between the lines it was a disaster never to be spoken of, even in whispers)
@c0dec0dec0de @b0rk

@igrok are you at liberty to describe a bit more about the project? As a general purpose source control system ClearCase is, well, you know; but as a strict _version control system_, such as might be required for a deeply embedded codebase where the specific compilation tooling might need to be held in lockstep with the application code, it can end up being a net positive. What was this particular niche that it fit well?

@gnomon multiple subsystems developed by external suppliers (so binaries & config files) with crappy custom-binary build systems that expect files to show up in their tree, but said files are externally supplied and depended on what the other subsystems were for a given build

And Windows, so no symlinks

And multiple build flavors (debug, test, etc) where only one subsystem might be a special config that day

A VCS that lets you specify arbitrary branches on a file level is basically perfect

@igrok fascinating!! Thank you so much for sharing that. You're right, that sounds like the perfect fit for ClearCase, and also I hope I never ever see such a thing ever again

@gnomon absolutely!

It was hilarious when it happened because we had for years been fighting that SW CM (in some cases bitterly) to replace ClearCase with Git on our projects, overcoming claims it was unnecessary, too different, etc and ultimately forced her to accept the switch by going over her head. So big extended drama…

And then we hit this use case and agreed unanimously "definitely ClearCase"!

She was so excited, too! 😆 I think we healed a lot of wounds that day

@b0rk

me, seeing this post : "Ooooh, she fell down THAT rabbit hole I've wanted to explore for a while. So cool, we're about to get an accessible state of the art about next-gen VCS"

@toadjaune honestly i've never used any version control system other than git for more than about 3 hours and I don't think I can say anything super informed
@b0rk Of course, while it may be true that Git would win a fair poll too, in a poll of *your followers* the selection bias will make it win these polls by a much wider margin.
@b0rk What, no "series of sequentially named .zip archives" option?!?
@b0rk I think that most of these are effectively answers to "which non-git VCS do you have the most experience with" with a caveat for CVS perhaps. The interesting one is pijul, which comes after and was in some ways a reaction against git.
@b0rk Although I find it interesting that pijul's marketing reminds me a *lot* of what darcs used to say about its model.
@spacehobo 100% feels like it’s an attempt to do darcs over again. I know the Haskell tool chain was a blocker for some, performance for many more. So far, it’s feeling nice for the personal efforts I used to use darcs for. But I’ll surely get back to @b0rk when I find a reason to get angry at it.
[edit: no autocorrect, it’s not “farce” but “darcs”]

@josephholsten @spacehobo @b0rk

They do go to some trouble to say on their website that they're not a theory-of-patches based system like darcs, which, well, not a selling point for me, but I wonder if there is some math-phobia going on too where the fact that darcs is based on a formal theory makes people afraid that they can't understand or work with it.

@b0rk no mercurial?! 😭
@grimmy @b0rk Mercurial was part of the first poll in this thread (hg).
@mosu @b0rk wow everyone correcting me as I corrected myself... 😅
@grimmy @b0rk Sorry, only saw your question 😂
@mosu @b0rk yeah there wasn't time for anything... My original message was at 13:42 local time and my correction was 13:43 local time. In that ~1 minute 3 people including yourself corrected me.
@grimmy sorry about that, trying to balance avoiding being drowned in a million "but what about hg???" replies but also not being a jerk when a few people didn't read carefully (which is very understandable!!). I don't always get it right.

@b0rk yeah no worries the whole thing is my fault. I'm just surprised how quick other's chimed in too.

At any rate, sorry for all the noise.

@grimmy @b0rk Julia _does_ have a certain following 😂
@b0rk whoops, sound have finished reading as I already voted in the git vs hg poll and forgot. Sorry 😅
@b0rk wow some of these still exist? CVS?

@mlevison @b0rk CVS is open source (and in C), so it kinda can't die until the last C compiler dies

But there are a few projects out there that are still using it. OpenBSD is a significant one.

@b0rk Oof, I almost want this poll as an inverse, i.e. "least favourite."

CVS, in particular, required an awful lot of hand-holding to make sure it would give me checkouts that were actually a valid configuration of the codebase (if memory serves, it's because its model is versioning per-file, not commit nodes or checkpoints, so it was pretty straightforward to get the versions into a state that had never actually been seen during the development flow).

@b0rk CVS is the one I have the most experience in

@b0rk I had to lookup if ClearCase still exists (It does.) I have no thoughts about it. Just that it was the first VCS I used back at the turn of the millennium.

I have never come across again. I suspect it’s super expensive, and only giant ossified megacorp still use it. I guess it had some advantage over cvs, but again, I have no opinion.

@b0rk I am most familiar with perforce since I have had to use it at work for a very long time; with git I don't feel that comfortable and try to stick to very basic things. Would not call it "favorite" though. It works for what we use it for, makes some things inconvenient.
@b0rk You list some names here that make some parts of my brain twitch with decades-old horrors. Yet I can still sympathize with someone calling them a favorite.
@b0rk I am torn between fossil and jujutsu

@christophberger @b0rk

I have not heard much about fossil. Who actually uses it and what for?

@railmeat @b0rk The SQLite folks created and use it. It's an all-in-one app with Web UI and uses, of course, a SQLite DB for repo metadata storage.

Fossil is said to work best with the "cathedral" model, while Git is better for "bazaar"-style projects.

About:
https://www.fossil-scm.org/home/doc/trunk/www/index.wiki

Fossil vs Git:
https://www.fossil-scm.org/home/doc/trunk/www/fossil-v-git.wiki (See section 2.5.1 here about cathedral vs bazaar)

Fossil: A Coherent Software Configuration Management System

@b0rk I'm entertained by fossil, does that count?

@b0rk CVS probably would be if I lived in a world that didn't need the things it isn't good at, but...

(Having used CVS extensively, I really don't understand the hate it gets; it's effective at the things it tries to do and probably close to the best possible realization of its core design. It's just that "things it tries to do" doesn't cover all the problems I want a tool in that space to solve.)

I know just barely enough about perforce to suspect that I'd have similar feelings about it if I had ever used it enough to know it well.

@b0rk Fascinated by fossil, but VCS is multi-person game 😄
Without others, I can't play
I could use it for personal/side projects, but ...
@mandarvaze @b0rk one nice thing about Fossil is that it doesn't require other contributors to use Fossil. If they can attach a patch to an email, or post a code change suggestion to its forum, Fossil gives you the tooling to pull it in. (Of course git does too! No monopolies on that particular style of flexibility.)
@b0rk yaaaaaaaay, thank you for including Fossil!! ❤️💖❤️