this post was submitted on 18 Jul 2024
39 points (91.5% liked)

Programming

17000 readers
94 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 [email protected]



founded 1 year ago
MODERATORS
 

I just finished watching Why Google Stores Billions of Lines of Code in a Single Repository and honestly, while it looks intriguing, it also looks horrible.

Have you run into issues? Did you love it? How was it/

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 2 points 1 month ago

I have no experience using them across an entire company, let alone team. So far, it always seemed good enough to keep just each project in a repo. But yeah, for larger projects consisting out of multiple applications, I would not want to work without a monorepo for that.

Many of the benefits from the video still apply, mainly the consistency in code changes was always useful. You can check out any commit and you've got the exact state how everything worked together at the time. No wrangling different versions, no inconsistencies between APIs.
In our build process, we include the Git commit into the applications to have it logged on start-up, so when we get an error report+logs, we can always easily look at the respective code.

But it does depend on your build tooling, if this works well. JVM languages with e.g. Gradle's multi-project builds are great. Rust's workspaces are a treat. Python is fucking atrocious with everything we've tried (pipenv, poetry, lots of custom scripts+symlinks).