Saya ingin merilis proyek perangkat lunak sidik jari audio di bawah lisensi gratis, tetapi repositori berisi file audio yang dilindungi hak cipta. Kasing uji saat ini juga menggunakan file-file ini. Bagaimana cara melepaskan kode kepada publik dengan riwayat versi maksimum tetapi tanpa melanggar hak cipta?
Detail:
- Kode ini diversi di bawah git. Kami akan menciutkan semuanya kembali menjadi satu cabang sebelum dirilis.
- Ada 400 MB data audio. Beberapa file adalah musik berlisensi gratis dari mis. Jamendo, yang lain adalah MP3 dari koleksi pribadi kami.
- Apa pun pendekatan yang kami ambil, kami akan selalu menyimpan salinan repo asli yang tidak berubah, agar tidak menghancurkan sejarah proyek.
Pertanyaan utama: Bagaimana cara menangani rilis publik?
- Hapus semua riwayat file yang dimaksud dari repositori git dan lepaskan repo yang diubah. (v64 menunjukkan cara untuk melakukan ini.)
- Atau, ambil snapshot dari kondisi saat ini dari kode dan bahkan tidak repot-repot memiliki sejarah publik dari kode pra-rilis.
Pertanyaan sampingan: Bagaimana kita bisa menghindari dilema ini sejak awal, mengingat kadang-kadang diperlukan kode atau media pribadi untuk tahap awal proyek?
sumber
filter-branch
perintah --- pastikan untuk menjalankannya pada klon dari repositori karena merusak dan tidak dapat dibatalkan.Jika Anda akan melacak file media besar (audio 400MB), letakkan di repositori terpisah.
Itu membunuh dua burung dengan satu batu:
Jika Anda suka, Anda dapat membuatnya lebih nyaman untuk bekerja dengan membuat repositori media sebagai submodul dari repo publik (yang Anda rencanakan akan dirilis).
Dengan begitu Anda hanya menyimpan pointer ke sana, bukan konten (sensitif) itu sendiri (untuk tahap awal pengembangan). Kemudian ketika Anda akan merilis repo secara publik, cukup hapus referensi submodule, yang jauh lebih merepotkan daripada menulis ulang sejarah Anda untuk menyaring barang senilai 400MB.
sumber