From: Thomas Rast Date: Wed, 26 Oct 2011 12:39:10 GMT Subject: Re: git merge successfully however this is still issue from logical perspective Message-ID: <201110261439.10751.trast@student.ethz.ch> In-Reply-To: Lynn Lin wrote: > On Wed, Oct 26, 2011 at 8:27 PM, Thomas Rast wrote: > > Lynn Lin wrote: > >> Hi all, > >> Do this case can happen? When I do merge from one branch to master > >> branch,merge successfully however from code logical perspective it > >> fails and It cause code compile (our project is using C++ language) > > > > Sure. The easiest example is when one side of a merge renames foo() > > to bar(), while the other side introduces another call to foo() in an > > unrelated part of the code. > Does this mean we shouldn't trust merge result ? Depends what you mean by "trust". If you expected a merge to understand what the changes on each side were about, and then patch the code accordingly, no it can't do that.[*] You are in no way guaranteed that the result of a merge is correct or even compiles even if both sides of the merge were. But after all git-merge is just a tool doing a well-defined operation: textually merging the changes from both sides. AFAIK it could so far always be trusted with doing *that* correctly. [*] darcs can go half of the way by having more expressive "changesets", but this can also fail. I think the general problem is AI-complete. -- Thomas Rast trast@{inf,student}.ethz.ch