this post was submitted on 04 Jul 2025
36 points (87.5% liked)

Programming

21400 readers
170 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] HaraldvonBlauzahn@feddit.org -3 points 1 day ago* (last edited 1 day ago) (13 children)
  • Storing large files. LFS is a shitty hack that barely works.

Well, git is for source control, not binary artefacts. There are indeed projects whose size is not a good match to git, but not everyone is Google or CERN.

  • Integrating other repos. Git submodules are a buggy hack, and Git subtree is.. better... but still a hack that adds its own flaws.

What are your requirements? What do you need this for? And why do you think everyone else needs the same?

It's quite possible you are doing it wrong. What you want as a FOSS project are probably libraries which are build, versioned, and packaged separately. Perhaps using Debian packaging tools or Guix. Splitting it into real libraries with a concise API ensures that the API surface does not becomes too large, that the components stay relatively compact and maintainable, and that other parts of the FOSS community can re-use that library.

Companies - especially large companies - sometimes promote vendoring instead. But this promotes their interests, not those of the FOSS community on which creations they are building on.

Yes, git is designed to match the needs of the Open Source community! If you have a deeply intertwined multi-billion code base for a commercial product, a smartphone with closed firmware, or yet another TV , it might not be the best match. But who cares? Is the open source community obliged to meet such needs?

[–] FizzyOrange@programming.dev 19 points 1 day ago (12 children)

Well, git is for source control, not binary artefacts

Only because it is bad at binary artefacts. There's no fundamental reason you shouldn't be able to put them in version control.

It's not much of an argument to say "VCSes shouldn't be able to store binaries because they aren't good at it".

What are your requirements? What do you need this for?

Typically there's a third or first party project that I want to use in my project. Sometimes I want to be able to modify it too (soft fork).

And why do you think everyone else needs the same?

Because I've worked in at least 3 companies who want to do this. Nobody had a good solution. I've talked to colleagues that also worked in other companies that wanted this. Often they come up with their own hacky solutions (git subtree, git subrepo, Google's repo, etc. etc. - there are at least half a dozen of these tools).

It’s quite possible you are doing it wrong.

No offence, but your instinctive defence of Git and your instant leap to "you're holding it wrong" are a pretty dead giveaway that you haven't stopped to think about how it could be better.

[–] HaraldvonBlauzahn@feddit.org 2 points 1 day ago (1 children)

Only because it is bad at binary artefacts. There's no fundamental reason you shouldn't be able to put them in version control.

There is a fundamental reason: You can't merge them.

[–] FizzyOrange@programming.dev 1 points 1 day ago

So what? You can manually merge them. File locking is also a common solution (LFS supports that).

The level of "you're holding it wrong" here is insane.

load more comments (10 replies)
load more comments (10 replies)