首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >git上奇怪的冲突

git上奇怪的冲突
EN

Stack Overflow用户
提问于 2013-05-14 14:39:15
回答 1查看 363关注 0票数 5

我读了一篇关于三方合并(diff3)的文章。它给出了一个如何检测冲突的例子。例子是:

代码语言:javascript
复制
A=[1,4,5,2,3,6]
O=[1,2,3,4,5,6] <<< Origin
B=[1,2,4,5,3,6]

在第一次计算O-A和O-B之后的差异时:

代码语言:javascript
复制
A=[1,4,5,2,3,   ,6]
O=[1,   ,2,3,4,5,6] 

代码语言:javascript
复制
O=[1,2,3,4,5, ,6] 
B=[1,2, ,4,5,3,6]

在它制造diff3 parse之后

A=1,4,5,2,3 ,6 O=1,2,3,4,5 ,6 <<< B=1,,2,4,5,3 ,6

在它发现冲突之后:

代码语言:javascript
复制
1
4
5
2
<<<<<<<<<A
3
|||||||O
3
4
5
=======
4
5
3
>>>>>>B
6

按照这个方法来检测冲突,我尝试了一个简单的例子:最初我有一个文档:

代码语言:javascript
复制
a;
b;

我使更新用户1更新"a;""a=0;"用户2更新"b;",到"b=0;"我得到以下结果:

代码语言:javascript
复制
xx
<<<<<<< A
int a=0;
int b;
||||||| O
int a;
int b;
=======
int a;
int b=0;
>>>

当我合并这两个文档时,即使我没有在同一个位置更改(a and b are not at the same position),也会有冲突!有人能解释我为什么会有这种冲突吗?

EN

回答 1

Stack Overflow用户

发布于 2013-05-27 14:25:10

这个问题与this one非常相似,答案也是:这是因为每个差异块不仅包含文字差异,而且还包括一些行上下文,这些行是在一个文件中定位差异所必需的,该文件中添加/删除了一些行,从而改变了主偏移量。上下文中的差异也是一个冲突,因为取决于您首先要应用哪个修补程序,您正在更改另一个修补程序的上下文。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16546134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档