有哪些版本控制系统可以处理文件和文件行?
据我了解,在文件上工作的控制系统能够在没有文件冲突时自动管理合并:
例如:
foreach ($this->request->get('name') as $key => $val) {
$rules['name.'.$key] = 'required';
$rules['phone.'.$key] = 'required';
$rules['comment.'.$key] = 'required';
}
return $rules;
在什么情况下,在线上工作的版本控制系统能够自己管理合并,在其他情况下它会要求开发人员解决它们?
答案 0 :(得分:0)
你的问题过于宽泛/一般,但我还是试着试一试。
现代版本控制系统中的大多数合并策略都无法解决以下问题:
假设您在存储库中的提交A
中有B
C
001
个文件。
提交Dev1
的开发人员001
分支并更改文件A
中的一行,提交为001a
。
提交Dev2
的开发人员001
分支,并更改文件A
中的同一行,并提交为001b
。
如果有人想要合并提交001a
和001b
,合并系统将无法确定该行的正确更改,也许项目的正确更改使用提交001a
中的内容或提交001b
中的内容,或者甚至可以混合使用行中的两个更改(有人必须创建)。
这通常是您如何得到需要手动干预的冲突,因为两个开发人员在同一个文件和行中工作并编写了不同的更改。
在其他案例中,结果很明显: