Cosa succede se il repository di dipendenze viene eliminato su GitHub?


9
  • Possiedo un repository GitHub, A.
  • Repository B è un altro progetto open source, di proprietà di qualcun altro.
  • Il repository A dipende dal repository B (il repository B è un sottomodulo di A).

Se il proprietario del repository B decide di eliminare tale repository, gli utenti non saranno più in grado di clonare / effettuare il checkout / compilare correttamente il mio repository.

Devo preventivamente fork B da utilizzare come backup nel caso in cui il proprietario decida di eliminarlo? È considerata una situazione pericolosa o come viene generalmente gestita per progetti open source?


3
Correggimi se mi manca qualcosa, ma se A dipende da B, quindi ogni volta che qualcuno vuole costruire A, devono clonare sia A che B, quindi anche se B viene eliminato, tutti quelli che usano A probabilmente hanno una copia di B (inclusa la storia) in giro sul loro sistema, perché git è un DVCS, quindi è probabile che potresti creare un fork retroattivamente. Giusto? O è un altro tipo di "dipendenza"?

È una normale dipendenza da sottorepo. Ma fondamentalmente, sono il manutentore di A. È stabile e non c'è sviluppo attivo in corso (solo correzioni occasionali), quindi per mantenere pulito il mio piccolo SSD, mantengo solo il codice su GitHub. Quindi penso che questa sia una situazione pericolosa, dal momento che A sarà nei guai se il proprietario di B decide di cancellare B e non ho un fork preventivo.

3
Le forchette sono gratuite. Se ti aiuta a dormire la notte, fallo.

Risposte:


3

Se il proprietario del repository B decide di eliminare tale repository, gli utenti non saranno più in grado di clonare / effettuare il checkout / compilare correttamente il mio repository.

Se il codice dipendente "repo B" scompare:

  • Tutti gli utenti saranno in grado di clonare correttamente il tuo repository.
  • Gli utenti esistenti avranno probabilmente una copia del repository B a livello locale e continueranno a costruire bene. I repository clonati in genere non vengono eliminati se l'origine viene eliminata a meno che un utente non abbia fatto di tutto per configurarlo in modo specifico per quello scenario. Poiché Git è un DVCS, è progettato per salvaguardare da questo genere di cose.
  • I nuovi utenti non saranno in grado di creare il tuo repository finché non potranno ottenere una copia del repository B da qualche parte. Saresti su questa barca poiché non memorizzi un backup.

Devo preventivamente fork B da utilizzare come backup nel caso in cui il proprietario decida di eliminarlo?

Sì.

È considerata una situazione pericolosa o come viene generalmente gestita per progetti open source?

Sì, questa è una situazione pericolosa in cui dipendere dalla popolarità / distribuzione / mirror del repository dipendente e da quanto sia importante il repository per te. Se è importante per gli altri, (si spera) hanno già un backup sia del repository che del repository dep.

Nota che puoi forkare GitHub sul tuo account e non clonarlo sul tuo SSD per non occupare spazio. Inoltre, tieni presente che tale opzione di backup dipende da nulla che accada ai server di GitHub o che il tuo account non venga compromesso; solo tu puoi determinare il grado di ridondanza che è adeguato.

Considera la quantità di codice su cui fai affidamento, la sua popolarità, la difficoltà di riprodurlo e il costo per archiviarlo in modo affidabile. Dopo aver considerato tale valutazione del rischio, eseguirne il backup di conseguenza.


Poiché il costo sembra essere un fattore nella tua situazione dato che non vuoi spendere di più per un SSD più grande, ecco un elenco di opzioni di backup economiche:

  1. Ovviamente, fork su GitHub in quanto è completamente gratuito. GitHub utilizzerà la deduplicazione quindi il costo è estremamente minimo per loro.
  2. A livello locale (gratuito), vecchi dischi rigidi o unità flash USB. Inoltre, potresti già pagare per il backup cloud gratuito tramite il tuo provider di servizi Internet o cellulare.
  3. Da remoto (gratuito), molte opzioni di backup cloud gratuite o chiedi a un amico.
  4. In remoto ($), acquista un piano Usenet per GB e caricalo su Usenet (~ 25GB per $ 10 USD)
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.