Я хочу выпустить проект программного обеспечения для снятия отпечатков пальцев под свободной лицензией, но репозиторий содержит защищенные авторским правом аудиофайлы. Тестовые случаи также в настоящее время используют эти файлы. Как мне опубликовать код с максимальной историей версий, но не нарушая авторские права?
Детали:
- Код версии под Git. Мы свернем все это обратно в одну ветку перед выпуском.
- Есть 400 МБ аудиоданных. Некоторые файлы являются бесплатной музыкой, например, от Jamendo, другие - MP3 из наших личных коллекций.
- Независимо от того, какой подход мы выберем, мы всегда будем сохранять неизменную копию исходного репо, чтобы не разрушать историю проекта.
Главный вопрос: как справиться с публичным релизом?
- Удалить всю историю файлов из репозитория git и выпустить измененное хранилище. (v64 указал способ сделать это.)
- В качестве альтернативы, сделайте снимок текущего состояния кода и даже не беспокойтесь о наличии общедоступной истории предварительного выпуска кода.
Дополнительный вопрос: Как мы могли бы избежать этой дилеммы, в первую очередь, учитывая, что иногда на ранних стадиях проекта требуется частный код или медиа?
источник
filter-branch
- просто убедитесь, что она запущена на клоне репозитория, поскольку она разрушительна и не может быть отменена.Если вы собираетесь отслеживать большие медиа-файлы (400 МБ аудио), поместите их в отдельный репозиторий.
Это убивает двух зайцев одним выстрелом:
Если хотите, вы можете сделать работу с ней более удобной, сделав хранилище мультимедиа подмодулем публичного репо (который вы планируете выпустить).
Таким образом, вы просто сохраняете указатель на него, а не на (чувствительный) контент (для ранних этапов разработки). Затем, когда вы собираетесь опубликовать репозиторий публично, просто удалите ссылку на субмодуль, что гораздо менее хлопотно, чем переписывание вашей истории, чтобы отфильтровать вещи на 400 МБ.
источник