From: Thomas Rast Date: Sun, 15 Aug 2010 19:54:57 GMT Subject: Re: Confused about "degenerate" combined diff for merge commits Message-ID: <201008152154.57578.trast@student.ethz.ch> In-Reply-To: <1jna5yt.1pm42a3uw2yquM%lists@haller-berlin.de> Stefan Haller wrote: > However, for some of these merge commits I see diff output such as this: > > diff --cc Src/ClipBoard.cpp > index 4357ea0,4357ea0..3fad79a > --- a/Src/ClipBoard.cpp > +++ b/Src/ClipBoard.cpp > @@@ -71,7 -71,7 +71,7 @@@ AClipBoard* AClipBoard::SNew( > > AClipBoard* AClipBoard::SClipBoard() > { > -- static AClipBoard* spClipBoard = SNew(); > ++ static TPtr spClipBoard = SNew(); > return spClipBoard; > } > > It looks like both merge parents had an identical diff here, so this is > not a conflict; why does diff --cc even show this to me? The --cc output has one column per parent, and if you removed all other +/-/space columns, then (for that hunk) you'd have a unified diff with that parent. So I'd say the above means that both parents had static AClipBoard* spClipBoard = SNew(); but your merge result was static TPtr spClipBoard = SNew(); This is usually called an "evil merge" in git terms: it is introducing changes that are neither coming from one side, nor part of a benign merge resolution. -- Thomas Rast trast@{inf,student}.ethz.ch