| 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 |
| |