Como abrir o código-fonte de um projeto cujo repositório git possui mídia protegida por direitos autorais no histórico?

15

Eu quero 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 com direitos autorais. Os casos de teste também usam atualmente esses arquivos. Como faço para liberar o código para o público com o histórico máximo de versões, mas sem violar direitos autorais?

Detalhes:

  • O código tem versão 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, Jamendo, outros são MP3s de nossas coleções pessoais.
  • Independentemente da abordagem que adotamos, 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?

  1. Remova todo o histórico dos arquivos em questão do repositório git e libere o repositório alterado. (v64 apontou uma maneira de fazer isso.)
  2. Como alternativa, tire um instantâneo do estado atual do código e não se incomode em ter um histórico público do código de pré-lançamento.

Pergunta secundária: Como poderíamos ter evitado esse dilema em primeiro lugar, dado que às vezes é necessário código privado ou mídia para os estágios iniciais de um projeto?

    
por phyzome 04.02.2011 / 18:52
fonte

2 respostas

13

O GitHub tem uma página explicando como eliminar um arquivo de todo o histórico: Remover dados confidenciais .

From time to time users accidentally commit data like passwords or keys into a git repository. While you can use git rm to remove the file, it will still be in the repository's history. Fortunately, git makes it fairly simple to remove the file from the entire repository history.

Danger: Once the commit has been pushed you should consider the data to be compromised. If you committed a password, change it! If you committed a key, generate a new one.

     

Purgar o arquivo do seu repositório

     

Agora que a senha foi alterada, você deseja remover o arquivo do histórico e adicioná-lo ao .gitignore para garantir que ele não seja reconfigurado acidentalmente. Para nossos exemplos, vamos remover Rakefile do repositório GitHub gem ...

    
por 04.02.2011 / 18:58
fonte
8

Side question: How could we have avoided this dilemma in the first place, given that sometimes private code or media is needed for the early stages of a project?

Se você for acompanhar grandes arquivos de mídia (400MB de áudio), coloque-o em um repositório separado.

Isso mata dois coelhos com uma cajadada só:

  1. O repo principal é 400MB menor. (As pessoas não precisam baixar 400 MB de conteúdo a cada vez que clonam.)
  2. A mídia pode ser privada e mantida separada de todas as outras coisas. Como tal, nenhum trabalho extra precisa ser feito para liberar o repositório público.

Se quiser, pode tornar mais conveniente trabalhar com o repositório de mídia, tornando o submódulo o 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 estágios iniciais de desenvolvimento). Então, quando você for lançar o repo publicamente, basta remover a referência do submódulo, o que é muito menos problemático do que reescrever seu histórico para filtrar 400 MB de material.

    
por 05.02.2011 / 02:51
fonte