Automatizado concurrente git push

Me gustaría configurar un repository simple que contendría resultados de diferentes proyectos, comstackdos en Travis CI.

Lo que no puedo entender es la forma más fácil de cómo presionar de forma segura al repository desde la console Travis. Si hay dos proyectos comstackdos al mismo time y ambos presionan al mismo time, uno de ellos fracasará de forma natural con el error refs no actualizado.

Como las routes en cada commit están garantizadas como únicas ([nombre del proyecto] / [commit id]), lo mejor que se me ocurre es un script como este:

while $(git push) not ok { git pull --rebase } 

¿Puedes pensar en algo mejor?

Una solución alternativa sería presionar a dos twigs diferentes B1 y B2 , y tener un gancho post-receive en el lado del server que fusionará esas twigs con el master .

Dado que se garantiza que las routes en cada compromiso serán únicas, esas fusiones no tendrán ningún conflicto y se pueden automatizar.

Empujar a dos twigs diferentes significa que no debe haber ningún problema de concurrency.

Dado que el control remoto es GitHub, otro enfoque es fusionar esas twigs en el lado Travis-CI, y luego insert solo una twig.