2005-08-15 10:25:53 +02:00
|
|
|
Date: Fri, 12 Aug 2005 22:39:48 -0700 (PDT)
|
|
|
|
From: Linus Torvalds <torvalds@osdl.org>
|
|
|
|
To: Dave Jones <davej@redhat.com>
|
|
|
|
cc: git@vger.kernel.org
|
|
|
|
Subject: Re: Fwd: Re: git checkout -f branch doesn't remove extra files
|
2005-08-26 21:35:51 +02:00
|
|
|
Abstract: In this article, Linus talks about building a tarball,
|
|
|
|
incremental patch, and ChangeLog, given a base release and two
|
|
|
|
rc releases, following the convention of giving the patch from
|
|
|
|
the base release and the latest rc, with ChangeLog between the
|
|
|
|
last rc and the latest rc.
|
2005-08-15 10:25:53 +02:00
|
|
|
|
|
|
|
On Sat, 13 Aug 2005, Dave Jones wrote:
|
|
|
|
>
|
|
|
|
> > Git actually has a _lot_ of nifty tools. I didn't realize that people
|
|
|
|
> > didn't know about such basic stuff as "git-tar-tree" and "git-ls-files".
|
|
|
|
>
|
|
|
|
> Maybe its because things are moving so fast :) Or maybe I just wasn't
|
|
|
|
> paying attention on that day. (I even read the git changes via RSS,
|
|
|
|
> so I should have no excuse).
|
|
|
|
|
|
|
|
Well, git-tar-tree has been there since late April - it's actually one of
|
|
|
|
those really early commands. I'm pretty sure the RSS feed came later ;)
|
|
|
|
|
|
|
|
I use it all the time in doing releases, it's a lot faster than creating a
|
|
|
|
tar tree by reading the filesystem (even if you don't have to check things
|
|
|
|
out). A hidden pearl.
|
|
|
|
|
|
|
|
This is my crappy "release-script":
|
|
|
|
|
|
|
|
[torvalds@g5 ~]$ cat bin/release-script
|
|
|
|
#!/bin/sh
|
|
|
|
stable="$1"
|
|
|
|
last="$2"
|
|
|
|
new="$3"
|
2005-09-08 02:26:23 +02:00
|
|
|
echo "# git-tag v$new"
|
2005-08-15 10:25:53 +02:00
|
|
|
echo "git-tar-tree v$new linux-$new | gzip -9 > ../linux-$new.tar.gz"
|
|
|
|
echo "git-diff-tree -p v$stable v$new | gzip -9 > ../patch-$new.gz"
|
|
|
|
echo "git-rev-list --pretty v$new ^v$last > ../ChangeLog-$new"
|
|
|
|
echo "git-rev-list --pretty=short v$new ^v$last | git-shortlog > ../ShortLog"
|
|
|
|
echo "git-diff-tree -p v$last v$new | git-apply --stat > ../diffstat-$new"
|
|
|
|
|
|
|
|
and when I want to do a new kernel release I literally first tag it, and
|
|
|
|
then do
|
|
|
|
|
|
|
|
release-script 2.6.12 2.6.13-rc6 2.6.13-rc7
|
|
|
|
|
|
|
|
and check that things look sane, and then just cut-and-paste the commands.
|
|
|
|
|
|
|
|
Yeah, it's stupid.
|
|
|
|
|
|
|
|
Linus
|
|
|
|
|