Skip to content
TopicTracker
From HackerNewsView original
TranslationTranslation

Josh helps Rust manage code across multiple repositories

Josh is a tool that helps the Rust project manage code across multiple repositories, enabling synchronization and cross-repository patching for components like the compiler, standard library, and tools.

Background

Josh is an open-source tool originally developed by the Rust compiler team to synchronize commits across multiple Git repositories. The Rust project itself uses "subtree" vendoring: key code (like the standard library's core or the compiler's LLVM bindings) lives in its own upstream repo but gets copied into the main rust-lang/rust monorepo. When changes happen in either place, they must be manually or mechanically ported to the other — a notoriously error-prone chore. Josh automates this sync by keeping repos in sync via git history rewrites, not periodic snapshots. This matters because many large projects (and companies) struggle with the monorepo-vs-multirepo tradeoff; Josh offers a way to have both without the usual overhead. The Rust team is now adopting Josh as part of their official workflow, which signals maturity for a tool that started as a side experiment.