Um repositório git pode ser pensado como um conjunto de revisões parcialmente ordenadas (onde uma revisão é anterior a outra na ordem se for um sucessor direto ou indireto do anterior). As ordens parciais que você recebe dos repositórios git tendem a ter baixa largura (o tamanho do maior conjunto de revisões independentes), porque a largura está diretamente relacionada ao número de desenvolvedores ativos e ao número de forquilhas diferentes que qualquer desenvolvedor individual pode estar trabalhando em.
Com base nesse cenário, sugiro o teorema de Dilworth , que afirma que a largura de qualquer ordem parcial é igual ao número mínimo de cadeias (subconjuntos totalmente ordenados) necessários para cobrir todas as versões. E para torná-lo tópico neste fórum, você também pode mencionar os algoritmos baseados em correspondência de gráficos para calcular a largura e encontrar uma cobertura por um número mínimo de cadeias em tempo polinomial.
Uma maneira que isso pode ser relevante para o uso real no Git é em um sistema para visualizar o histórico de versões de um sistema: a maioria dos sistemas de visualização do Git que eu vi desenham o tempo no eixo vertical e as versões independentes do repositório horizontalmente. daria a você uma maneira de organizar a visualização em um pequeno número de trilhas verticais independentes.
Como alternativa, se você quiser algo mais ambicioso e avançado, tente a estrutura de dados da árvore de culpa de Demaine et al. , Que é diretamente motivada pela resolução de conflitos em sistemas de controle de versão do tipo git.