My team have been using git and gerrit for development. As gerrit does code reviews on a per commit basis, git needs to used in a certain way (using --amend for all but the first commit, and using rebase to sync).
To avoid this limitation, my team wrote a git extension that upon push to gerrit creates a new ephemeral branch, squashes all commits from the current branch to the ephemeral branch, and pushes the ephemeral branch instead of the current branch. There is some magic that keeps track of the change ID across different pushes too. This allows us to use unrestricted git command set (multiple commits, merging conflicting branches, ...) and still be able to use gerrit for code reviews.
I would like my team to start using "repo" and I wonder what do you think is the best way to integrate our extension with "repo".