Desejo lançar um projeto de software de impressão digital de áudio sob uma licença gratuita, mas o repositório contém arquivos de áudio protegidos por direitos autorais. Os casos de teste também atualmente usam esses arquivos. Como libero o código ao público com o histórico máximo de versões, mas sem violar os direitos autorais?
Detalhes:
- O código é versionado sob git. Vamos recolher tudo de volta em um ramo antes do lançamento.
- Existem 400 MB de dados de áudio. Alguns arquivos são músicas licenciadas gratuitamente, por exemplo, do Jamendo, outros são MP3s de nossas coleções pessoais.
- Independentemente da abordagem adotada, sempre manteremos uma cópia imutável do repositório original, para não destruir o histórico do projeto.
Pergunta principal: Como lidar com o lançamento público?
- Expurgar todo o histórico dos arquivos em questão do repositório git e liberar o repositório alterado. (v64 apontou uma maneira de fazer isso.)
- Como alternativa, tire um instantâneo do estado atual do código e nem se preocupe em ter um histórico público do código de pré-lançamento.
Pergunta secundária: como poderíamos evitar esse dilema em primeiro lugar, dado que, às vezes, é necessário código ou mídia privada para os estágios iniciais de um projeto?
fonte
filter-branch
comando --- apenas certifique-se de executá-lo em um clone do repositório, pois é destrutivo e não pode ser desfeito.Se você deseja rastrear grandes arquivos de mídia (400 MB de áudio), coloque-o em um repositório separado.
Isso mata dois coelhos com uma cajadada:
Se desejar, você pode tornar mais conveniente trabalhar, tornando o repositório de mídia um submódulo do repositório público (que você planeja lançar).
Dessa forma, você apenas mantém um ponteiro para ele, não o conteúdo (sensível) em si (para os estágios iniciais do desenvolvimento). Então, quando você for lançar o repositório publicamente, remova a referência do submódulo, o que é muito menos problemático do que reescrever seu histórico para filtrar 400 MB de material.
fonte