Apa yang terjadi jika repositori dependensi dihapus di GitHub?


9
  • Saya memiliki repositori GitHub, A.
  • Repositori B adalah proyek sumber terbuka lainnya, yang dimiliki oleh orang lain.
  • Repositori A tergantung pada repositori B (repositori B adalah submodule dari A).

Jika pemilik repositori B memutuskan untuk menghapus repositori itu, pengguna tidak akan dapat berhasil mengkloning / checkout / membuat repositori saya lagi.

Haruskah saya mengambil garpu B terlebih dahulu untuk digunakan sebagai cadangan jika pemilik memutuskan untuk menghapusnya? Apakah ini dianggap sebagai situasi berbahaya, atau bagaimana biasanya ditangani untuk proyek-proyek bersumber terbuka?


3
Koreksi saya jika saya kehilangan sesuatu, tetapi jika A bergantung pada B, maka setiap kali seseorang ingin membangun A, mereka harus mengkloning baik A dan B, jadi bahkan jika B dihapus, semua orang yang menggunakan A mungkin memiliki salinan B (termasuk sejarah) tergeletak di sistem mereka, karena git adalah DVCS, jadi kemungkinan besar Anda bisa membuat garpu secara retroaktif. Baik? Atau apakah ini semacam "ketergantungan"?

Ini adalah ketergantungan subrepo yang normal. Tetapi pada dasarnya, saya adalah pemelihara dari A. Ini stabil dan tidak ada pengembangan aktif terjadi (hanya perbaikan sesekali), jadi untuk menjaga SSD kecil saya bersih, saya hanya menjaga kode pada GitHub. Jadi saya merasa ini adalah situasi berbahaya, karena A akan berada dalam kesulitan jika pemilik B memutuskan untuk menghapus B dan saya tidak memiliki garpu pendahuluan.

3
Garpu gratis. Jika itu membantu Anda tidur di malam hari, lakukanlah.

Jawaban:


3

Jika pemilik repositori B memutuskan untuk menghapus repositori itu, pengguna tidak akan dapat berhasil mengkloning / checkout / membuat repositori saya lagi.

Jika kode dependen "repo B" menghilang:

  • Semua pengguna akan berhasil mengkloning repo Anda.
  • Pengguna yang sudah ada mungkin akan memiliki salinan B repo secara lokal dan terus membangun dengan baik. Repo yang dikloning biasanya tidak dihapus jika sumbernya dihapus kecuali seorang pengguna keluar dari jalan mereka untuk secara khusus mengatur skenario itu. Karena Git adalah DVCS, ia dirancang untuk melindungi terhadap hal semacam ini.
  • Pengguna baru tidak akan dapat membangun repo Anda sampai mereka bisa mendapatkan salinan repo B dari suatu tempat. Anda akan berada di kapal ini karena Anda tidak menyimpan cadangan.

Haruskah saya mengambil garpu B terlebih dahulu untuk digunakan sebagai cadangan jika pemilik memutuskan untuk menghapusnya?

Iya.

Apakah ini dianggap sebagai situasi berbahaya atau bagaimana biasanya ditangani untuk proyek-proyek bersumber terbuka?

Ya, ini adalah situasi berbahaya tergantung pada popularitas / distribusi / mirror dari repo dependen dan seberapa penting repo Anda bagi Anda. Jika ini penting bagi orang lain, mereka (semoga) sudah memiliki cadangan repo dan depo.

Perhatikan bahwa Anda dapat memotongnya di GitHub ke akun Anda dan tidak mengkloningnya ke SSD Anda untuk tidak mengambil ruang. Juga, ingatlah bahwa opsi cadangan tidak bergantung pada apa pun yang terjadi pada server GitHub atau akun Anda tidak dikompromikan; hanya Anda yang bisa menentukan tingkat redundansi yang memadai.

Pertimbangkan jumlah kode yang Anda andalkan, popularitasnya, kesulitan untuk mereproduksinya, dan biaya untuk menyimpannya dengan andal. Setelah mempertimbangkan penilaian risiko itu, buatlah cadangan sesuai.


Karena biaya tampaknya menjadi faktor dalam situasi Anda mengingat Anda tidak ingin menghabiskan lebih banyak untuk SSD yang lebih besar, berikut adalah daftar opsi cadangan murah:

  1. Jelas, garpu di GitHub karena sepenuhnya gratis. GitHub akan menggunakan deduplikasi sehingga biayanya sangat minimal untuk mereka.
  2. Lokal (gratis), hard drive berputar lama atau usb flash drive. Anda juga mungkin sudah membayar cadangan cloud gratis melalui ISP atau penyedia seluler Anda.
  3. Secara jarak jauh (gratis), banyak opsi pencadangan cloud gratis atau minta teman.
  4. Dari jarak jauh ($), beli paket Usenet per GB dan unggah ke Usenet (~ 25GB seharga $ 10 USD)
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.