Google copybara: moving code between repositories

reconnecting 152 points 20 comments June 30, 2026
github.com · View on Hacker News

Discussion Highlights (11 comments)

namanyayg

Nice, I built something similar ~5 years ago using nested git repos and scripts to accomplish a similar purpose of combined private and public repos. My shell script definitely wasn't google scale tho!

lysace

Cute name. (Naming is hard and important.)

MarkSweep

Some other interesting tools in the space. Rust is using a tool called Josh to sync commits: https://josh-project.dev The blog post from the Rust people: https://blog.rust-lang.org/inside-rust/2026/06/04/how-josh-h... Meta used to have an open source tool called fbshipit. But according to its open source repo they no longer use it: https://github.com/facebookarchive/fbshipit Any others in this space?

schrodinger

To those who have used it: is it handy for situations where you have multiple repos that want to share a little code, but it's not worth the trouble of extracting a library, referencing it, publishing versioned releases, updating dependent repos, etc? And instead just "sync" a code folder from one main repo (perhaps containing common domain models) to other repos? Basically the Go philosophy that a little bit of copying is better than a lot of dependency?

xyzzy_plugh

Copybara is one of those things that you should have set up yesterday. It works great and I've seen many teams gain significant productivity when collaborating in a monorepo with public bits. If you're even toying with an internal monorepo you owe it to yourself to give it a try.

jumploops

We’re in the process of open-sourcing a few sub-projects within a monorepo, and didn’t know this existed! I’m curious what downsides folks have experienced with this tool? Any tips?

syngrog66

That seems like a tool easily adoptable by folks engaging in dark patterns on GitHub, particularly the malware bait repos.

alok-g

Interesting. Anyone knows how this compares to using git submodules and subtrees? I had used those to create separate repo for website artifacts while the same also remain plugged into the webapp dev repo. (Both sides remain modifiable and changes mergeable to the other side.) Thx.

neprotivo

If you are using Jujutsu you can achieve a basic way to maintain a public repo from a private monorepo with very little code and without Copybara. I wrote up how to do it here: https://vihren.dev/blog/20260625-jj-public-private-workflow/

klodolph

Been using this for a while, mostly when I make a tool as part of a larger project and the tool is big enough to deserve its own release. It’s powerful enough to do a whole bidirectional shipping operation where you export and import code—no thanks, that’s a hassle. I use it mostly for a simple fire and forget export, where I take a folder out of its original repo and preserve the history. Then I just move development to the new repo. The new project layout can be completely different, but Git blame works and I’m happy with that.

willchen

i used this tool when i was at google, extremely helpful in open-sourcing things from google3 to github. still, i'm glad to just directly develop on github now :)

Semantic search powered by Rivestack pgvector
14,015 stories · 131,331 chunks indexed