合并成功后,log 里该看到什么

👁️ 2 人浏览 💬 0 人评论 ❤️ 添加收藏

下面这段模拟了合并后的提交图。运行它,看新的分支顶端有几个父提交:

def ancestors(g, c):
    seen = set()
    st = [c]
    while st:
        x = st.pop()
        if x in seen:
            continue
        seen.add(x)
        st.extend(g[x])
    return seen

def merge(g, cur, target, new_id):
    if is_ff(g, cur, target):
        return target, g
    g2 = dict(g)
    g2[new_id] = [cur, target]
    return new_id, g2

def is_ff(g, cur, target):
    return cur in ancestors(g, target)

g = {'3f2a91c': [],
     '7b4e2d0': ['3f2a91c'],
     'a1c5f83': ['7b4e2d0'],
     'e90d417': ['7b4e2d0'],
     '5c8b206': ['e90d417']}
tip, g2 = merge(g, 'a1c5f83', '5c8b206', '9d31e5f')
print(str(len(g2[tip])) + "/" + str(len(ancestors(g2, tip))))
提交你的答案
请登录后提交答案。
去登录
代码编辑器
Ctrl + Enter 运行
本次输入:
输出:

                        
👩‍🏫
AI
💬 题目评论

全部评论