主要观点:2019 年年中求职末期,作者在谷歌 Go 团队和 Sourcegraph 之间选择,最终因文化因素加入 Sourcegraph,其文化特点是 100%开源构建,所有文档默认公开等。如今sourcegraph/sourcegraph
仓库变为私有,这对曾使其有吸引力的文化是重大打击,作者对此感到遗憾。但作者已在洞察排行榜上占据一席之地,且 Sourcegraph 留下了公共快照sourcegraph/sourcegraph-public-snapshot
。作者为保留写作中的引用,将sourcegraph/sourcegraph
fork 到efritz/sourcegraph
,但遇到诸多问题,如 forks 不继承 pull requests、非本地 commit 可见性等,通过编写 Go 程序和使用jq
提取相关 commit 信息,再通过 bash 脚本将这些 commit 带入新的仓库网络,最后使用xargs
重写引用,以确保能在 fork 中为每个源仓库的引用找到目标进行链接。
关键信息:
- 2019 年选择 Sourcegraph 原因:文化因素,100%开源构建等。
- 如今
sourcegraph/sourcegraph
仓库变私有。 - 作者 fork 到
efritz/sourcegraph
并处理相关问题。
重要细节: - 用 Go 程序遍历源仓库的 pull requests 并将其 payload 写入文件。
- 用
jq
提取 JSON 数据用于后续步骤。 - 编写第二个程序列出每个 pull request 的非合并 commit。
- 通过 bash 脚本将相关 commit 带入新仓库网络。
- 使用
xargs
重写引用,将源仓库的 commit 和 pull request 引用替换为 fork 中的相应链接。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。