From: Andy Parkins Date: Tue, 13 Feb 2007 16:32:35 GMT Subject: Re: [PATCH 3/3] diffstat generation in hooks--update was passing "^baserev" to git-diff-tree Message-ID: <200702131632.37401.andyparkins@gmail.com> In-Reply-To: <45D1DB57.65433549@eudaptics.com> On Tuesday 2007 February 13 15:37, Johannes Sixt wrote: > Shouldn't that be "... $baserev $newrev"? But read on. I think it should, yes. Thanks. > # * --- * --- * --- * (oldrev) > # \ > # * --- * --- * (newrev) > > git rev-list $oldrev..$newrev > > is exactly what you want in this case. The stunt with $baserev is not > necessary, and it may even be wrong if there is more than one > merge-base. $oldrev..$newrev will be correct even in this case. I just pinched the idea from the old update hook by Junio in 4f11b84c84. I just assumed that was the better way to do it. A quick test shows it to give the same output - I'm easy. > You still need to derive a merge-base, but only to detect the forced > update and to format the message. Then you should use --not $baserev > instead of ^$baserev just in case there is more than one merge-base. Are you suggesting something like this? git-rev-parse --not --all $baserev | git-rev-list --stdin --pretty $newrev Which would start showing from $newrev but would exclude all baserevs and all existing branches. Andy -- Dr Andy Parkins, M Eng (hons), MIEE andyparkins@gmail.com