git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 3/3] diffstat generation in hooks--update was passing "^baserev" to git-diff-tree

From
Johannes Sixt <j.sixt@eudaptics.com>
Date
Feb 13, 2007, 15:37 UTC
Message-ID
<45D1DB57.65433549@eudaptics.com>
In-Reply-To
<200702131424.21665.andyparkins@gmail.com>
Andy Parkins wrote:
> -                       echo "Diffstat:"
> -                       git-diff-tree --no-color --stat -M -C --find-copies-harder $newrev ^$baserev
> +                       echo "Diffstat against $baserev:"
> +                       git-diff-tree --no-color --stat -M -C --find-copies-harder $newrev $baserev
Shouldn't that be "... $baserev $newrev"? But read on.

I cannot entirely follow the reasoning of the comment above this part, which says:

# Now the problem is for cases like this: # * --- * --- * --- * (oldrev) # \ # * --- * --- * (newrev) # i.e. there is no guarantee that newrev is a strict subset # of oldrev - (would have required a force, but that's allowed). # So, we can't simply say rev-list $oldrev..$newrev. Instead # we find the common base of the two revs and list from there

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.

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.

-- Hannes
Previous: Andy ParkinsNext: Andy Parkins
Message 2 of 6 in “diffstat generation in hooks--update was passing "^baserev" to git-diff-tree”
  1. 3/3 diffstat generation in hooks--update was passing "^baserev" to git-diff-treeAndy Parkins, Feb 13, 2007
  2. Johannes SixtFeb 13, 2007
  3. Andy ParkinsFeb 13, 2007
  4. Johannes SixtFeb 13, 2007
  5. Linus TorvaldsFeb 13, 2007
  6. Andy ParkinsFeb 13, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.