Come aprire un progetto il cui repository git ha media protetti da copyright nella cronologia?

15

Voglio rilasciare un progetto software di impronte digitali audio con una licenza libera, ma il repository contiene file audio protetti da copyright. Anche i casi di test utilizzano attualmente questi file. Come posso rilasciare il codice al pubblico con la cronologia delle versioni massima senza violare il copyright?

dettagli:

  • Il codice è versionato sotto git. Ritireremo tutto in un unico ramo prima del rilascio.
  • Ci sono 400 MB di dati audio. Alcuni file sono musica con licenza gratuita, ad es. Jamendo, altri sono MP3 delle nostre collezioni personali.
  • Indipendentemente dall'approccio adottato, conserveremo sempre una copia immutabile del repository originale, in modo da non distruggere la cronologia del progetto.

Domanda principale: Come gestire la versione pubblica?

  1. Elimina tutta la cronologia dei file in questione dal repository git e rilascia il repository modificato. (v64 ha evidenziato un modo per farlo.)
  2. In alternativa, scatta un'istantanea dello stato corrente del codice e non preoccuparti nemmeno di avere una cronologia pubblica del codice di pre-rilascio.

Domanda laterale: come abbiamo potuto evitare questo dilemma in primo luogo, dato che a volte un codice o un supporto privato è necessario per le prime fasi di un progetto?

    
posta phyzome 04.02.2011 - 18:52
fonte

2 risposte

13

GitHub ha una pagina che spiega come cancellare un file da tutta la cronologia: Rimuovi i dati sensibili .

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.

     

Elimina il file dal tuo repository

     

Ora che la password è cambiata, vuoi rimuovere il file dalla cronologia e aggiungerlo a .gitignore per assicurarti che non venga reimpegnato per errore. Per i nostri esempi, rimuoveremo Rakefile dal gioiello GitHub repository ...

    
risposta data 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 intendi monitorare file multimediali di grandi dimensioni (400 MB di audio), inseriscilo in un repository separato.

Che uccide due piccioni con una fava:

  1. Il repository principale è più piccolo di 400 MB. (Le persone non devono scaricare 400 MB di contenuti ogni volta che clonano).
  2. I media possono essere privati e tenuti separati da tutte le altre cose. Di conseguenza, non è necessario eseguire ulteriori operazioni per rilasciare il repository pubblico.

Se lo desideri, puoi renderlo più comodo con cui lavorare rendendo il repository multimediale un sottomodulo di il repository pubblico (che prevedi di rilasciare).

In questo modo si tiene solo un puntatore ad esso, non il contenuto (sensibile) stesso (per le prime fasi di sviluppo). Quindi, quando pubblichi il repository pubblicamente, rimuovi il riferimento al sottomodulo, che è molto meno fastidioso della riscrittura della cronologia per filtrare 400 MB di materiale.

    
risposta data 05.02.2011 - 02:51
fonte

Leggi altre domande sui tag