¿Cómo abrir el código de un proyecto cuyo repositorio git tiene medios con derechos de autor en el historial?

15

Quiero lanzar un proyecto de software de huellas dactilares de audio con una licencia gratuita, pero el repositorio contiene archivos de audio con derechos de autor. Los casos de prueba también utilizan actualmente estos archivos. ¿Cómo publico el código al público con el máximo historial de versiones pero sin violar los derechos de autor?

Detalles:

  • El código está versionado bajo git. Lo colapsaremos todo de nuevo en una rama antes del lanzamiento.
  • Hay 400 MB de datos de audio. Algunos archivos son música con licencia gratuita de, por ejemplo, Jamendo, otros son archivos MP3 de nuestras colecciones personales.
  • No importa qué enfoque adoptemos, siempre mantendremos una copia inmutable del repositorio original, para no destruir el historial del proyecto.

Pregunta principal: ¿Cómo manejar el lanzamiento público?

  1. Borre todo el historial de los archivos en cuestión del repositorio git y libere el repositorio modificado. (v64 señaló una manera de hacer esto.)
  2. Como alternativa, tome una instantánea del estado actual del código y no se moleste en tener un historial público del código de versión preliminar.

Pregunta secundaria: ¿Cómo podríamos haber evitado este dilema en primer lugar, dado que a veces se necesita un código o medio privado para las primeras etapas de un proyecto?

    
pregunta phyzome 04.02.2011 - 18:52

2 respuestas

13

GitHub tiene una página que explica cómo eliminar un archivo de todo el historial: Eliminar datos confidenciales .

  

De vez en cuando, los usuarios ingresan accidentalmente datos como contraseñas o claves en un repositorio de git. Si bien puede usar git rm para eliminar el archivo, aún estará en el historial del repositorio. Afortunadamente, git hace que sea bastante sencillo eliminar el archivo de todo el historial del repositorio.

     
    

Peligro: una vez que se haya enviado la confirmación, debe considerar que los datos están comprometidos. ¡Si ingresó una contraseña, cámbiela! Si ingresó una clave, genere una nueva.

  
     

Purgar el archivo de su repositorio

     

Ahora que se cambió la contraseña, desea eliminar el archivo del historial y agregarlo a .gitignore para asegurarse de que no se vuelva a confirmar accidentalmente. Para nuestros ejemplos, vamos a eliminar Rakefile del repositorio gitHub gema ...

    
respondido por el v64 04.02.2011 - 18:58
8
  

Pregunta lateral: ¿Cómo podríamos tener   Evitó este dilema en la primera.   lugar, dado que a veces privada   Código o medios de comunicación es necesario para la temprana   etapas de un proyecto?

Si va a realizar un seguimiento de archivos multimedia grandes (400 MB de audio), colóquelo en un repositorio separado.

Eso mata dos pájaros de un tiro:

  1. El repositorio principal es 400MB más pequeño. (Las personas no tienen que descargar 400 MB de contenido cada vez que clonan).
  2. Los medios pueden ser privados y se mantienen separados de todas las demás cosas. Como tal, no es necesario realizar ningún trabajo adicional para liberar el repositorio público.

Si lo desea, puede hacer que sea más conveniente trabajar haciendo que el repositorio de medios sea un submodule de el repositorio público (que planeas liberar).

De esa forma, solo mantén un puntero hacia él, no el contenido (sensible) en sí (para las primeras etapas de desarrollo). Luego, cuando vayas a publicar el repositorio públicamente, simplemente elimina la referencia del submódulo, que es mucho menos problemático que reescribir tu historial para filtrar 400 MB de material.

    
respondido por el Alex Budovski 05.02.2011 - 02:51

Lea otras preguntas en las etiquetas