When gitlab first came out, I found the amount of shameful copying of github distasteful. I thought, man these guys have not done an ounce of anything original, so what's the point in even encouraging this kind of slimyness?
But then Github stagnated, and stagnated some more. And gitlab went past the initial copying and started innovating and adding more features.
And now with their CI/CD, and fully integrated pipeline, they seem to be way, way ahead of Github, whereas Github seems to have focused more on handling the infrastructure needed for their sheer level of scale.
In Github's case, I bet they felt their hands were tied because they had a whole ecosystem around them (like all the CI/CD companies that tightly integrate). Gitlab didn't have that issue, and was free to integrate to their heart's content.
To be honest, the only reason I moved back to Github after trying Gitlab a couple years ago was the performance. But again, Gitlab seems to be the little engine that keeps chugging. They have a certain hunger about them to improve, that they're constantly and relentlessly chipping away at the software's flaws. And sytse is always active in all these threads armed with great answers to pretty much every single criticism leveled at them.
So at least for now, they seem to be a lot more hungry than Github, so kudos to them.
Once all this hubbub dies down, I may move all my repos to Gitlab, but mostly for the CI/CD pipeline.
Github has totally earned their success, but they did seem to be stagnating for a while there.
As an industry, we have a unhealthy obsession with change for change's sake. If we aren't redesigning everything, adding new features, or moving cheese all the time, we aren't innovating.
But this the opposite of how we should think. If the GitHub repos page, for instance, just works, then we don't need to keep changing it. Zach Holman made a point, way back in 2012, that they intentionally hide UI features to preserve simplicity and trust in their design. 
The thing I get the most from Gitlab's UI is this overwhelming sense of desire to add every feature, expose every option, and make it as utilitarian as possible. In doing so, though, Gitlab trades off approachability. To some this is a great thing, but to others, it's just on the edge of too much. If there's anything I want Gitlab to copy from GitHub, it's the opinionated decision making of what to show and when to show it.
Gitlab's CI/CD stuff is a great example of this contrast. GitHub left it to Travis and other CI providers, which makes both GitHub and those providers have time to excel at what they're good at. They made the trade off deciding that they couldn't pull it off as well as others, so they delegated it and moved on. Gitlab took the opposite approach and built it in. While it adds value for some users, it can and (at least in my opinion) does over complicate the core feature set they offer.
It's okay to have two products with different approaches, but I wouldn't say that it's a lack of innovation on GitHub's part. I would say it's just a different set of tradeoff balancing.
Ehhhhh not quite. The point of hiding UI like how I mentioned in that talk was that those features in particular were for the 1% (or less). Basically, the finicky power users. Rather than cluttering up the UI with every single toggle and dropdown under the sun, we'd focus more on nailing the experience for the 80-90% of users that would see the screen.
I think that's quite a bit different from what's being discussed in this thread. The last few years in particular GitLab's been adding a lot more features across the whole spectrum of development (CI, packaging, monitoring, and so on), whereas GitHub has been mostly content to refine the existing platform. I don't even think it's really a question of simplicity (or at least not to the extent of what I was trying to mention in my talk from six years ago) — it's more of a matter of expanding into very large holes that the version control industry hasn't really tackled very much before (take a look at Bitbucket, or even some of the open source clones, which all kind of stick in the version-control-only perspective).
> I would say it's just a different set of tradeoff balancing.
That I'd probably agree with, though. I think GitLab's thoughts on what's helpful to a developer is much broader than GitHub's narrower definition. Each are making their bets with that, so it's more a matter of how you view your own problems and the future of these kinds of problems and all that. :)
Every time I go back to gitlab I’m lost in all those drop downs and buttons it shows me. Just nodding to you statement.
Oof. Yeah. I understand what you meant -- I guess I wasn't specific enough in what I said. I didn't mention it anywhere in that comment, but I was thinking about their issue page as the prime example. See here: https://gitlab.com/gitlab-com/www-gitlab-com/issues/2231
I'd say that 1% features shown to anyone on this page are things like confidentiality, time tracking, weight, lock state, and reference. Most of them are in the default position, and reference appears marginally redundant. I didn't execute my example too well, but I think this notion does carry around the rest of the app.
I guess I painted too broadly if you had to catch me. Sorry, Zach!
Either at repository/organization level or user level.
That way you can get the best of both worlds.
I might be wrong, but that's how I'd see it.
Apart from that, it costs more (I didn't bring this up because these costs are negligible compared to the cost of engineer time), you have multiple places charging your credit card, have to manage multiple accounts, etc.
It's sort of like the reasons I used to state on why I like Ember. ember-cli comes fully integrated, I can start to build something in 5 minutes. Whereas, before create-react-app, developers would spend a lot of time just cobbling together tools and reading tutorials just to get to a certain level of infrastructure.
I don't want to do that. I just want to press a couple of buttons and resume building my product.
But I wouldn't say at all that it's the result of stagnation as a result of abandonment -- rather, it's intentional selection.
And how nice it is that there are good products that fit multiple mental models, so neither of us has to compromise. (Again, for the record, I still host everything on GitHub but mainly am looking to GitLab because their stuff is so integrated).
Personally, I'd prefer to use Github at work as I find it a fair bit easier to use and navigate, but Gitlab is much cheaper, so...
But a baked piece of software that doesn’t interact with fast changing parts of the ecosystem doesn’t need to change.
If I saw a dormant project in Rust or Node that handled asynchronous calls I would probably stay away. But a logging library, text processing tool, or unit testing framework might be pretty baked.
In that case the active projects are catching up, which means new bugs. Bugs that I might get stuck with anyway.
> If there's anything I want Gitlab to copy from GitHub, it's the opinionated decision making of what to show and when to show it.
Thing is, that will never happen. The project has already sprawled out of control and if they tried to remove things or drastically change the product users would just start forking the project. Or someone would copy GitLab and make a totally open source clone (that'd be ironic).
On a side note, does the issue tracker for GitLab CE worry anyone else? https://gitlab.com/gitlab-org/gitlab-ce/issues Nearly 11k issues some from 3 years ago.
Care to disclose something?
I find it odd that someone would pick one commercial entity over another when they're otherwise anonymous, which is yet another thing you really can't say about me.
So that's how it is different.
Contrary to that there is no gain for me to be a privacy advocate.
I’m personally tired of seeing Gitlab employees and fanchildren spamming every halfway-related thread on HN. If there’s someone here advocating for Github, he’s a refreshing change of pace.
Plenty of shills on here and they aren’t generally the Github people. Every GitLab story’s comments consist of a barrage of comments complaining about Github. An impartial observer could be led to believe that there is some astroturfing happening. I know a lot of developers and not a single one uses GitLab. But if the HN sample is representative, it seems like most developers hate Github. The GitLab/Github threads don’t seem to track with my real world observations.
Github changed software development for the better. It isn’t perfect, but acting like a Github clone is the second coming of source control management is getting tired.
Use whatever the hell you want. The seemingly non-stop discussion about SCM systems is getting stale. Unless GitLab does some incredible innovation, why must we keep seeing stories about it getting voted to the front page? Unless Github does something especially evil, why must we be constantly be taking and complaining about it? Every time GitLab makes an announcement, they get free advertising by virtue of the upvote cabal. Seriously it’s like HN has become their PR agency. Every time Mixpanel or New Relic or Codeship or Travis CI posts a blog post announcement, it doesn’t make the front page — neither does the press release announcements of dozens of more relevant startups than GitLab. GitLab announces a pricing change! OMG, let’s vote it to the front page because everyone in the Hacker News community should care!
GitLab is “open core” and apparently Github is evil because it’s closed source. GitLab is cheaper and that’s important because spending $12 per month for private repos is just offensive. Good grief. It’s getting as ridiculous as the Windows-Mac debates 10 years ago.
Unless GitLab actually creates some new innovation, I vote for a moratorium on any stories about them making the front page; a pricing change is hardly interesting. HN ought not co-opted as a free marketing channel. The past few days, Hacker News should have been called GitLab News.
You did notice the announcement that Microsoft has agreed to buy GitHub? I suspect that and nothing else is what drives the attention to GitLab which operates in the same space. There are also lots of postings about other competing companies entities, far more than normally. (Gitea, Gogs, comparison links and so on)
I prefer GitHub's approach of allowing applications to deliver more information back into GitHub https://blog.github.com/2018-05-07-introducing-checks-api/ As the tooling we use becomes more complicated that will be the winning strategy.
GitHub has also been really great at giving back to the community (in ways that even GitLab has benefited I'm sure).
But I doubt the source of their popularity is the integration, although their robust APIs have made the ecosystem around them flourish.
Not to mention it's open source, so if you find something you need, you can actually contribute it to GitLab. Not that it won't be work for you, but it's an option beyond asking somebody to put it on their dev team's roadmap.
We grew our platform so fast that most of the core effort is about scalability, logging and reliability. Half the new stuff is bolted on by other teams and I can’t see this lasting.
Someday one of our competitors is going to have copied our best features without all of our baggage and then we are one bad PR incident away from losing customers.
Then we’ll spend a ton of our warchest on rewriting the whole thing and if the stars align the process will repeat. Assuming of course that nobody has spent it all on something stupid.
I've often pondered that effect before but never knew it had a name.
In my case I was thinking of AWS versus "newer" competitors like Google Cloud Platform and Azure. AWS has a lot of services and usually keeps them running and backwards compatible. Newer companies could avoid making the less successful services and copy or take inspiration from the most successful services.
Every bad decision my competitor made that I can identify ahead of time just narrows the gap.
This is why I favor execution excellence over cheap wins. If you can consistently introduce features quarter after quarter year after year, you can run down a competitor. And your sales guys can position the product with that story.
But it takes money and intestinal fortitude, and both are in short supply.
Personally I’d love to see any of these VCS servers differentiate themselves by integrating with sourcegraph and/or offering a better CR experience. Sadly it seems like the market doesn’t care much about either :(
We've been so busy and haven't published much more about it yet, but there are large tech companies using these to get Sourcegraph integration right inside their code hosts. The feedback from our customers is very, very positive on these.
It's source code hosting. How much innovation does it need?
We (Debian) use Gitlab (salsa.debian.org) but we wouldn't switch to the free Gold/Ultimate version because we don't want our infrastructure to run on proprietary software.
It might be that the majority of free software projects accept to use the free subscription and therefore lower the pressure to add new features to Gitlab CE.
Okay that sounds good though I can't figure out what "Gold" is as their pricing page only mentions "Core" / "Starter" / "Premium" / "Ultimate": https://about.gitlab.com/pricing
EDIT: Nevermind ... the metallic plans are for the hosted SaaS offering which doesn't show up by default on the pricing page with JS disabled.
> Open source projects: any project that uses a standard open source licence and is non-commercial.
I get the idea that GitLab wants to offer something to FOSS projects but restricting things to "Non-commerical" is both vague and limiting. Would Spring qualify? It's open source but backed by a commercial entity. How about Redis? Open source with multiple companies offering hosted variants. What about MySQL? It is GPL ... but you know Oracle...
Also unless GitLab is going by the Queen's English "licence" is spelled wrong (should be an "s").
> Free GitLab Ultimate and Gold accounts do not include support. However, you can buy support for 95% off, at $4.95 per user per month. To purchase support, contact sales.
So support is usually $100/user/month? Are there any takers at that price or is that the usual high ball so that you can offer a discount to the procurement department?
They have pricing for self-hosted, and pricing for gitlab.com (managed)
It's a scam.
This is typical education & OSS licensing. You can find the same verbiage in basically every discounted system. JetBrains products start with "for educational use only" when using academic discounts. When using Autodesk software for free, you get the same stuff.
Gitlab is trying really hard to be a great offering -- it's highly improbable they're going to resort to extortion on their newly opened discount programs.
Which is a shame, because it excludes non-commercial research. I work on an academic public health research programme and I'm pretty sure we're not eligible for this wording. We don't teach, we research, we're academics not lecturers...
> It should not have paid support or paid contributors.
Is this really what the author of the definition intended?
¹ Also, three for-profit companies have "seconded" developers or documentation writers to Certbot at various points and at least one other one was planning to and then didn't go through with it.
... also, no project that takes advantage of this offer can participate in GSOC because then it would have a paid developer?
I was just thinking of this situation as an example of an uncertainty in the current definition of "noncommercial", rather than a practical problem that we faced immediately.
But again, thanks for chiming in and thanks for the offer.
It's hard to imagine a single open source project that doesn't have some sort of commercial contribution or sponsorship!
edit, response to detaro:
FB and Google should definitely pay to host their own projects, but many of their engineers contribute to projects all across GitHub!
Why shouldn't Facebook or Google pay for code hosting if they want more than the free plan offers?
If not, then any person can make a fork of an OSS project and charge 1 cent and it is now a "commercial" project and can no longer be hosted on ultimate/gold. It is not defined and Gitlab can use this ambiguity to at any moment start seeking rent...
There is a lot less urgency needed to setup a system for administering discounts like GitHub did for this reason.
They could probably just benefit from making it more clear that private repositories are free for students (even though they're free for everybody), no verification needed. If they reword it like that, it's basically saying "we're not even going to make you verify that you're a student and you get a great deal."
Also, my university gave me an alumni email address that I can still use today that has the same domain name.
Github lets me use my alumni account for the discount (I dont), their idea is if you want to abuse your alumni account you get 2 years free, and they just swallow that cost
EDIT: University/Colleges only. Per wikipedia: "Since 2001, new registrants to the domain have been required to be United States-affiliated institutions of higher education;..."
Many places that offer free tiers for 'education' only worry about that level of education and locale, anyway. (Not saying they should limit it to that, but many do.)
edu-domains where for a while also given to non-US institutions, but this stopped and has now been US-only for a long time.
Imagine if they offered a 75% discount for defending them or praising them on Hacker News! That would make any comment in support of GitLab suspect.
I bet most of those newer 1000 #movingtogitlab has absolutely nothing to do with the discount.
This just gave me an excuse to pull the trigger.
If MS “ruins” Github, then I could move then right? Because it’s so easy? Right now, Github isn’t ruined, so what is so compelling about moving now? I am failing to see the emergency. What happens if GitLab is bought by someone else we don’t like? Do we move again? It’s tiring to keep up with all of the things about which we should be outraged. I just want a rock solid product that works. GitHub does that, so what is so compelling about moving to GitLab?
By moving now you're doing a number of things. First, you're telling your contributors and users that you don't like having access to your software controlled by MS. Second, you're supporting their competitor now when they need you, rather than when you need them. Github's competitors may not be around in 5-10 years when you will finally need them, unless they are supported now. Thirdly, it tells MS that you will move if they meddle again, if everyone jumps ship for gitlab et al. then they are much less likely to buy gitlab down the road.
Why doesn't the Open Source community actually band up and make a Github alternative that is actually good and free for Open Source?
Considering that public Git services are kind of the single source of failure for all of the projects providing what the Internet needs to run, shouldn't we instead band together and make something like the Linux Foundation for Git, providing Git infrastructure for all those projects?
It kind of feels like a really stupid move to hand over central infrastructure into the hands of any commercial entity.
You may object and say that it is a bit lame to re-implement something that is already in the paid version. However, it is best than re-implementing everything from scratch.
Also, I have heard that Gitlab is open to open-sourcing features when you show interest to have it in the free version.
Take a look at this issue for example, which tracks Gnome's wishlist for Gitlab: https://gitlab.com/gitlab-org/gitlab-ce/issues/43566.
The guys behind the Gitlab company move the community edition pretty fast too, possibly faster than what we would achieve by duplicating efforts.
However, as I mentioned in another comment (https://news.ycombinator.com/item?id=17241209), this may change because the new free Ultimate/Gold subscriptions could become excuses to stop open-sourcing features to Gitlab CE.
But I'll be honest. The main reason people want to use these services is the hosting, not the software. That's why you see large numbers of people moving from GitHub to GitLab. They are willing to give up the software that they are used to in order to go with a hosting provider with which they have more trust.
But if you are in a mood to write code, I'll give you my wish list: Issue tracker and review tool built into git itself. You can start here: https://github.com/google/git-appraise
So is gitlab in a sense, but they've managed to wrap the complexity in their installer, with some success.
I just am kind of ashamed for us as developers that we can not manage to band together and solve the task. That is what is really troubling.
So we have the software part (git, sshd, gitea, gitlab, etc.), but if you want a "central" repository you need a server, ergo server administration and people like to outsource that. I expect the hosting costs of github to be tremendous and there is currently no institution that wants to do that.
You could also demand to have some open search engine (instead of Google), but this seems really non-trivial to stem - and people's expectations got very high (for uptime, availability, etc.) - which is probably a good thing as it shows how far we have come.
Because Github's major thing was providing hosting and tools, along with the network of users. Hosting costs money. How would an alternative get around that? Self hosting couldn't be a requirement, because most projects don't have any kind of income, and so wouldn't be able to afford it.
Wasn’t that Gitlab a few years ago? They latter turned into a company with a closed, "enterprise" version then raised money.
It uses it's own fork of Gogs and it looks and feels like GitHub - maybe even too much.
Or we start treating parts of the internet which everyone uses like water, streets.
@sytse: congratulations on that move :)
Worth a look, perhaps.
Gitea had a lot more pull requests merged and issues opened than Gogs, so it seems to me they're the more active of the two. (See for yourself: go to both Github repositories, hit 'insights' and check the past month.) Gitea was apparently forked because they wanted more community driven development rather than by one person.
Of course, it's not a direct replacement, since they don't have free, centralized service like GitHub/Lab does. But, it's 100% open source and you can easily host it on a potato.
Not particularly reassuring since acquisitions of companies after they IPO happen all the time.
"I want a hosted service which is free-libre and free-beer, and don't want the provider to charge or be acquired by a company, and don't want to do anything other than consume their service."
How exactly is that a sustainable model?
As you've mentioned, hosting costs time, which is money. It also costs bandwidth and storage. That gets quite expensive when you're at the scale Gitlab is currently at.
Though I will say that this can be a sneaky business model. Users might not realize some of the features they depend on in the gitlab.com version isn't from the community edition.
I preferred GitHub's UI because it was cleaner and much faster to load.
GitLab's initial screen is that list.
It may well be that Microsoft doesn't radically alter the direction of GitHub and that will be acceptable to most people.
(I would prefer a fully FLOSS solution, but GitHub has huge benefits in terms of network effects.)
What kinds of these? Its never been the case that 25% more engineers means 25% more progress and github is a mature product made by a company that already employees a signifiant staff.
The logical thing would be not to piss off the existing users and use github to add value to existing Microsoft properties. So some new integration with Microsoft things?
Also required users making private forks of paid-for organization private repos to pay again to give access to all team members at once last time I used it, but I guess that’s not relevant for open-source migration.
You can also mark it as «Need work».
Better rapport with developers? Probably not.
(and, FWIW, we use Bitbucket/Jira and honestly I'm fine with them - their updates just tend to be full of the annoying things a bad PHB would love and light on the things developers care about)
Github felt safe before, a neutral ground for Google, Microsoft, Apple, Facebook, Netflix, Amazon all come together and share their love for code and just code.
Not so much anymore. The hate is over-blown, but it does feel weird now. With a knowledge of Microsoft products I can understand why many people would see a bleak future ahead .
: Relevant image going around the internet: https://desu-usergeneratedcontent.xyz/g/image/1528/18/152818...
But if they do, it is so easy to switch, that I do not see the point in "all hell broke loose" panic attacks before anything actually happened.
Microsoft is committing heavily on open source, for good or bad, and it would be tactically disadvantageous for Github to fall into the hands of a competitor.
If history tells us anything about acquisitions of this nature, it never ends well. But I could honestly see things being a lot worse if they'd been acquired by someone like Apple or Google.
This! This is my primary concern. It's not even a concern per se, since I am convinced all of those companies (except MS of course) will pull-out and disperse to alternative services. And then I believe a 2nd wave of smaller, related-to-products-of-these-companies' projects will also leave.
It was nice to have a neutral ground where all "sharks" came together. But at the same time, I can't blame GitHub's founders and board for searching an exit.
- OS level adverts on a fucking paid OS
- forced updates (and forced restarts) at the most inconvenient times)
- MS buying Skype, then removing Linux support, and removing the p2p nature leading to privacy concerns and shittier connections
- the endless spyware they install in the OS, and make it impossible to easily and permanently turn off.
I kinda want to try Fossil now.
Works fine for us at zenAud.io... anything in particular you find lacking?
I must admit though: their change to group-based issues annoys me because you have to jump through a bunch of links to get to the milestones for a project. But otherwise it's pretty similar to competitors... but hey, maybe we're not real power users.
UPDATE: temporary fix -- I removed the offending section.
* Everything about browsing projects. Okay, so if you click on "Projects", you get taken to a list of "your projects". That's kind of annoying since I'd go to my personal page if I wanted a list of stuff I've touched (kinda like Github) but it's defensible as a choice. If you want something that isn't yours, it takes another click to "explore projects", which goes to a "trending" page that will either be blank or have very few things on it, and another click after that to get to the time-sorted list of everything based on last update, which is usually what I want.
* Groups appear to be second class citizens of sorts, rather than the top level organizers they really are. (I.e. groups are separate from projects, even though all projects live in a group or user space). Bitbucket did this better - when you log in, you see a list of groups first, and from there drill down into projects.
Basically, it kinda wants to be a hierarchy but offers too many ways to circumvent it. Imagine if you were just browsing a file explorer and saw files two levels below your pwd. It's disorienting.
* Top level project pages feel cluttered and noisy. Github does this better, without requiring a separate sidebar.
* Repo settings are buried under expand links. This did not make the page more usable, it made it so I had to guess where the setting I want is.
* Why are there two nearly identical pages for showing repository contents? (One at the top level of a project, which is any project's landing page, and another on its "repository" tab, which is the same view missing a few elements)
* Releases and their artifacts are buried behind "tags" (which they technically are in Git parlance, but still) or a very easy to overlook CI status badge on the last commit shown on the landing page. Releases can only be created with API calls or manually through the new tag page, rather than programmatically or as part of a CI job. (Yes, I know, the CI job could technically call the API. You get a cookie. Point is, it feels rather buried.)
* Build artifacts can only be downloaded in a zip bundle, rather than individually
* I haven't figured out how to turn off the "Do you want to enable Auto DevOps?" div showing in every single repo.
* Advertising for Google Cloud on the CI Kubernetes page is just plain tacky. I'm sure there's a way to turn this off, but I shouldn't have to in the paid Enterprise product.
We have a couple of issues open to address downloading individual files/artifacts.
I am going to add your feedback on both of those and see if we can get some attention in this area.
These may seem like small, insignificant problems but they can easily roll up into larger UX issue. Keep these insights coming!
This is a screenshot of their issue page taken straight from their website: https://about.gitlab.com/images/feature_page/screenshots/41-...
It's just cluttered. All the controls you need are there, but it's not focused or simple. My eyes don't know where to focus.
Another example: https://about.gitlab.com/images/feature_page/screenshots/34-...
Things are just thrown on the page.
After seeing your feedback (and confirming my assumption) I decided to open a new issue to specifically address this and would love to get your feedback on the proposed solution:
Thanks again for taking the time to write such detailed feedback down. It's really helpful to us. Cheers!
I agree on most things but I really do like the sidebar. It can be hidden if you don't like seeing it (arrow on bottom left). It also allows you to hover over the sections and drill into the page you want without having to click and load pages. It's definitely an improvement over the previous arrangement they had.
Agree that tags is an annoyingly unintuitive place to go when looking for releases. Just call it releases and place it prominently on the repo landing page like Github. The fact that releases are also tags is understood. The icon gives it away.
I'm not sure about the people who had to admin it, but for us devs it worked really well
I mean the merge request cycle works well (way better than BitBucket or Gerrit). Sure the initial project screens could use a little work (show the files instead of the readme/project info?) but in general I think the UI is decent, especially compared to BitBucket. Needing some improvements is different than being a "complete mess."
It could be improved sure, but I don't think the current UI gets in the way of my development in significant ways.
Another problem is that the project explorer is very bare bones. I can't filter by language, for example.