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