写一个分叉距离
补全 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】。