path: root/Documentation/howto/make-dist.txt
diff options
authorRyan Anderson <>2005-08-15 08:25:53 (GMT)
committerJunio C Hamano <>2005-08-15 10:00:21 (GMT)
commit365a00a3f280f8697e4735e1ac5b42a1c50f7887 (patch)
tree3ce890c43c4f6323a4c393383b1b8c093c0654e5 /Documentation/howto/make-dist.txt
parentc65a9470fbaa57b9b815addde51ad22648f6d353 (diff)
[PATCH] Add some simple howtos, culled from the mailing list.
I think these are useful, and I think putting them in a new "howto" directory might help some users until we get to the point of splitting up the tutorial to be easier to read. Given the authorship, I think it's safe to put these in the repository. Signed-off-by: Ryan Anderson <>
Diffstat (limited to 'Documentation/howto/make-dist.txt')
1 files changed, 47 insertions, 0 deletions
diff --git a/Documentation/howto/make-dist.txt b/Documentation/howto/make-dist.txt
new file mode 100644
index 0000000..ae90941
--- /dev/null
+++ b/Documentation/howto/make-dist.txt
@@ -0,0 +1,47 @@
+Date: Fri, 12 Aug 2005 22:39:48 -0700 (PDT)
+From: Linus Torvalds <>
+To: Dave Jones <>
+Subject: Re: Fwd: Re: git checkout -f branch doesn't remove extra files
+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-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