Live data from Hacker News

Google copybara: moving code between repositories

github.com

1–10 of 70 posts

Re: Google copybara: moving code between repositories

#5

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!

Yep, same. I thought it might a wrapper around git subtree but looks like it’s doing quite a lot more!

For example altering commit author emails during sync

Re: Google copybara: moving code between repositories

#6
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?

Re: Google copybara: moving code between repositories

#7
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?

Re: Google copybara: moving code between repositories

#8

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 copy…

It’s largely used for syncing external open source projects with the monorepo. Policy is to require source code imports over built artifacts. Though you can get exceptions.

Some projects are also developed in the monorepo and exported via Copybara.

My team also uses it to version Starlark rule sets internally.

Re: Google copybara: moving code between repositories

#9

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 copy…

It's for when you have a monorepo internally, and want to publish parts of it as open source to the world. They still need to live in the monorepo, so this is the solution.

Having a public repo as a dependency for your private corporate repo is a pain in the ass development-wise. Having a tree of such dependencies is a migraine.

Re: Google copybara: moving code between repositories

#10
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.

Post reply on HN