Existem boas soluções para o limite de tamanho de arquivo de 100 MB do GitHub para arquivos de texto?

Eu tenho um arquivo de texto simples de 190 MB que desejo acompanhar no github.

O arquivo de texto é um arquivo de léxico de pronúncia para o nosso mecanismo de conversão de texto em fala. Nós regularmente adicionamos e modificamos linhas nos arquivos de texto, e as diferenças são bastante pequenas, portanto, é perfeito para o git nesse sentido.

No entanto, o GitHub possui um rigoroso limite de tamanho de arquivo de 100 MB. Eu tentei o serviço GitHub Large File Storage, mas ele carrega uma nova versão de todo o arquivo de 190 MB toda vez que ele muda - de modo que aumentaria rapidamente para muitos gigabytes se eu seguisse esse caminho.

Eu gostaria de manter o arquivo como1 em vez de dividi-lo, porque é assim que nosso fluxo de trabalho está atualmente e exigiria alguma codificação para permitir vários arquivos de texto como entrada / saída em nossas ferramentas (e não temos muitos recursos de desenvolvimento).

Uma ideia que tive é que talvez seja possível configurar alguns ganchos antes e depois da confirmação para dividir e concatenar o arquivo grande automaticamente? Isso seria possível?

Outras idéias?

Editar: Estou ciente da limitação de tamanho de arquivo de 100 MB descrita nas perguntas semelhantes aqui no StackOverflow, mas não considero minha pergunta uma duplicata porque estou solicitando o caso específico em que as diferenças são pequenas e frequentes (eu sou tentando carregar um arquivo ZIP grande ou algo assim). No entanto, meu entendimento é que o git-lfs é apropriado apenas para arquivos queraramente mudar, e esse git normal seria o ajuste perfeito para o tipo de arquivo que estou descrevendo; exceto que o GitHub tem uma restrição de tamanho de arquivo.

Atualizar: Passei ontem experimentando a criação de um pequeno programa de plataforma cruzada que divide e une arquivos em arquivos menores usando ganchos git. Isso meio que funciona, mas não é realmente satisfatório. Você precisará excluir seu arquivo de texto grande por .gitignore, o que faz o git desconhecer se ele foi ou não alterado. Os arquivos divididos não são detectados inicialmente pelogit status ougit commit e leva ao mesmo problema descrito nesta pergunta do SO, o que é bastante irritante:O script de pré-confirmação cria o arquivo mysqldump, mas "nada a confirmar (diretório de trabalho limpo)"? Configurar um trabalho cron (linux) e uma tarefa agendada (windows) para regenerar automaticamente os arquivos divididos regularmente pode corrigir isso, mas não é fácil de configurar automaticamente, pode causar problemas de desempenho no computador dos usuários e não é muito elegante solução. Algumas soluções hacky, como a modificação dinâmica de .gitignore, também podem ser necessárias e de forma alguma você obteria uma diferença dos arquivos de texto reais, apenas os arquivos divididos (embora isso possa ser aceitável, pois seriam muito semelhantes).

Então, depois de ter dormido, hoje acho que a abordagem git hook não é uma boa opção, afinal, pois tem muitas peculiaridades. Como foi sugerido pelo @PyRulez, acho que vou ter que procurar outros serviços além do GitHub (infelizmente, já que amo o github). Uma solução hospedada seria preferível para evitar a necessidade de gerenciar nosso próprio servidor. Também gostaria que estivesse disponível publicamente ...

Atualização 2: Observei algumas alternativas ao GitHub e atualmente estou inclinado a usar o GitLab. Entrei em contato com o suporte do GitHub sobre a possibilidade de aumentar o limite de 100 MB, mas se eles não o fizerem, mudarei para o GitLab para este projeto em particular.

questionAnswers(3)

yourAnswerToTheQuestion