Kubernetes uses a monorepo approach for development and testing. For Golang vendoring by 3rdparties we publish subdirectories as separate Github repositories (like k8s.io/client-go, k8s.io/apimachinery, k8s.io/api, etc.) continuously every night, while keeping all history, all Github merge commits and while rewriting commits with Godep-save updates to express dependencies. Sounds easy? It's not! Implementing this was the best learning experience of git and git internals and the topic of this talk.