
分支合并提前检测冲突
分支提前判断存在冲突的两种方案
git命令
找到两个分支之间最好的公共祖先base_sha
base_sha = git merge-base origin/{source} origin/{target}
通过`git merge-tree {base_sha} {source} {target}`获取合并后的结果
git merge-tree {base_sha} origin/{source} origin/{target}
如果输出有`changed in both`字样,那说明存在冲突
借助GitLab Api判断
示例代码如下
# 检查合并冲突,借助gitlab的发起mr来判断 def checkConflicts(self, source, target, title): mr = self.createMr(source, target, title, None) if mr is None: return False elapsed = 0 while True: mr = self.getMr(mr.iid) status = mr.merge_status if status == 'can_be_merged': self.deleteMr(mr) return False if status in ['cannot_be_merged', 'cannot_be_merged_recheck']: self.deleteMr(mr) return True if elapsed > 30: self.deleteMr(mr) return True elapsed += 3 time.sleep(3)
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 小旋风巡山咯
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果