O que acontece se o repositório de dependência for excluído no GitHub?

9
  • Eu possuo um repositório do GitHub, A.
  • O repositório B é outro projeto de código aberto, pertencente a outra pessoa.
  • O repositório A depende do repositório B (o repositório B é um submódulo de A).

Se o proprietário do repositório B decidir excluir esse repositório, os usuários não poderão mais clonar / fazer checkout / compilar com sucesso meu repositório.

Devo forçar preventivamente B a usar como backup, caso o proprietário decida excluí-lo? É considerada uma situação perigosa ou como é geralmente tratada em projetos de código aberto?


fonte
3
Corrija-me se estiver faltando alguma coisa, mas se A depender de B, sempre que alguém quiser criar A, precisará clonar A e B, portanto, mesmo que B tenha sido excluído, todo mundo que usar A provavelmente terá uma cópia de B (incluindo histórico) no sistema, porque o git é um DVCS, então é provável que você possa criar um garfo retroativamente. Direita? Ou isso é algum outro tipo de "dependência"?
É uma dependência normal de subrepo. Mas, basicamente, sou o mantenedor do A. É estável e não há desenvolvimento ativo em andamento (apenas correções ocasionais); portanto, para manter meu pequeno SSD limpo, apenas mantenho o código no GitHub. Então, sinto que esta é uma situação perigosa, pois A estará com problemas se o proprietário de B decidir excluir B e eu não tiver um garfo preventivo.
3
Garfos são grátis. Se isso ajuda a dormir à noite, faça-o.

Respostas:

3

Se o proprietário do repositório B decidir excluir esse repositório, os usuários não poderão mais clonar / fazer checkout / compilar com sucesso meu repositório.

Se o código dependente "repo B" desaparecer:

  • Todos os usuários poderão clonar seu repositório com sucesso.
  • Os usuários existentes provavelmente terão uma cópia do repositório B localmente e continuarão construindo perfeitamente. Os repositórios clonados normalmente não são excluídos se a fonte for excluída, a menos que um usuário tenha se esforçado para configurar especificamente para esse cenário. Como o Git é um DVCS, ele foi projetado para proteger contra esse tipo de coisa.
  • Os novos usuários não poderão criar seu repositório até que possam obter uma cópia do repositório B de algum lugar. Você estaria neste barco, pois não armazena um backup.

Devo forçar preventivamente B a usar como backup, caso o proprietário decida excluí-lo?

Sim.

É considerada uma situação perigosa ou como é geralmente tratada em projetos de código aberto?

Sim, é uma situação perigosa, dependendo da popularidade / distribuição / espelhos do repositório dependente e da importância do seu repositório. Se for importante para outras pessoas, elas (esperançosamente) já têm um backup do seu repo e do dep repo.

Observe que você pode bifurcá-lo no GitHub na sua conta e não cloná-lo no seu SSD para não ocupar espaço. Além disso, lembre-se de que essa opção de backup depende de nada acontecer com os servidores do GitHub ou de que sua conta não seja comprometida; somente você pode determinar o grau de redundância que é adequado.

Considere a quantidade de código em que você confia, sua popularidade, a dificuldade de reproduzi-lo e o custo para armazená-lo de forma confiável. Depois de considerar essa avaliação de risco, faça o backup em conformidade.


Como o custo parece ser um fator na sua situação, uma vez que você não deseja gastar mais com um SSD maior, aqui está uma lista de opções de backup baratas:

  1. Obviamente, bifurque-o no GitHub, pois é totalmente gratuito. O GitHub usará a desduplicação, portanto o custo é extremamente mínimo para eles.
  2. Localmente (grátis), discos rígidos antigos giratórios ou unidades flash USB. Além disso, você já pode estar pagando pelo backup gratuito na nuvem através do seu provedor de serviços de Internet ou celular.
  3. Remotamente (gratuitamente), muitas opções gratuitas de backup em nuvem ou pergunte a um amigo.
  4. Remotamente ($), adquira um plano Usenet por GB e faça o upload para a Usenet (~ 25 GB por US $ 10)
Adão
fonte