4 冲突及解决

Wu Jun 2019-03-22 22:09:11
09 DevOps > 2 SVN

1 SVN两种工作模式

1.1 锁定-修改-锁定模型:

一个时间段里版本库的一个文件只允许被一个用户修改。
适用于二进制格式文件,内部结构复杂,不容易理解更改处的上下文,采用该方案较好。

1.2 拷贝-修改-合并模型:

每个用户建立一个工作拷贝,用户并行工作,修改各自的工作拷贝,最终,将各个私有拷贝合并在一起,成为最终版本。
通过上下文进行合并,适用于文本文件。

2 冲突及解决

2.1 什么是冲突

冲突是随着拷贝-修改-合并方案产生的问题。
冲突是指团队协同工作时,当多位团队成员同时修改同一个文件,造成本地文件与SVN系统中的文件版本不一致,而导致文件无法提交的情况

2.2 冲突产生的原因

当团队协同工作的时候,多位团队成员同时操作一个文件。团队成员A操作完成后,将该文件提交到SVN上。此时,其他团队成员的本地文件与SVN上的文件版本不一致。当团队成员B操作完成并对文件进行提交操作时,就会产生冲突。

2.3 冲突的解决方法

冲突产生后图标会发生变化,并产生三个文件。

面对文件冲突,我们可以选择以下三种方法解决冲突

3 TortoiseMerge介绍

TortoiseMerge使用三窗口方式显示差异。这个视图也用来解决冲突文件:

合并一般分为4种情况
TortoiseMerge图标介绍

image

避免冲突的建议

4 树冲突

树冲突产生原因

当一名开发人员移动、重命名、删除一个文件或文件夹,而另一名开发人员也对它们进行了移动、重命名、删除或者仅仅是修改时就会发生树冲突。

有一些其它情况被标记为树冲突,因为冲突中卷入了文件夹而不是文件。例如你在主干和分支中添加了同名的文件夹然后在合并时就会发生树冲突。

树冲突解决方法

需要发现冲突的一方,查看log日志获知自己的冲突文件被谁做过什么样的操作,然后与之沟通进行解决,解决后将冲突标记为已解决。