Another “Differences in Linux” question :)

I often wonder, what exactly is the difference between this services?

I understand, that:

  • github.com is a company, where as gitlab and forgejo are (softwares)?
  • They all “manage/wrap/interface with” git?

Questions:

  • what software does github.com use?
  • whats the difference between them (pros/cons)?
  • what about self-hosting? Possibilities/Preferences?

As always, thanks beforehand :)

  • Patch@feddit.uk
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    11 months ago

    Git is the underlying code management and version control system. It can be used directly, and also forms the backend to a number of other systems.

    Code “forges” are platforms which integrate a version control system (like git), a code repository (a file server), and front end utilities.

    Some git forges are open source, others are proprietary. Certainly with the open source ones, but also with the proprietary ones in some cases, you can either self-host or use a hosted service.

    GitHub is a proprietary forge, and GitHub.com is the company’s fully hosted service. They’re now owned by Microsoft.

    Gitlab is an open source forge. Gitlab.com offers a hosted service, but many projects self-host.

    Forgejo is a fork of Gitea which is a fork of Gogs. These are all also open source. As far as I know, neither Forgejo nor Gogs offer a hosted version, but Gitea does.

    A few other notable forges include GNU Savannah (open source), Bitbucket (proprietary), Sourceforge (proprietary), Launchpad (open source), Allura (open source).

    At the end of the day, they all do the same thing. They have different feature lists (especially around some of the project management and user interaction side), different user interfaces (some are shinier and more modern, others more minimalist), and different communities and support models. You choose that one that works best for your needs.

    GitHub is probably the most feature-rich (and/or bloated) of them. GitLab is competing in the same space, and self-hosted GitLab seems to be something of a sweet spot for many projects that want a premium experience without needing to use a proprietary Microsoft product. I don’t have much experience with Forgejo or Gitea. The rest tend to exist in their niches.

  • shirro@aussie.zone
    link
    fedilink
    English
    arrow-up
    1
    ·
    edit-2
    11 months ago

    In my opinion Github in its current incarnation mainly exists to steal the IP of programmers and lock it up in proprietary AI services controlled by Microsoft. It dominates for the same reason Facebook or Youtube dominate. It is the only platform normies know and it benefits from massive network effects. It is US owned and operated which is becoming an issue for lots of people. Github is a proprietary closed source platform. I believe it was originally mostly written in Ruby but they have likely replaced all the performance bottlenecks using other languages. In my opinion their site is a usability nightmare.

    Forejo is a fork of Gitea by Codeberg, a community run non-profit from Germany (still a liberal democracy under the rule of law) and hosted in Europe. They provide free hosting for open source projects or it is easy to self host. Gitea is a fork of Gogs and remains active. All those forks are written in the Go language and it requires a single exe, a config file and an sql database to run making it very easy to self host even without containers.

    Gitlab is a service like Github or Codeberg that can also be self hosted but it is written in Ruby, a slow and inefficient interpreted language, which like Javascript or Python has lots of crazy fragile run time dependencies. The open source project was originally a work of Dutch and Ukrainian programmers and it was a Dutch company but they took VC money and IPOed and I don’t know that I would assume it is European controlled. Some open source projects like Gnome moved there as it was the main alternative to Github. Can’t recommend vs Gitea/Foejo for self hosting.

    For single developers, small groups, arguably all you really need is git and email if you don’t need or want all the extra fluff. That can work even for large projects like the Linux kernel. Sites like github tend to serve as single points of contact for lots of projects. It is their front page, issue tracker, everything which is one hell of a dependency on another company. It has Facebook-ized the code ecosystem. I think it also sort of serves as a linkedn for some people.

  • solrize@lemmy.world
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    11 months ago

    Github: Microsoft code hosting site that feeds all your code through AI training and tries to lock you in through their pull request and related machinery. Once used a motto like “social coding”, but let go of that when they realized Facebook for nerds didn’t sound that great. Software is mostly proprietary besides Git itself.

    Gitlab: 1) a Github competitor (gitlab.com, code hosting site with somewhat similar features; 2) the software for that site, huge and bloaty and slow, written with Ruby on Rails. You can self host it if you want, but yecch.

    Forgejo: Git front end software, fork of Gitea and/or Gogs. Small and fast and written in Go. Fewer features than Github or Gitlab. If you want to self-host, I’d use this or some variant. Quite easy to install and run.

    Gitweb: comes with git, pretty rudimentary but has old school attractiveness at least for me. Really just a browsing interface. No pull requests or anything like that.

    Git, just plain Git: if you are self-hosting a project for yourself and maybe a few friends/collaborators, it’s fine to just use git with no web stuff, and push/pull by ssh. You’d manually install account credentials for your friends. This is really the simplest, but NO fluffy UI or other creature comforts.

    Fossil: amazingly small and fast alternative to all the above (fossil-scm.org) but uses its own VCS (Fossil) that doesn’t interoperate with Git. I think the author said he might convert it over sometime. It’s written in C! Uses sqlite as repo backend instead of the file system like git uses. Has built in wiki, bug tracking, documentation viewer, etc. and used about 2MB of ram last time I tried it, ridiculously small (Gogs used around 40MB and Gitlab uses gigabytes).

    Sourceforge (sf.net), very old school code hosting site, not of much relevance any more. They released an old old version of the software a long time ago and that got forked to become Savannah.

    Savannah (savannah.gnu.org) hosting site for GNU and related software. Also savannah.nongnu.org for non-GNU stuff in the same spirit. I don’t know the exact criteria for putting stuff on nongnu but I think it’s on a project-approval basis, rather than letting everyone upload whatever they want.

    Darcs (darcs.net), another alternative to git, better in some ways, written in Haskell, lost most of its users after a self-inflicted footbullet around 5y ago. There was a hosting site (darcsweb?) for it but that looks to be gone now.

    There are a few more of them too, none of much importance these days even though some were interesting.