Re: [PATCH/RFC] Add git-changelog-script to show the changes between two commits

2005-07-21 Thread Ryan Anderson
Nevermind, I apparently wanted:
git-whatchanged HEAD ^$LAST_RELEASED_COMMIT

I'll see about writing up a description of the extended commit reference
scheme.  Currently I can't find a description of it anywhere in the
source tree.

On Thu, Jul 21, 2005 at 02:31:43AM -0400, Ryan Anderson wrote:
 I'll start by saying that, well, I'm pretty sure this patch is wrong.
 
 I was trying to look at the changes between two commits, sanely, but
 failed to find a tool or example in the tree that hinted at how to do
 this.
 
 After poking around at git-whatchanged trying to figure out what it is
 trying to do - I gave up and wrote something that *seems* to work
 correctly for the simple test cases I pulled together.  I just don't
 trust it.
 
 My thinking here is that, when doing a release of a package such as git
 or Linux, the releaser could do something like:
 
   git changelog $LAST_RELEASED_COMMIT HEAD | git-shortlog |\
   mail -s Linux 2.7.0 finally open linux-kernel
 
 Where LAST_RELEASED is recorded somewhere or pulled from an internal
 changelog with something like:
   grep Released commit-id: changelog | awk -F: '{print $2}' |\
   head -1
 
 Signed-off-by: Ryan Anderson [EMAIL PROTECTED]
 
 diff --git a/Makefile b/Makefile
 --- a/Makefile
 +++ b/Makefile
 @@ -36,7 +36,8 @@ SCRIPTS=git git-apply-patch-script git-m
   git-reset-script git-add-script git-checkout-script git-clone-script \
   gitk git-cherry git-rebase-script git-relink-script git-repack-script \
   git-format-patch-script git-sh-setup-script git-push-script \
 - git-branch-script git-parse-remote
 + git-branch-script git-parse-remote \
 + git-changelog-script git-revdiff-script
  
  PROG=   git-update-cache git-diff-files git-init-db git-write-tree \
   git-read-tree git-commit-tree git-cat-file git-fsck-cache \
 diff --git a/git-changelog-script b/git-changelog-script
 new file mode 100755
 --- /dev/null
 +++ b/git-changelog-script
 @@ -0,0 +1,3 @@
 +#!/bin/sh
 +
 +git-revdiff-script $@ | git-diff-tree --stdin --pretty -r | LESS=$LESS -S 
 ${PAGER:-less}
 diff --git a/git-revdiff-script b/git-revdiff-script
 new file mode 100755
 --- /dev/null
 +++ b/git-revdiff-script
 @@ -0,0 +1,18 @@
 +#!/usr/bin/perl
 +
 +use warnings;
 +use strict;
 +
 +my ($start,$end) = @ARGV;
 +
 +open(R,-|,git-rev-list,$start)
 + or die Failed to pipe from git-rev-list:  . $!;
 +
 +my $rev;
 +while ($rev = R) {
 + chomp $rev;
 + print $rev,\n;
 + last if $end eq $rev;
 +}
 +
 +close(R);
 
 
 -- 
 
 Ryan Anderson
   sometimes Pug Majere
 -
 To unsubscribe from this list: send the line unsubscribe git in
 the body of a message to [EMAIL PROTECTED]
 More majordomo info at  http://vger.kernel.org/majordomo-info.html
 

-- 

Ryan Anderson
  sometimes Pug Majere
-
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH/RFC] Add git-changelog-script to show the changes between two commits

2005-07-21 Thread Linus Torvalds


On Thu, 21 Jul 2005, Ryan Anderson wrote:

 Nevermind, I apparently wanted:
   git-whatchanged HEAD ^$LAST_RELEASED_COMMIT

Yes. And since git-whatchanged uses git-rev-parse, and can thus use the 
extended git commit format, including ranges, you can literally write the 
above as

git-whatchanged $LAST_RELEASED_COMMIT..

(or, if you only care about the log, not the actual diff lines, use the 
faster and simpler

git log $LAST_RELEASED_COMMIT..

which will also show you merges - something git-whatchanged doesn't do).

You can also use the --pretty format specializers, so

git log --pretty=short $LAST_RELEASED_COMMIT..

will do exactly what you'd expect it to do.

Linus
-
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html