Re: git merge successfully however this is still issue from logical perspective
- From
Thomas Rast <trast@student.ethz.ch>
- Date
- Oct 26, 2011, 12:39 UTC
- Message-ID
- <201110261439.10751.trast@student.ethz.ch>
- In-Reply-To
- <CAPgpnMR6_pRxMSLcdS=M4Cfj=dqk6KTXr3VGhk3LrnPHyv2waA@mail.gmail.com>
Lynn Lin wrote:
Show 11 quoted lines
> On Wed, Oct 26, 2011 at 8:27 PM, Thomas Rast <trast@student.ethz.ch> 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