From: Ryan Anderson <ryan@michonline.com>
To: git@vger.kernel.org, Linus Torvalds <torvalds@osdl.org>
Subject: [PATCH/RFC] Add git-changelog-script to show the changes between two commits
Date: Thu, 21 Jul 2005 02:31:43 -0400 [thread overview]
Message-ID: <20050721063143.GO20369@mythryan2.michonline.com> (raw)
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 <ryan@michonline.com>
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
next reply other threads:[~2005-07-21 6:31 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-07-21 6:31 Ryan Anderson [this message]
2005-07-21 19:41 ` [PATCH/RFC] Add git-changelog-script to show the changes between two commits Ryan Anderson
2005-07-21 20:00 ` Linus Torvalds
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20050721063143.GO20369@mythryan2.michonline.com \
--to=ryan@michonline.com \
--cc=git@vger.kernel.org \
--cc=torvalds@osdl.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox