4 ms·
> Every day there are hundreds of changes in the repo and almost all of them have nothing to do with what I'm working on. Wouldn't the right tooling be able to
by Sacho 9y ago
> Every day there are hundreds of changes in the repo and almost all of them have nothing to do with what I'm working on.
Wouldn't the right tooling be able to show you changes to the slice of code you're interested in? I remember SVN would allow you to checkout just a single subdirectory, for example.
> all sorts of operations take longer (pulling, grepping source, etc.) to support code I couldn't care less about.
Makes sense about the pulling, but again, wouldn't grepping be configurable to only search where you need to?
> Frequently have to update the world at once. Unless the repo can store multiple versions of the same module, then all the consumers have to be updated at once, even if it's inconvenient. Sometimes migrations are better done gradually.
I'm not sure I understood you here, can you expand on that? Do you mean all the devs have to update their module? Why not use tagged/branched version of libs instead of working off trunk?
What kind of tooling do you use for the distributed approach?
- gmueckl 9y agoUsing different branches for different modules becomes hard in a monorepo when branching is a global operation. You can only have a single branch checked out in your working copy then. The only solution I can think of is to create a copy within the monorepo to create de facto branches without regular VCS support. This would be kind of terrible.
- nickm12 9y agoYeah, it's all about the tooling. The distributed system I used was when I worked at Amazon. Each "package" there has its own git repo, which can have multiple branches and the dependencies of each branch are versioned along with the branch. I wonder if at the end of the day it really matters whether something is a "monorepo" or not if the tooling provides the necessary abstractions to version things the way you need.
- gmueckl 9y agoDid you use standard software for the versioning? We are looking for a solution for this at work and have come up blank so far.