Wie kann man ein Projekt, dessen Git-Repository Medien in der Geschichte urheberrechtlich geschützt hat, als Open-Source-Projekt veröffentlichen?

15

Ich möchte ein Audio-Fingerabdruck-Softwareprojekt unter einer kostenlosen Lizenz veröffentlichen, aber das Repository enthält urheberrechtlich geschützte Audiodateien. Die Testfälle verwenden derzeit auch diese Dateien. Wie gebe ich den Code für die Öffentlichkeit mit maximalem Versionsverlauf frei, ohne das Urheberrecht zu verletzen?

Einzelheiten:

  • Der Code ist unter git versioniert. Wir werden alles vor der Veröffentlichung wieder in einem Zweig zusammenfassen.
  • Es gibt 400 MB Audiodaten. Einige Dateien sind frei lizenzierte Musik von zB Jamendo, andere sind MP3s aus unseren persönlichen Sammlungen.
  • Egal wie wir vorgehen, wir werden immer eine unveränderbare Kopie des Original-Repos aufbewahren, um die Projektgeschichte nicht zu zerstören.

Hauptfrage: Wie gehe ich mit der Veröffentlichung um?

  1. Lösche den gesamten Verlauf der fraglichen Dateien aus dem Git-Repository und gib das geänderte Repo frei. (v64 wies auf eine Möglichkeit hin, dies zu tun.)
  2. Alternativ können Sie eine Momentaufnahme des aktuellen Status des Codes machen und sich nicht einmal darum kümmern, einen öffentlichen Verlauf des Vorabversionscodes zu haben.

Nebenfrage: Wie hätten wir dieses Dilemma überhaupt vermeiden können, da manchmal privater Code oder Medien für die frühen Phasen eines Projekts benötigt werden?

Behandle deine Mods gut
quelle

Antworten:

13

GitHub hat eine Seite, auf der erklärt wird, wie eine Datei aus dem gesamten Verlauf entfernt wird: Entfernen Sie vertrauliche Daten .

Von Zeit zu Zeit schreiben Benutzer versehentlich Daten wie Passwörter oder Schlüssel in ein Git-Repository. Sie können git rmdie Datei zwar mit entfernen, sie befindet sich jedoch immer noch im Verlauf des Repositorys. Glücklicherweise macht es git ziemlich einfach, die Datei aus dem gesamten Repository-Verlauf zu entfernen.

Gefahr: Nach dem Push des Commits sollten Sie davon ausgehen, dass die Daten kompromittiert sind. Wenn Sie ein Passwort eingegeben haben, ändern Sie es! Wenn Sie einen Schlüssel festgeschrieben haben, erstellen Sie einen neuen.

Löschen Sie die Datei aus Ihrem Repository

Nachdem das Kennwort geändert wurde, möchten Sie die Datei aus dem Verlauf entfernen und der hinzufügen, .gitignoreum sicherzustellen, dass sie nicht versehentlich erneut festgeschrieben wird. Für unsere Beispiele werden wir Rakefileaus dem GitHub Gem- Repository entfernen ...

v64
quelle
Sieht aus wie das richtige Werkzeug für diesen Job. Ich bin mir immer noch nicht sicher, ob dies in meinem Fall am sinnvollsten ist, anstatt mit einer neuen Momentaufnahme der Codebasis zu beginnen.
Behandle deine Mods gut
@phyzome: Kommt darauf an, wie wichtig du die Geschichte findest. Das Löschen ist mit dem filter-branchBefehl ziemlich einfach - stellen Sie nur sicher, dass Sie ihn auf einem Klon des Repositorys ausführen, da er destruktiv ist und nicht rückgängig gemacht werden kann.
Sharpie
8

Nebenfrage: Wie hätten wir dieses Dilemma überhaupt vermeiden können, da manchmal privater Code oder Medien für die frühen Phasen eines Projekts benötigt werden?

Wenn Sie große Mediendateien (400 MB Audio) nachverfolgen möchten, legen Sie diese in einem separaten Repository ab.

Das schlägt zwei Fliegen mit einer Klappe:

  1. Das Hauptrepo ist 400MB kleiner. (Nutzer müssen nicht jedes Mal, wenn sie klonen, Inhalte im Wert von 400 MB herunterladen.)
  2. Die Medien können privat sein und werden von allen anderen Dingen getrennt gehalten. Daher muss keine zusätzliche Arbeit geleistet werden, um das öffentliche Repository freizugeben.

Wenn Sie möchten, können Sie die Arbeit einfacher gestalten, indem Sie das Medien-Repository zu einem Submodul des öffentlichen Repositorys machen (das Sie veröffentlichen möchten).

Auf diese Weise behalten Sie nur einen Zeiger darauf, nicht den (sensitiven) Inhalt selbst (für frühe Entwicklungsstadien). Wenn Sie das Repo dann öffentlich veröffentlichen möchten, entfernen Sie einfach die Submodulreferenz. Dies ist weitaus weniger mühsam als das Umschreiben Ihres Verlaufs, um Daten im Wert von 400 MB herauszufiltern.

Alex Budovski
quelle