News Hacker|极客洞察

385 7 小时前 gentoo.org
🚪Gentoo 迁移到 Codeberg:社区加速脱离 GitHub 的信号与争论
真的要把开源代码都交给微软训练模型吗?

🎯 讨论背景

Gentoo 在公告中提到将把对外贡献的镜像与 PR 流程迁移到 Codeberg(一个以捐赠为主的社区代码托管服务),但其主仓库据称仍由 Gentoo 自行托管。社区讨论把这次动作与对 GitHub(及其由 Microsoft 托管的服务)近年在 AI(如 Copilot)集成、Actions 定价争议与稳定性问题的不信任联系起来。讨论同时集中在替代技术与工作流上,例如 Forgejo(自托管 forge)、AGit(支持不同 refs 的 Git 工作流)、Gerrit(按提交审查工具)以及传统的 git‑and‑email 补丁流或像 Tangled、git‑bug 这类尝试可迁移数据模型的新项目。评论的关键关切是功能兼容(CI、pkgcheck、代码搜索、fork/PR 网络)与长期可持续性(资金、抗 DDOS 与多地域冗余)。

📌 讨论焦点

迁移动因(AI、Copilot、Actions 与稳定性)

许多评论把 Gentoo 向 Codeberg 的动作视为更大规模从 GitHub 迁出的信号,核心动因包括对 GitHub 强推或整合的 AI 功能(如 Copilot)、曾引发争议的 GitHub Actions 定价波动,以及近年的多次停机与性能退化。评论里还指出 Gentoo 实际上一直自托管主仓库,Codeberg/Forgejo 在目前更多是方便贡献者的镜像,迁移决定部分源于对 GitHub 商业化和 AI 优化策略的不信任。有人担心把大量代码集中在一家公司会被其产品策略或训练模型绑定,从而推动更多项目转向自托管或欧洲本地替代品以分散风险。

[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7]

代码审查与 UX 问题(大 PR 性能、评论粒度)

大量评论抱怨 GitHub 的代码审查体验与界面退化:大型 PR 文件加载变慢、折叠显示错误导致误判,以及网页端不便于对单个 commit 逐条评论(暗含对 squash‑first 流程的推动)。多位用户表示 Gerrit 在按提交逐条审查、追踪 Change‑Id 和处理多次迭代补丁方面更合适,另有群体偏好传统的 git‑and‑email 补丁流程以避免网页 UI 的限制。评论也提出实用应对办法:使用 .patch/patch 流、VSCode 的 GitHub 扩展或在本地应用补丁来进行更可靠的审查。

[来源1] [来源2] [来源3] [来源4] [来源5]

联邦化与替代工作流探索(AGit、Forgejo、邮件补丁)

社区对“联邦化”抱有强烈兴趣,期望实现跨 forge 的 forking 与 pull request,使贡献不再依赖单一平台。多条评论提到 Forgejo 的 federation 路线图、将 GitHub 镜像到自托管实例的实践(并分享了 GITHUB2FORGEJO 等工具),以及 AGit 工作流作为允许推送任意 refs、减少强制 fork 的技术路径;但实现细节上仍有 API/凭证等 bug 和操作摩擦需要解决。评论同时引用了更传统的 git send‑email/git‑and‑email 流程、git‑bug、以及 Tangled 等新平台作为可迁移数据模型或不同协作模式的探索,并警告联邦接口若设计不当会变成垃圾流入的通道。

[来源1] [来源2] [来源3] [来源4] [来源5] [来源6] [来源7]

Codeberg 与自托管实践(性能、CI 与镜像策略)

对 Codeberg 的体验在评论中两极化:许多用户称其网页界面更轻量、响应更快,是对 GitHub 的“清爽替代”,并把项目镜像到 Codeberg 来降低贡献门槛;也有用户报告 git 命令行操作在 Codeberg 上更慢、个别页面加载缓慢或出现停服。针对 Gentoo 的案例,Codeberg 被当作贡献入口(mirror)而非替换主仓库,功能兼容性(尤其 CI 功能是否能完整运行 Gentoo 的 pkgcheck)被视为能否彻底转移的关键;有迹象显示最初缺失的 pkgcheck 已被修复,但这一类差异仍影响贡献者的迁移决定。

[来源1] [来源2] [来源3] [来源4] [来源5] [来源6]

资金与可持续性担忧(捐赠模式、抗 DDOS 与规模化成本)

多条评论提醒 Codeberg 和类似非营利 forge 依赖捐赠,当前捐助者占比很低,这限制了抗 DDOS、跨区冗余、备份与监控等基础设施能力,令人在考虑把关键/大型项目迁移时犹豫不决。有人建议改进捐赠体验(比如简化支付方式或在 UI 上展示个人对站点成本的影响以激励付费),并指出要成为真正的 GitHub 竞争者需要持续收入和重大基础设施投入。对一些组织而言,自托管 Forgejo/Gitea 实例是折衷选择,但这要求具备运维能力且未必能满足公众级别的稳定性与规模需求。

[来源1] [来源2] [来源3] [来源4] [来源5]

地缘政治与欧洲推动(减少对美国服务依赖)

一些欧洲评论把迁移浪潮与地缘政治联系起来,认为对美国大厂(尤其 Microsoft)掌控关键在线服务的担忧、以及可能的制裁与数据访问风险,促使欧洲项目和公司寻找本地或自托管替代方案。评论引用了多个欧洲 FOSS 社区长期自托管的历史并认为近期对 GitHub 的不满只是加速器,而非起点。地缘政治与对数据主权、合规与长期可用性的关注,成为推动迁移的实质性理由之一。

[来源1] [来源2] [来源3] [来源4]

📚 术语解释

AGit: AGit:一种面向特定贡献/审查工作流的 Git 子命令/模式,允许推送任意 refs 或使用会话 ID 以支持不同于传统 fork 的贡献流,常在 Forgejo/Codeberg 场景被提及。

Forgejo: Forgejo:一个开源的自托管 Git forge(源自 Gitea 的社区分支),提供仓库、PR、issue 等功能,并有讨论中的 federation 路线图。

Gerrit: Gerrit:基于 Web 的代码审查工具,强调按 commit 逐条审查和 Change‑Id 流程,适合需要提交级别审查和多次迭代的项目。

federation(联邦化 / federated pull requests): 联邦化:指不同代码托管平台之间互相提交/审查分叉与 PR 的能力,目标是让贡献流程跨 forge 可用,减少对单一服务的锁定,但实现上涉及协议、垃圾信息防护与权限问题。

pkgcheck: pkgcheck:Gentoo 的包检查/CI 工具,用于验证 ebuild、依赖与元数据质量,评论中提到 Codeberg 的 CI 需要能完整运行 pkgcheck 才能安心迁移。

git send-email / git‑and‑email: git send‑email / git‑and‑email:使用邮件作为补丁交换并用 git am 应用的传统去中心化贡献工作流,历史上许多大型项目(如 Linux kernel)长期采用该方式进行协作。

GITHUB2FORGEJO: GITHUB2FORGEJO:一个用于将 GitHub 仓库镜像到 Forgejo/自托管 forge 的工具示例,评论中有人分享用于迁移/镜像的实践与注意事项。

Tangled: Tangled(tangled.org):被评论提及的一个尝试实现不同协作或联邦模型的平台/项目,代表了社区对另辟协作模式的探索。