Debian Git Monorepo
Perforce, Git, and Monorepos
- Some are surprised Perforce never pushed harder into open source, given monorepo strengths; others say Perforce is happy in niche markets (games, automotive, large binaries) and has long offered free licenses to OSS.
- Several note that Git has become more monorepo‑friendly, partly via Microsoft’s work (VFS for Git, Scalar), though these extensions are still awkward to deploy and not universally supported.
Kernel Workflow and GitHub Debate
- One side argues the Linux kernel proves monorepos work well with Git, and that GitHub/GitLab would simplify contributions.
- The opposing view: mailing‑list workflows and higher “friction” act as a deliberate filter and support complex versioning, backports, and non‑linear development that web UIs and PR models handle poorly.
- Disagreement persists over whether friction is quality control or needless barrier.
Pros of Monorepos
- Single place to search and change code; easier cross‑cutting refactors and synchronized changes across many packages.
- Stronger guarantees: changing a shared library and its consumers atomically, running all relevant tests together, avoiding version drift.
- Simpler onboarding and discoverability vs. “maze of small repos” and submodules.
Cons and Scaling Issues
- Large monorepos need serious tooling (Bazel/Buck, distributed builds, sparse checkouts, ownership metadata, smarter CI); without that, builds slow, pipelines get noisy, and unrelated flaky tests block progress.
- Popular libraries in a monorepo become hard to change atomically; large‑scale migrations stall, leading to “fake versioning” and abandoned transitions.
- Critics argue many teams prematurely centralize; stable abstractions and versioned libraries can work better across repos.
Git at Massive Scale
- The Debian “500 GB / 15M files” April Fools repo sparks discussion: modern Git can technically handle such sizes with sparse checkout and LFS, though performance and UX remain challenging.
- Others point to huge real‑world repos (Gentoo, various corporate monorepos) as stress tests; Git usually works but may be slow without custom tooling.
Debian, Distros, and Reproducibility
- Debian already stores full upstream sources; the joke repo essentially aggregates all extracted source packages into one tree.
- Comparisons are drawn to NixOS, OpenWRT, Void Linux, and OpenBSD, which centralize package recipes/configs rather than full upstream source, seen as more practical.
- Some commenters think a serious Debian monorepo could enable powerful, distro‑wide changes; others see it as operationally unrealistic with current tooling.