https://github.com/git/git
Raw File
Tip revision: 843142ada000a992fa87bd2dc7796501332a52d9 authored by Junio C Hamano on 10 May 2007, 21:49:36 UTC
GIT v1.5.2-rc3
Tip revision: 843142a
make-dist.txt
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
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.

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"
        echo "# git-tag v$new"
        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

back to top