Git, repo, y mantener las cosas sincronizadas

He buscado en el sitio las respuestas a esto, y aunque he aprendido mucho, todavía tengo un problema que tal vez alguien pueda ayudar.

Nuestro equipo de Deb tiene un repository interno de Android bifurcado de una sucursal de Google. Tenemos que trabajar con un cliente, por lo que he configurado un trabajo cron para sincronizar el repository en una máquina accesible para el cliente. Esto hace que el repository interno sea el maestro.

Ahora, por supuesto, el cliente necesita enviar actualizaciones y solo tienen acceso al server externo. Esto lleva a un enigma: si no utilizo "repo sync" para mantener el repository externo sincronizado con el interno, se eliminarán los cambios que el cliente presione hacia el espejo del repository externo.

La solución más lógica sería hacer que el externo sea el maestro y forzar a que el interno se sincronice, pero no creo que pueda convencer al equipo de deb para que lo haga.

He pensado en los ganchos post-commit para sincronizar con el interno, pero parece que funcionan solo en un repository git individual, y tendría que encontrar todos los files .git / post-commit para hacer el cambio.

¿Hay alguna manera más fácil de hacer que esto suceda?

Debe considerar el repository externo como un tenedor del repository interno y combinar sus resultados en los momentos apropiados.

Realmente depende de cómo estás trabajando junto con tu equipo externo.

Pero supongo que está trabajando en un código similar, por lo que se estaría fusionando con el repository interno después de una revisión del código (?).

Su equipo interno también está trabajando en las horquillas de los repositorys, solo localmente. Pueden o no tener acceso para enviar directamente al repository, no estoy seguro.

Debe decidir su estrategia de fusión, qué gatekeeper tiene entre los repos, si no tiene ninguno, entonces debe configurar 2 ganchos post-receive, uno en el interno y el otro en el externo para mantener los dos repos en constante synchronization (iniciar un pull / push hacia / desde el otro repository).

Si obtiene un error en los ganchos, tendrá que corregir manualmente el problema más probable, así que recuerde disparar correos electrónicos.