Fluxo de trabalho Git para desenvolvimento de kernel Linux corporativo

Eu trabalho para uma empresa que constrói sistemas embarcados usando o Linux. Historicamente, sempre usamos o CVS para armazenar nosso trabalho no kernel. Nossos kernels acabam sendo uma coleção de:

Drivers para nosso hardware proprietárioCorreções aleatórias para bits de Linux que usamosDrivers de hardware não proprietáriosHackers yukky aleatórios para adaptar o Linux para o nosso aplicativo

Estamos no estágio em que gostaríamos de rebase alguns de nossos kernels mais antigos em versões mais novas, bem como de corrigir nosso arcaico fluxo de trabalho de CVS para algo baseado em changesets. A escolha óbvia é git.

Eu estou lutando para chegar a um fluxo de trabalho sensato. Eu exportei nosso repositório CVS para um de nossos kernels e tenho uma coleção de changesets sobre o kernel Linus de base apropriado. Para onde eu vou daqui?

Eu gostaria de ter um repositório central para o qual todos os desenvolvedores comprometam as alterações. É seguro usar o rebase para mover nossa coleção de changesets para uma nova revisão do kernel base e, em seguida, nossos desenvolvimentos serão realizados sobre o novo branch central?

Pontos de bônus para obter um fluxo de trabalho que nos permite separar facilmente as alterações que podem ser adequadas para o upstream. Estou farto de empurrar uma coleção de pequenas (ou pequenas) mudanças geralmente úteis para frente o tempo todo.

questionAnswers(1)

yourAnswerToTheQuestion