Re:Why Google stores billions of lines of code in a single r...
by svckr on Sunday December 10, 2017 @07:49AM
(#15891177)
> CSV/SVN used to do that out of the box but everyone hate them now.
It's "CVS" and it lacks a concept for a repository-wide version (except, maybe, a timestamp). A repository-wide version is –I guess– the single best reason to have monorepo in the first place.
SVN is okay.
Also, `git log -- subdir/`.
Re:Why Google stores billions of lines of code in a single r...
by k__ on Sunday December 10, 2017 @07:29AM
(#15891127)
Why aren't submodules more wide spread?
Building a monorepo out of submodules should solve these problems, or not?
Also, there is subtree.
Re:Why Google stores billions of lines of code in a single r...
by iveqy on Sunday December 10, 2017 @09:01AM
(#15891383)
Because submodules is hard to understand. They require that you understand git and that you can add one level of abstraktion.
Once you done that, they är great!
Re:Why Google stores billions of lines of code in a single r...
by Groxx on Sunday December 10, 2017 @01:21PM
(#15892665)
Also hard to deal with. Lots of operations leave submodules in unclean / out-of-date states.
In general / light use, yeah, they're great. Unfortunately, they have a very large number of edge cases where they essentially require either a) everyone to be experts in the edge cases, or b) tons of new tooling (because existing tools won't take these steps for you).
Re:Why Google stores billions of lines of code in a single r...
by lamlam on Sunday December 10, 2017 @09:00PM
(#15894658)
That is... until you try to remove a submodule.
I like sobmodules, but the whole feature needs a lot more polish before it's widely adopted.
Git only allows to check/commit/view to the entire repo at once. Then, some git operations are superlinear with the number of files or revisions, they are slow on large repo to the point of being unusable.
It's mandatory to have operation on a per file or subdirectory level in a mono repo approach. Companies that have mono repos all built tooling to support it. CVS/SVN used to do that out of the box but everyone hate them now.