We have two competing commandments - or at least it appears that way on the surface.
The greatest one is, “Love God and love thy neighbor as thyself,” “Love one another,” or any number of ways to phrase it. The other one is, “Preach the Gospel.” Christ said that the world would hate those who represent him, but he didn’t say that meant we should preach in such a way as to alienate automatically by our own words and actions. He generally didn’t do that (except when condemning hypocrites and the Pharisees, primarily), and neither should we.
We can fulfill the command to preach the Gospel as well as the command to love others, but we can't do both if we approach preaching with an antagonistic spirit. In that light, I believe strongly that we need to stop framing so much of our discourse in battle terms - us vs. others, generally, and, more specifically, us vs. "the world". We need to stop blaming others for issues for which they are not responsible (like, for example, blaming the homosexual population for the deterioration of traditional marriage, which is the fault of the heterosexual population).
We need to preach what we believe (including real repentance), but we need to do so from a position of love - and we can't say we "love the sinner" while using language that is not conducive to love (or in language that, as Pres. Uchtdorf said, essentially judges others for sinning differently than we do). We can't preach repentance exclusively to others, particularly in detail; we need to preach the Gospel (including the correct principle of repentance) to ALL, including and especially to ourselves.
At the most basic level, it's not us vs. them; rather, it's me vs. me - and us WITH them. We can work to build up the kingdom of God on Earth, but it won't happen (won't really be the kingdom of God) if we aren't working in such a way that we simultaneously are establishing Zion - and Zion is based on a foundation of real charity.