Chcę wydać projekt oprogramowania do pobierania odcisków palców na podstawie bezpłatnej licencji, ale repozytorium zawiera pliki audio chronione prawem autorskim. Przypadki testowe również obecnie używają tych plików. Jak udostępnić kod publicznie z maksymalną historią wersji, ale bez naruszania praw autorskich?
Detale:
- Kod jest wersjonowany pod git. Przed wydaniem zwiniemy wszystko z powrotem w jedną gałąź.
- Istnieje 400 MB danych audio. Niektóre pliki są darmowymi utworami muzycznymi np. Jamendo, inne są plikami MP3 z naszych osobistych kolekcji.
- Bez względu na to, jakie zastosujemy podejście, zawsze będziemy przechowywać niezmienną kopię oryginalnego repozytorium, aby nie zniszczyć historii projektu.
Główne pytanie: jak obsługiwać wydanie publiczne?
- Zniszcz całą historię danych plików z repozytorium git i zwolnij zmienione repozytorium. (v64 wskazał sposób, aby to zrobić.)
- Alternatywnie, zrób migawkę bieżącego stanu kodu i nawet nie zawracaj sobie głowy publiczną historią kodu przedpremierowego.
Pytanie poboczne: Jak mogliśmy uniknąć tego dylematu, biorąc pod uwagę, że czasami prywatny kod lub media są potrzebne na wczesnych etapach projektu?
źródło
filter-branch
poleceniu --- po prostu uruchom go na klonie repozytorium, ponieważ jest destrukcyjny i nie można go cofnąć.Jeśli zamierzasz śledzić duże pliki multimedialne (400 MB dźwięku), umieść je w osobnym repozytorium.
To zabija dwa ptaki jednym kamieniem:
Jeśli chcesz, możesz sprawić, by praca z nim była wygodniejsza, czyniąc repozytorium multimediów podmodułem publicznego repozytorium (które planujesz wydać).
W ten sposób po prostu trzymasz wskaźnik do niego, a nie (wrażliwą) treść (na wczesnych etapach rozwoju). Następnie, kiedy zamierzasz publicznie wydać repozytorium, po prostu usuń odniesienie do podmodułu, co jest o wiele mniej kłopotliwe niż przepisywanie historii w celu odfiltrowania rzeczy o wartości 400 MB.
źródło