Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Gitlab, GitHub and SourceHut are remotely comparable only if you care just about source code hosting. But Gitlab (and partially GitHub) is so much more - it grew to a beast trying to do everything for your project - project management, CI, analytics, communication... It's not for everyone, but for e.g. startups buying an all-in-one solution could be attractive to reduce the effort on getting all development tools set up and integrated.


SourceHut has an issue tracker (incomplete, but very fast) and CI.

The problem is that SourceHut is not becoming any better over time. With all my respect to Drew, his attention is spread too thin over many projects.


Yep, as a paying customer, I'm still waiting for a way to reach each project page from any other page. Literally the easiest thing to make in the world, but still in limbos...

As for Gitlab and Github, I left ridiculous Jabbascript abominations behind and never looked back; Github now overriding usual keys like PageUp/Down and Home/End SPA style and not being able to display most stuff without JS is the straw that broke the camel's back for me.


I'm not saying I don't agree, but I'm sure they would accept contributions implementing such a feature.


May I ask what does “very fast” mean in the context of an issue tracker?


It means that it's not slow. Case in point: Jira.


It means that user feels the user interface is quite responsive.

It's not a very useful metric. A user having a flaky internet connection with high latency and low bandwidth and intermittent disconnections would complain that the platforms he uses are "slow".

Or a service is just bogged down by too many users but would be quite responsive if not overloaded.

EDIT: I was not writing about JIRA specifically. I agree that JIRA is ALWAYS slow. Ten years ago I had to wait five seconds after a button click. However I also had to handle a complain that something was slow just because that customer's internet was shit.

EDIT 2: I remember ten years ago an especially perverse variation. A friend of mine was complaining about the bad quality of video even after having upgraded his internet connection. The problem was asymmetric bandwidth. His friend had bad upstream and my friend just saw jerky movements and ugly artifacts and it was unusable for communication in a Signed Language.

I learnt that day: if something is slow, then it is not always easy to understand why. My friend was very disappointed in me.


Jira is slow all the time. Sourcehut might, potentially, in contrived circumstances be at risk of becoming slow, but it's so well optimized that it's an outside risk, rather than a guarantee. Surely you understand the difference between the two categories of software?


> A user having a flaky internet connection with high latency and low bandwidth and intermittent disconnections would complain that the platforms he uses are "slow".

On the contrary, a bad internet connection makes it much easier to distinguish slow and fast platforms.


Case in point: hacker news is almost always working fast for me, no matter what crappy internet connection I’m on.


Do you work with video platforms?

Video tends to be bad for the receiver if the sender has bad upstream.


I remember reading SourceHut's creator, Drew, has some controversy around him...


Everyone doing anything has some controversy around them. At some point, we should just stop paying attention to internet dramas and focus on what matters. Like, fast issue trackers or continuous build with a novel feature to ssh into the state, when the build failed (which SourceHut supports: https://man.sr.ht/builds.sr.ht/build-ssh.md)


Gitlab does too, IIRC.


He is opinionated. Scroll through his blog, and I'm sure you'll find something to disagree on:

https://drewdevault.com/


It's fine to be opinionated, but he's also very abrasive and you don't have to go far to find people who have had a bad experience with him at some time or another.

That being said, I haven't seen anything egregious for a couple of years, so maybe he's taken some of the honest feedback to heart.


For Github there's a sort of moat that it needs to work across IDEs, orgs, random people, etc. For Gitlab any org using it can harmonize on an IDE and the IDE can slowly introduce all of the CICD/collab with much better code quality and user experience than Gitlab since they rushed to copy Github rather poorly.


What is so difficult in setting up and integrating GitHub with Jira for example, last time I did it, it was a few clicks?

GitHub also has mediocre issue management and a wiki and we have GitHub Actions as well.

You still need to integrate your cloud service provider with GitLab, which is exactly the same hassle as integrating it with GitHub.


After using gitlab for a year I can boldly claim that it is inferior to github in every feature with subtle things being better in github which add up to a far better experience.

Gitlab tries to do a lot and never did anything that well. It's just perpetually catching up to github.


Having used both for about 9 years I would say that's not correct at all.

Github may have beaten Gitlab to the punch with Pages (whoopee) but CI is a far more important feature, and Gitlab CI existed for years before GA, and continued to be a far superior solution for a long time (and maybe it still is?).

Also, because Gitlab targeted enterprises they had a bunch of features that Github did not. Self hosting, Identity and role based access, weighted issues, project milestones and burndown charts, private issues, support for "innersourcing" of internal repositories. The list goes. Unlike Pages, which is useful but can be replaced by any other wiki, things like role based access to projects are really important. When I switched jobs a few years ago and had to use Github, it felt more like a hobbyist's web-based toy version, lacking a lot of "big-boy" features.

The one truly essential feature that separated them "for the 99%" was CI. Once Github introduced that, it shrunk Gitlab's lead.

But Gitlab are by no means playing catchup to to Github.


Wholly agree with you. I’ve been using both professionally for years in parallel and have seen the evolution.

Totally agree on CI being superior. The config syntax is a bit of a pain and is aching for some higher level abstraction. But it’s very powerful, e.g. easily supporting cross project dependencies and build status across project in one neat interface.

I also agree that GitLab was optimized for enterprise and that’s where the major feature disparity is. If you are using it only for small hobby projects you will feel that it’s nothing special. I’ve used a self hosted version at a fortune 100 and it was a huge boon to productivity there over GH EE.


> aching for some higher level abstraction

CI/CD components (GA since 17.0) improve the situation a notch: https://docs.gitlab.com/ee/ci/components/


Also CI/CD steps


Yes. Gitlab CI is still miles ahead of github.


> After using gitlab for a year I can boldly claim that it is inferior to github in every feature with subtle things being better in github which add up to a far better experience.

I find this remark baffling by how much it contrasts with reality. Others in this thread already commented on GitHub using terms like "mediocre". I wouldn't go that far but I am indeed aware that GitLab feels it works and is expected to work reliably, specially CICD which, unlike GitHub, they succeeded in turning it into a solved problem.

It's even more baffling reading bold claims like "Gitlab tries to do a lot and never did anything that well" when only a couple of years ago GitHub Actions were renowned for not even being prod-ready,whereas GitHub CICD just works and works well without requiring investing any thought into it at all.


The parent's post aligns with my own experience. I've been using GitLab for 2 years after switching companies and I can't think of anything that is an improvement over GitHub.

I never had any issues GitHub Actions for CI stuff at my previous two companies, both which used it heavily. GitLab CI also works fine, though I struggle to see how anyone could strongly prefer one or the other as my own experience is that they basically work the same. Both basically boil down to some yaml you can use to configure running stuff in docker containers.


The point is that it was GitHub that caught up for some simpler use-cases fairly recently, not the other way around. When I started using GitLab 6 years ago it made GitHub look like a toy where you had to reach for external services like Travis to do anything useful.


Fair enough, but the fact that GitLab was better 6 years ago doesn't do much to help the company right now.

I wasn't using GitLab 6 years ago so I can't comment on that, but I can comment that at least since 2022, I haven't found anything in GitLab that would recommend it over GitHub.


> Fair enough, but the fact that GitLab was better 6 years ago doesn't do much to help the company right now.

I don't think you got the point.

The whole point is that a couple of years ago GitLab was unquestionably the market leader and hands down the best service.

And since then it didn't got worse.

Best case scenario, alternatives like GitHub managed to put together similar offerings. That does not mean GitHub suddenly was the best. Far from it. Again, others in this thread used the term "mediocre" to describe GitHub, and this happens years after GitHub started to try to catch up.

To me, GitLab's CICD is by far the absolute best CICD system around. It has been like this for maybe a decade now. The container-centric approach to build jobs, a domain model for pipelines that is extremely simple and yet misses no usecase at all, UX that's unparalleled to the point that, unlike other CICD systems, doesn't even require a tutorial to get the basics to work... Things are so far apart that it boggles the mind how anyone who has any experience in CICD would even mention GitHub on the same sentence.

GitLab was the absolute best 6 years ago and, in spite of Microsoft's takeover of GitHub and rushing to bridge the gap, it still is. That's the whole point.


the rabbit hole goes deep, but both GitLab and GitHub reached parity around that time. (initially GitLab CI simply did a lot more, then GHA kind of took over with the ability to run multiple parallel workflows, and by arguably feeling a bit newer and having better "official" steps ... the GitLab auto-magic CI was ... always completely meh, IMHO.)

but GitLab kept adding the good stuff that Actions introduced, and it can do a lot of things, and with the Omnibus package it's very easy to self-host. (and upgrades are well supported, etc.) ... and of course GitHub self-hosting is only for enterprise editions.

sure, you can setup one GHA Runner on one VM (and each one one a new one), but that's it. nothing else is supported officially.


How is CI not a solved problem with GitHub Actions? I used and loved GitLab CI years ago and remember it feeling better to use than GHA (though maybe I’m remembering through rose tainted glasses), but GHA are just working nowadays, and the ecosystem of pre-made Actions is in good shape.


nope, GHA is still clunky.

self-hosting GHA Runners (plural!) is ... hard (not impossible, and quite doable with enough investment, especially if one takes the dive into the murky waters of k8s), but it's not officially supported. (what's supported is here's a tarball we support these distros ... have fun.)

programming in YAML is still bad, composability is still an afterthought, etc.


For hosted runners that might be true. The best experience I’ve had with GHA self hosted runners was simply using a beefy VPS. At my current job, the self hosted runners were hosted on K8s using Arc and it was a… very unpleasant experience. We switched back to GH runners (turns out the free minutes + a few bucks a month is enough for our use case), but if we need to go back to self hosted I’ll advocate for a VPS.

> programming in YAML is still bad, composability is still an afterthought, etc.

I disagree on that. GitHub actions are as composable as it gets thanks to the ecosystem of actions. GHA is better than GitLab CI in this regard, and probably the best system I’ve used so far. It IS a bit clunky but overall I’ve been pretty satisfied with it.

I also disagree regarding YAML because you don’t program a CI, it’s mostly declarative work. The only conditions needed are a bit clunky to setup, I give you that, but it encourages to either keep the CI simple (no CI needs overly complex conditions), or move the logic to CI scripts in any scripting language.


Thought I'd plug my product because of the mention of actions-runner-controller on k8s. I wouldn't wish that on my worst enemy :)

It is a terrible experience riddled with many gotchas. I'm making WarpBuild to provide runners (cloud and BYOC on user's aws account) to provide more powerful, faster, and overall much better experience. Try us out - you're guaranteed to save both money and time.


Interesting, bookmarking for later :)


it has to be reusable to be composable, ie. it needs some genericness, customization, etc. that usually requires logic, passing args, env vars, etc.

yes, writing programs (ie. an action) is the correct level of abstraction, but in general it just doesn't make much sense to have separate steps. (because for many cases unit testing and building artifacts can/should be done at the same time ... for example python/rust ... inside a container, download deps, build, then run tests, copy result to new layer, push)


> self-hosting GHA Runners (plural!) is ... hard (not impossible, and quite doable with enough investment, especially if one takes the dive into the murky waters of k8s)

I’m the maintainer of RunsOn (https://github.com/runs-on/runs-on), which solves this problem with far less investment


Pre Microsoft I felt Gitlab was a lot better. It had a lot more features that actually worked. This was an era where Github didn't even have a built in CI solution.

Last time I used it, which was a few years ago now, it felt like Github had caught up and a lot of the Gitlab features were flaky or didn't seem to serve any purpose other than checking a sales tick list. Stuff like integrations that don't seem to really serve any purpose other than to say they are integrated.


> Stuff like integrations that don't seem to really serve any purpose other than to say they are integrated.

I don't think integrations are the example you think it is. The ones I tried work well and make it trivial to setup features that would otherwise feel like papercuts. I'm talking about things like being able to handle gitlab events without having to manage anything or provide your own event-handling infrastructure. If you have web hooks you need invoke or react to, as anyone who runs full CICD and cares about blocked pipelines does, with GitLab you don't need to worry about exposing custom endpoints and write controllers. For many, that is the difference between using notifications or not.


You can't pull a docker image from a private github container registry without a personal access token. Gitlab's group and project level deploy tokens are great.


> It's just perpetually catching up to github.

That's not how I remember it. I agree that GitHub is ultimately the more polished product, which is why I eventually went back with my personal projects to it... But most of these platform features like CI Integrations, project repositories etc started at gitlab, and GitHub effectively copied them later


Many, many years later.


Been using both for years, and there are definitely CI and CD features that are very great in Gitlab and even better than some Github features


Create a hierarchy of branches/PRs: z > y > x. Merge y. Gitlab will automatically retarget z to x; GitHub will orphan z.

I do wish Gitlab would spend some time better organizing their settings menus, but aside from that it seems to be more complete.


I'm not sure when it changed (sometime this year?) but GH automatically changes the PR base now.


I do stacked PRs for complex changes, and Github has been updating branch bases to support this workflow for at least two years now.


There are a few free open source tools available these days to manage the stacked PRs. Eg: https://github.com/aviator-co/av


I think the Gitlab experience is slightly better when dealing with collaboration on private repositories with multiple people not necessarily in the same org. Also, Gitlab had free private repo support beyond what Github offered for a long time, so most of my private repos are on Gitlab.


Yes, the beast. It's a monstrous thing that does everything and nothing particularly well.


Gitea/Forgejo also has much of that these days.


While being neat binary+sqlite which is turns out tobe enough even for big orgs.


You don't have to use sqlite.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: