写一个分叉距离

补全 divergence(g, a, b):返回两条分支各自独有的提交数之和。 输出当前这张图的分叉距离。

开始练习 →

⚠️ 早分和晚分,差多少

用同一个 divergence 算两张图:从 7b4e2d0 分出去(现在这样)和从 a1c5f83 分出去(晚一步)。 两个距离拼起来输出(早分的在前)。

开始练习 →

一条功能分支的完整一生

一条 feature 分支从生到死,顺序是【0】。

开始练习 →

合并之前先做什么

把功能分支合回主线之前,最该先做的是【0】。

开始练习 →

五项一起对得上吗

把这条路线算过的东西一次验完。运行下面这段程序: def ancestors(g, c): seen = set() st = [c] while st: x = st.pop() i

开始练习 →

第一步:把两条分支的关系摸清楚

写出 ancestors 和 only_on,输出四个数:main 可达数 / feature 可达数 / main 独有数 / feature 独有数。

开始练习 →

第二步:找出分叉点

写出 merge_base,输出 main 和 feature 的分叉点。

开始练习 →

第三步:判断该用哪种合并

写出 is_ff,判两种站位:main 在 a1c5f83、main 在 7b4e2d0。 两个结果拼起来输出(前者在先)。

开始练习 →

交付:分出去、改、合回来

这是这条路线的最终作品。把前面的函数合起来,一次验完五条: main 可达 3、feature 可达 4 分叉点是 7b4e2d0 两边独有 1 和 2,分叉距离 3 main 停在 a1c5f83 时不能快进;停在 7b4e2d0 时能

开始练习 →

上真机之前先确认什么

连上实验机、动手之前,第一件该做的事是【0】。

开始练习 →