Co się stanie, jeśli repozytorium zależności zostanie usunięte w GitHub?

9
  • Posiadam repozytorium GitHub, A.
  • Repozytorium B to kolejny projekt typu open source, którego właścicielem jest ktoś inny.
  • Repozytorium A zależy od repozytorium B (repozytorium B jest submodułem A).

Jeśli właściciel repozytorium B zdecyduje się usunąć to repozytorium, użytkownicy nie będą już w stanie pomyślnie sklonować / wyewidencjonować / zbudować mojego repozytorium.

Czy powinienem zapobiegawczo rozwidlić B, aby użyć go jako kopii zapasowej na wypadek, gdyby właściciel zdecydował się go usunąć? Czy taka sytuacja jest uważana za niebezpieczną, czy też jak zwykle się nią zajmuje w przypadku projektów o otwartym kodzie źródłowym?


źródło
3
Popraw mnie, jeśli czegoś brakuje, ale jeśli A zależy od B, to za każdym razem, gdy ktoś chce zbudować A, musi sklonować zarówno A, jak i B, więc nawet jeśli B zostanie usunięty, każdy, kto używa A, prawdopodobnie ma kopię B (w tym historia) leży w ich systemie, ponieważ git jest DVCS, więc istnieje ryzyko, że możesz stworzyć widelec z mocą wsteczną. Dobrze? Czy to jest jakaś inna „zależność”?
To normalna zależność od subrepo. Ale w zasadzie jestem opiekunem A. Jest stabilny i nie trwa aktywny rozwój (tylko sporadyczne poprawki), więc aby utrzymać mój mały dysk SSD w czystości, zachowuję kod tylko na GitHub. Wydaje mi się, że jest to niebezpieczna sytuacja, ponieważ A będzie miał kłopoty, jeśli właściciel B kiedykolwiek zdecyduje się usunąć B, a ja nie mam zapobiegawczego rozwidlenia.
3
Widły są bezpłatne. Jeśli pomaga ci spać w nocy, zrób to.

Odpowiedzi:

3

Jeśli właściciel repozytorium B zdecyduje się usunąć to repozytorium, użytkownicy nie będą już w stanie pomyślnie sklonować / wyewidencjonować / zbudować mojego repozytorium.

Jeśli zniknie zależny kod „repo B”:

  • Wszyscy użytkownicy będą mogli pomyślnie sklonować twoje repozytorium.
  • Obecni użytkownicy prawdopodobnie będą mieli lokalnie kopię repozytorium B i będą kontynuować tworzenie. Sklonowane repozytoria zwykle nie są usuwane, jeśli źródło jest usuwane, chyba że użytkownik zrobił wszystko, aby specjalnie skonfigurować ten scenariusz. Ponieważ Git jest DVCS, ma na celu ochronę przed tego typu rzeczami.
  • Nowi użytkownicy nie będą mogli zbudować twojego repozytorium, dopóki nie będą mogli uzyskać kopii repozytorium B skądś. Byłbyś w tej łodzi, ponieważ nie przechowujesz kopii zapasowej.

Czy powinienem zapobiegawczo rozwidlić B, aby użyć go jako kopii zapasowej na wypadek, gdyby właściciel zdecydował się go usunąć?

Tak.

Czy taka sytuacja jest uważana za niebezpieczną, czy jak zwykle się ją traktuje w przypadku projektów o otwartym kodzie źródłowym?

Tak, jest to niebezpieczna sytuacja w zależności od popularności / dystrybucji / kopii lustrzanych zależnego repozytorium i tego, jak ważne jest dla Ciebie repozytorium. Jeśli jest to ważne dla innych, mają (miejmy nadzieję) już kopię zapasową zarówno twojego repozytorium, jak i rep rep.

Pamiętaj, że możesz rozwidlić go na GitHub na swoje konto i nie klonować go na dysk SSD, aby nie zajmować miejsca. Pamiętaj również, że ta opcja tworzenia kopii zapasowych zależy od tego, czy na serwerach GitHub nic się nie dzieje lub czy twoje konto nie jest zagrożone; tylko Ty możesz określić odpowiedni stopień nadmiarowości.

Weź pod uwagę ilość kodu, na którym się opierasz, jego popularność, trudność jego odtworzenia oraz koszty niezawodnego przechowywania. Po rozważeniu tej oceny ryzyka należy odpowiednio ją sporządzić.


Ponieważ koszt wydaje się być czynnikiem w twojej sytuacji, ponieważ nie chcesz wydawać więcej na większy dysk SSD, oto lista tanich opcji tworzenia kopii zapasowych:

  1. Oczywiście rozwidlamy go na GitHub, ponieważ jest on całkowicie darmowy. GitHub użyje deduplikacji, więc koszt jest dla nich wyjątkowo minimalny.
  2. Lokalnie (bezpłatne), stare wirujące dyski twarde lub dyski flash USB. Być może już płacisz za bezpłatną kopię zapasową w chmurze za pośrednictwem swojego dostawcy usług internetowych lub operatora komórkowego.
  3. Zdalnie (bezpłatnie), wiele bezpłatnych opcji tworzenia kopii zapasowych w chmurze lub zapytaj znajomego.
  4. Zdalnie ($), wykup abonament na 1 GB Usenetu i prześlij go do Usenetu (~ 25 GB za 10 USD)
Adam
źródło