如果在GitHub上删除了依赖库,会发生什么?


9
  • 我拥有一个GitHub存储库A.
  • 存储库B是另一个开放源代码项目,该项目由其他人拥有。
  • 存储库A取决于存储库B(存储库B是A的子模块)。

如果存储库B的所有者决定删除该存储库,则用户将无法再成功克隆/签出/构建我的存储库。

如果所有者决定删除它,我是否应该抢先叉B用作备份?这被认为是一种危险的情况吗?或者对于开源项目通常如何处理?


3
如果我缺少某些内容,请纠正我,但是如果A依赖于B,那么任何时候有人要构建A时,他们都必须克隆A和B,因此即使B被删除,使用A的每个人也可能都有一个副本。 B(包括历史记录)位于他们的系统上,因为git是DVCS,所以很可能可以追溯地创建一个fork。对?还是这是另一种“依赖性”?

这是正常的子仓库依赖关系。但基本上,我是A的维护者。它很稳定,并且没有正在进行的活动开发(仅偶尔修复),因此为了保持小巧的SSD清洁,我仅将代码保存在GitHub上。所以我觉得这是一个危险的情况,因为如果B的所有者决定删除B并且我没有先发制人的叉子,那么A就会遇到麻烦。

3
叉子是免费的。如果它可以帮助您晚上入睡,那就去做。

Answers:


3

如果存储库B的所有者决定删除该存储库,则用户将无法再成功克隆/签出/构建我的存储库。

如果从属代码“ repo B”消失了:

  • 所有用户都将能够成功克隆您的存储库。
  • 现有的用户可能会在本地拥有仓库B的副本,然后继续构建就可以了。如果删除了源,则通常不会删除克隆的回购协议,除非用户不遗余力地专门为该方案设置。由于Git是DVCS,因此旨在防止此类情况发生。
  • 新用户将无法构建您的存储库,除非他们可以从某处获取存储库B的副本。由于您不存储备份,因此您将在这条船上。

如果所有者决定删除它,我是否应该抢先叉B用作备份?

是。

这是否被认为是一种危险的情况,或者对于开源项目通常如何处理?

是的,这是一个危险的情况,取决于依赖回购的受欢迎程度/分布/镜像以及您的回购对您的重要性。如果对其他人来说很重要,他们(希望)已经拥有您的仓库和仓库仓库的备份。

请注意,您可以将它在GitHub上分叉到您的帐户,而不是将其克隆到您的SSD以不占用空间。另外,请记住,该备份选项取决于GitHub的服务器没有发生任何事情或您的帐户没有受到损害;只有您才能确定足够的冗余度。

考虑您所依赖的代码数量,其受欢迎程度,重现该代码的难度以及可靠存储它的成本。在考虑了该风险评估之后,请对其进行相应备份。


由于您不想为更大的SSD花费更多,因此成本似乎是影响您情况的因素,因此,这里列出了一些廉价的备份选项:

  1. 显然,因为它是完全免费的,所以将其分叉到GitHub上。GitHub将使用重复数据删除技术,因此其成本极低。
  2. 本地(免费)旧旋转硬盘驱动器或USB闪存驱动器。另外,您可能已经通过ISP或单元提供商支付了免费的云备份费用。
  3. 远程(免费),许多免费的云备份选项或询问朋友。
  4. 远程($),购买每GB Usenet计划并将其上传到Usenet(〜25GB,价格为$ 10 USD)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.