From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756627Ab1CXPVX (ORCPT ); Thu, 24 Mar 2011 11:21:23 -0400 Received: from smtp1.linux-foundation.org ([140.211.169.13]:55147 "EHLO smtp1.linux-foundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751537Ab1CXPVV convert rfc822-to-8bit (ORCPT ); Thu, 24 Mar 2011 11:21:21 -0400 MIME-Version: 1.0 In-Reply-To: <20110324035834.GA29074@fieldses.org> References: <20110323193406.GB26306@fieldses.org> <20110324035834.GA29074@fieldses.org> From: Linus Torvalds Date: Thu, 24 Mar 2011 08:20:07 -0700 Message-ID: Subject: Re: nfsd changes for 2.6.39 To: "J. Bruce Fields" Cc: linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Mar 23, 2011 at 8:58 PM, J. Bruce Fields wrote: > > The diffstat generated by request-pull looked horribly wrong despite the > individual patches looking reasonable; I assumed it was a side effect of > the one back-merge and didn't look any closer.  Sorry, I probably should > have looked closer or asked for help. > > Here you go--did I screw something up? Yeah - the back merge. One of the bad side effects is that now you don't have a nice clear merge base any more, but _multiple_ merge bases (think "you mixed up your development tree with the upstream development tree"). Now, most of the time you end up being lucky, and when git picks one of those merge bases and tries to diff against them, it all works out anyway, and you get a reasonable diff. But not always. Because in the case of multiple merge bases, the only _real_ way to get a proper diff is actually to do the merge (and let merge sort out all the complexities) and then do the diff of the result. But no, you didn't screw up as in "the diff is wrong" - it's just that the diff isn't rally valid, because git tried to do a diff against the merge base, but with multiple too choose between it just sometimes screws up. One more reason to try to avoid mixing development streams. (People who do this a lot have learnt to do a private merge into a temporary branch, and do the diff against that. I don't want to see that merge though - just think of it as a temporary throw-away thing just for the diff). I'll pull. Linus