打个补丁版本变成几
按模型,bump_patch("1.2.0") 交回什么?
贯穿本节的产品模型(判题机纯 Python、无网,这是它的确定模型,见 spine.py):一个端到端 Python 产品,从需求→设计→实现→持久化→服务化→测试→版本化,一步步做出来。
版本化:n_commits(历史) 数提交、bump_patch("x.y.z")=z 加一、is_tagged(标签表, 版本)、ahead(本地, 远端)=本地多几个提交。
def n_commits(log):
"""提交历史里有几个提交。"""
return len(log)
def bump_patch(ver):
"""打个补丁版本:把 x.y.z 的 z 加一。"""
p = ver.split(".")
p[2] = str(int(p[2]) + 1)
return ".".join(p)
def is_tagged(tags, ver):
"""这个版本打过标签没。"""
return ver in tags
def ahead(local, remote):
"""本地比远端多几个提交(不为负)。"""
return max(0, local - remote)
print(bump_patch("1.2.0"))
全部评论