[git-users] Re: Why is this a merge conflict?

2012-07-24 Thread Hans Zorn
Thank you for this reaction.
I can follow what you write and it is clear to me that by doing what you 
did, the situation I described can emerge. But the thing is: there were no 
deletes. Head does not contain certain lines that the branch to merge in 
does. So the lines in the branch to merge are just new- that's all! Any 
ideas?

Hans

Op dinsdag 24 juli 2012 13:31:54 UTC+2 schreef Antony het volgende:
>
>
>
> On Tuesday, 24 July 2012 09:36:41 UTC+1, Hans Zorn wrote:
>>
>> After doing a merge of 2 branches in a Delphi project I get some merge 
>> conflicts.
>> Some I understand are clearly conflicts as they are simply adverse. But 
>> many look like this example:
>>
>>   <<<<<<< HEAD
>>   ===
>> + Button13: TButton;
>> + IBCustomerISACTIVE: TIBStringField;
>> + DBCheckBox5: TDBCheckBox;
>> + DBCheckBox6: TDBCheckBox;
>> + IBStationISACTIVE: TIBStringField;
>> + IBAccountISACTIVE: TIBStringField;
>> + DBCheckBox7: TDBCheckBox;
>> + IBCustomerSHOWPRICE: TIBStringField;
>> + DBCheckBox8: TDBCheckBox;
>>   >>>>>>> 51ae5a7d04e585b6785b4c5d0e84114298408a27
>>
>> So my question is: what is conflicting here? Why does git not just copy 
>> the added lines of the second branch into HEAD?
>>
>> This happens if one side of the merge removed some lines, while the other 
> side changed them. Let's set up an example:
>
> Create a new file with 3 lines
>
> $ echo -e "initial line 1\ninitial line 2\ninitial line 3" > file
> $ cat file
> initial line 1
> initial line 2
> initial line 3
> $ git add file && git commit -m "Add initial lines"
> [master (root-commit) 2e3cd57] Add initial lines
>  1 file changed, 3 insertions(+)
>  create mode 100644 file
>
> Then we'll branch, and modify these lines
>
> $ git checkout -b branch
> Switched to a new branch 'branch'
> $ echo -e "modified line 1\nmodified line 2\nmodified line 3" > file
> $ cat file
> modified line 1
> modified line 2
> modified line 3
> $ git commit -am "Add modified lines"
> [branch 9c42865] Add modified lines
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> Meanwhile on master, we'll remove those lines
>
> $ git checkout master
> Switched to branch 'master'
> $ cat /dev/null > file
> $ git commit -am "Remove lines from file"
> [master f008f71] Remove lines from file
>  1 file changed, 3 deletions(-)
>
> Then we'll try and merge the two versions together
>
> $ git merge branch
> Auto-merging file
> CONFLICT (content): Merge conflict in file
> Automatic merge failed; fix conflicts and then commit the result.
> $ cat file
> <<<<<<< HEAD
> ===
> modified line 1
> modified line 2
> modified line 3
> >>>>>>> branch
>
> As you can see, the HEAD side removed the lines (which is shown by the 
> HEAD section being empty), while the branch side modified the lines, which 
> is also shown.
> It might be easier to see if we use the 'diff3' style conflict markers, 
> which also shows the original version (see diff.conflictstyle in man 
> git-config).
>
> $ git merge --abort
> $ git -c merge.conflictstyle=diff3 merge branch
> Auto-merging file
> CONFLICT (content): Merge conflict in file
> Automatic merge failed; fix conflicts and then commit the result.
> $ cat file
> <<<<<<< HEAD
> ||| merged common ancestors
> initial line 1
> initial line 2
> initial line 3
> ===
> modified line 1
> modified line 2
> modified line 3
> >>>>>>> branch
>
> Here, git shows you the original lines (between the  and ), so 
> it's easier to see the modifications that each branch did to the original.
>
> Hope that clears things up,
> Antony
>
>
>  
>

-- 
You received this message because you are subscribed to the Google Groups "Git 
for human beings" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/git-users/-/z3favmoFfdYJ.
To post to this group, send email to git-users@googlegroups.com.
To unsubscribe from this group, send email to 
git-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/git-users?hl=en.



[git-users] Why is this a merge conflict?

2012-07-24 Thread Hans Zorn
After doing a merge of 2 branches in a Delphi project I get some merge 
conflicts.
Some I understand are clearly conflicts as they are simply adverse. But 
many look like this example:

  <<< HEAD
  ===
+ Button13: TButton;
+ IBCustomerISACTIVE: TIBStringField;
+ DBCheckBox5: TDBCheckBox;
+ DBCheckBox6: TDBCheckBox;
+ IBStationISACTIVE: TIBStringField;
+ IBAccountISACTIVE: TIBStringField;
+ DBCheckBox7: TDBCheckBox;
+ IBCustomerSHOWPRICE: TIBStringField;
+ DBCheckBox8: TDBCheckBox;
  >>> 51ae5a7d04e585b6785b4c5d0e84114298408a27

So my question is: what is conflicting here? Why does git not just copy the 
added lines of the second branch into HEAD?

Hans

-- 
You received this message because you are subscribed to the Google Groups "Git 
for human beings" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/git-users/-/kyxa1yz6stMJ.
To post to this group, send email to git-users@googlegroups.com.
To unsubscribe from this group, send email to 
git-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/git-users?hl=en.