一句话:评估版本控制合并工具:干净的自动合并未必正确,可能破坏程序行为并增加开发者成本。
版本控制系统(如 Git)需要集成不同开发者或分支的修改。给定合并场景,合并工具要么输出干净的集成,要么报告冲突并由人工解决。干净集成只有在保持预期程序行为时才正确;若导致测试失败等问题,则为错误合并。人工解决冲突已耗费开发者时间,而修正错误合并引入的缺陷代价更高。本文关注版本控制合并工具的评估,旨在揭示自动合并输出正确性的风险与代价;但摘要未展开其具体评估方法、涉及工具及实验结论。
A version control system, such as Git, requires a way to integrate changes from different developers or branches. Given a merge scenario, a merge tool either outputs a clean integration of the changes, or it outputs a conflict for manual resolution. A clean integration is correct if it preserves intended program behavior, and is incorrect otherwise (e.g., if it causes a test failure). Manual resolution consumes valuable developer time, and correcting a defect introduced by an incorrect merge is even more costly.