Re: Fwd: Re: git checkout -f branch doesn't remove extra files
- From
Linus Torvalds <torvalds@osdl.org>
- Date
- Aug 13, 2005, 05:39 UTC
- Message-ID
- <Pine.LNX.4.58.0508122235120.19049@g5.osdl.org>
- In-Reply-To
- <20050813052731.GC11456@redhat.com>
On Sat, 13 Aug 2005, Dave Jones wrote:
Show 7 quoted lines
> > > 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-script 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