diff --git a/Documentation/git-am.txt b/Documentation/git-am.txt
index 704dc51..e4df4a4 100644
--- a/Documentation/git-am.txt
+++ b/Documentation/git-am.txt
@@ -82,8 +82,6 @@
 --------------
 Documentation by Petr Baudis, Junio C Hamano and the git-list <git@vger.kernel.org>.
 
-This manual page is a stub. You can help the git documentation by expanding it.
-
 GIT
 ---
 Part of the gitlink:git[7] suite
diff --git a/Documentation/git-cvsimport.txt b/Documentation/git-cvsimport.txt
index f5248c9..4b62256 100644
--- a/Documentation/git-cvsimport.txt
+++ b/Documentation/git-cvsimport.txt
@@ -10,7 +10,7 @@
 --------
 'git-cvsimport' [ -o <branch-for-HEAD> ] [ -h ] [ -v ]
 			[ -d <CVSROOT> ] [ -p <options-for-cvsps> ]
-			[ -C <git_repository> ] [ -i ] [ -k ]
+			[ -C <git_repository> ] [ -i ] [ -P <file> ] [ -k ]
 			[ -s <subst> ] [ -m ] [ -M regex ] [ <CVS_module> ]
 
 
@@ -60,6 +60,10 @@
 +
 If you need to pass multiple options, separate them with a comma.
 
+-P:: <cvsps-output-file>
+	Instead of calling cvsps, read the provided cvsps output file. Useful
+	for debugging or when cvsps is being handled outside cvsimport.
+
 -m::    
 	Attempt to detect merges based on the commit message. This option
 	will enable default regexes that try to capture the name source 
diff --git a/Documentation/git-fmt-merge-msg.txt b/Documentation/git-fmt-merge-msg.txt
new file mode 100644
index 0000000..a70eb39
--- /dev/null
+++ b/Documentation/git-fmt-merge-msg.txt
@@ -0,0 +1,39 @@
+git-fmt-merge-msg(1)
+====================
+
+NAME
+----
+git-fmt-merge-msg - Produce a merge commit message
+
+
+SYNOPSIS
+--------
+'git-fmt-merge-msg' <$GIT_DIR/FETCH_HEAD
+
+DESCRIPTION
+-----------
+Takes the list of merged objects on stdin and produces a suitable
+commit message to be used for the merge commit, usually to be
+passed as the '<merge-message>' argument of `git-merge`.
+
+This script is intended mostly for internal use by scripts
+automatically invoking `git-merge`.
+
+
+SEE ALSO
+--------
+gitlink:git-merge[1]
+
+
+Author
+------
+Written by Junio C Hamano <junkio@cox.net>
+
+Documentation
+--------------
+Documentation by Petr Baudis, Junio C Hamano and the git-list <git@vger.kernel.org>.
+
+GIT
+---
+Part of the gitlink:git[7] suite
+
diff --git a/Documentation/git-merge.txt b/Documentation/git-merge.txt
index a007a8b..8c9c4d8 100644
--- a/Documentation/git-merge.txt
+++ b/Documentation/git-merge.txt
@@ -28,6 +28,11 @@
 	there is no `-s` option, built-in list of strategies is
 	used instead.
 
+<msg>::
+	The commit message to be used for the merge commit (in case
+	it is created). The `git-fmt-merge-msg` script can be used
+	to give a good default for automated `git-merge` invocations.
+
 <head>::
 	our branch head commit.
 
@@ -37,6 +42,11 @@
 	obviously means you are trying an Octopus.
 
 
+SEE ALSO
+--------
+gitlink:git-fmt-merge-msg[1]
+
+
 Author
 ------
 Written by Junio C Hamano <junkio@cox.net>
diff --git a/Documentation/git-pull.txt b/Documentation/git-pull.txt
index bae05de..cef4c0a 100644
--- a/Documentation/git-pull.txt
+++ b/Documentation/git-pull.txt
@@ -19,6 +19,9 @@
 into the local HEAD.  Otherwise uses 'git octopus' to merge them
 into the local HEAD.
 
+Note that you can use '.' (current directory) as the
+<repository> to pull from the local repository -- this is useful
+when merging local branches into the current branch.
 
 OPTIONS
 -------
diff --git a/Documentation/git.txt b/Documentation/git.txt
index 59d0dc8..2f9622f 100644
--- a/Documentation/git.txt
+++ b/Documentation/git.txt
@@ -60,7 +60,6 @@
 
 gitlink:git-checkout-index[1]::
 	Copy files from the cache to the working directory
-	Previously this command was known as git-checkout-cache.
 
 gitlink:git-commit-tree[1]::
 	Creates a new commit object
@@ -76,7 +75,6 @@
 
 gitlink:git-merge-index[1]::
 	Runs a merge for files needing merging
-	Previously this command was known as git-merge-cache.
 
 gitlink:git-mktag[1]::
 	Creates a tag object
@@ -95,7 +93,6 @@
 
 gitlink:git-update-index[1]::
 	Modifies the index or directory cache
-	Previously this command was known as git-update-cache.
 
 gitlink:git-write-tree[1]::
 	Creates a tree from the current cache
@@ -109,7 +106,6 @@
 
 gitlink:git-diff-index[1]::
 	Compares content and mode of blobs between the cache and repository
-	Previously this command was known as git-diff-cache.
 
 gitlink:git-diff-files[1]::
 	Compares files in the working tree and the cache
@@ -122,7 +118,6 @@
 
 gitlink:git-fsck-objects[1]::
 	Verifies the connectivity and validity of the objects in the database
-	Previously this command was known as git-fsck-cache.
 
 gitlink:git-ls-files[1]::
 	Information about files in the cache/working directory
@@ -170,11 +165,9 @@
 
 gitlink:git-http-fetch[1]::
 	Downloads a remote git repository via HTTP
-	Previously this command was known as git-http-pull.
 
 gitlink:git-local-fetch[1]::
 	Duplicates another git repository on a local system
-	Previously this command was known as git-local-pull.
 
 gitlink:git-peek-remote[1]::
 	Lists references on a remote repository using upload-pack protocol.
@@ -190,11 +183,9 @@
 
 gitlink:git-ssh-fetch[1]::
 	Pulls from a remote repository over ssh connection
-	Previously this command was known as git-ssh-pull.
 
 gitlink:git-ssh-upload[1]::
 	Helper "server-side" program used by git-ssh-fetch
-	Previously this command was known as git-ssh-push.
 
 gitlink:git-update-server-info[1]::
 	Updates auxiliary information on a dumb server to help
@@ -210,7 +201,6 @@
 
 gitlink:git-add[1]::
 	Add paths to the index file.
-	Previously this command was known as git-add-script.
 
 gitlink:git-am[1]::
 	Apply patches from a mailbox, but cooler.
@@ -220,50 +210,39 @@
 
 gitlink:git-bisect[1]::
 	Find the change that introduced a bug.
-	Previously this command was known as git-bisect-script.
 
 gitlink:git-branch[1]::
 	Create and Show branches.
-	Previously this command was known as git-branch-script.
 
 gitlink:git-checkout[1]::
 	Checkout and switch to a branch.
-	Previously this command was known as git-checkout-script.
 
 gitlink:git-cherry-pick[1]::
 	Cherry-pick the effect of an existing commit.
-	Previously this command was known as git-cherry-pick-script.
 
 gitlink:git-clone[1]::
 	Clones a repository into a new directory.
-	Previously this command was known as git-clone-script.
 
 gitlink:git-commit[1]::
 	Record changes to the repository.
-	Previously this command was known as git-commit-script.
 
 gitlink:git-diff[1]::
 	Show changes between commits, commit and working tree, etc.
-	Previously this command was known as git-diff-script.
 
 gitlink:git-fetch[1]::
 	Download from a remote repository via various protocols.
-	Previously this command was known as git-fetch-script.
 
 gitlink:git-format-patch[1]::
 	Prepare patches for e-mail submission.
-	Previously this command was known as git-format-patch-script.
 
 gitlink:git-grep[1]::
 	Print lines matching a pattern
 
 gitlink:git-log[1]::
 	Shows commit logs.
-	Previously this command was known as git-log-script.
 
 gitlink:git-ls-remote[1]::
 	Shows references in a remote or local repository.
-	Previously this command was known as git-ls-remote-script.
 
 gitlink:git-merge[1]::
 	Grand unified merge driver.
@@ -273,39 +252,30 @@
 
 gitlink:git-octopus[1]::
 	Merge more than two commits.
-	Previously this command was known as git-octopus-script.
 
 gitlink:git-pull[1]::
 	Fetch from and merge with a remote repository.
-	Previously this command was known as git-pull-script.
 
 gitlink:git-push[1]::
 	Update remote refs along with associated objects.
-	Previously this command was known as git-push-script.
 
 gitlink:git-rebase[1]::
 	Rebase local commits to new upstream head.
-	Previously this command was known as git-rebase-script.
 
 gitlink:git-rename[1]::
 	Rename files and directories.
-	Previously this command was known as git-rename-script.
 
 gitlink:git-repack[1]::
 	Pack unpacked objects in a repository.
-	Previously this command was known as git-repack-script.
 
 gitlink:git-reset[1]::
 	Reset current HEAD to the specified state.
-	Previously this command was known as git-reset-script.
 
 gitlink:git-resolve[1]::
 	Merge two commits.
-	Previously this command was known as git-resolve-script.
 
 gitlink:git-revert[1]::
 	Revert an existing commit.
-	Previously this command was known as git-revert-script.
 
 gitlink:git-shortlog[1]::
 	Summarizes 'git log' output.
@@ -315,11 +285,9 @@
 
 gitlink:git-status[1]::
 	Shows the working tree status.
-	Previously this command was known as git-status-script.
 
 gitlink:git-verify-tag[1]::
 	Check the GPG signature of tag.
-	Previously this command was known as git-verify-tag-script.
 
 gitlink:git-whatchanged[1]::
 	Shows commit logs and differences they introduce.
@@ -334,41 +302,33 @@
 
 gitlink:git-archimport[1]::
 	Import an arch repository into git.
-	Previously this command was known as git-archimport-script.
 
 gitlink:git-convert-objects[1]::
 	Converts old-style git repository
-	Previously this command was known as git-convert-cache.
 
 gitlink:git-cvsimport[1]::
 	Salvage your data out of another SCM people love to hate.
-	Previously this command was known as git-cvsimport-script.
 
 gitlink:git-merge-one-file[1]::
 	The standard helper program to use with "git-merge-index"
-	Previously this command was known as git-merge-one-file-script.
 
 gitlink:git-prune[1]::
 	Prunes all unreachable objects from the object database
-	Previously this command was known as git-prune-script.
 
 gitlink:git-relink[1]::
 	Hardlink common objects in local repositories.
-	Previously this command was known as git-relink-script.
 
 gitlink:git-svnimport[1]::
 	Import a SVN repository into git.
 
 gitlink:git-sh-setup[1]::
 	Common git shell script setup code.
-	Previously this command was known as git-sh-setup-script.
 
 gitlink:git-symbolic-ref[1]::
 	Read and modify symbolic refs
 
 gitlink:git-tag[1]::
 	An example script to create a tag object signed with GPG
-	Previously this command was known as git-tag-script.
 
 gitlink:git-update-ref[1]::
 	Update the object name stored in a ref safely.
@@ -384,7 +344,6 @@
 
 gitlink:git-count-objects[1]::
 	Count unpacked number of objects and their disk consumption.
-	Previously this command was known as git-count-objects-script.
 
 gitlink:git-daemon[1]::
 	A really simple server for git repositories.
@@ -403,18 +362,15 @@
 
 gitlink:git-parse-remote[1]::
 	Routines to help parsing $GIT_DIR/remotes/
-	Previously this command was known as git-parse-remote-script.
 
 gitlink:git-request-pull[1]::
 	git-request-pull.
-	Previously this command was known as git-request-pull-script.
 
 gitlink:git-rev-parse[1]::
 	Pick out and massage parameters.
 
 gitlink:git-send-email[1]::
 	Send patch e-mails out of "format-patch --mbox" output.
-	Previously this command was known as git-send-email-script.
 
 gitlink:git-symbolic-refs[1]::
 	Read and modify symbolic refs.
diff --git a/Documentation/tutorial.txt b/Documentation/tutorial.txt
index b9f737e..20a4cb1 100644
--- a/Documentation/tutorial.txt
+++ b/Documentation/tutorial.txt
@@ -1028,7 +1028,9 @@
 
 [NOTE]
 You could even pull from your own repository by
-giving '.' as <remote-repository> parameter to `git pull`.
+giving '.' as <remote-repository> parameter to `git pull`.  This
+is useful when you want to merge a local branch (or more, if you
+are making an Octopus) into the current branch.
 
 It is likely that you will be pulling from the same remote
 repository from time to time. As a short hand, you can store
diff --git a/Makefile b/Makefile
index 5bb5108..5606c83 100644
--- a/Makefile
+++ b/Makefile
@@ -52,7 +52,7 @@
 
 # DEFINES += -DUSE_STDEV
 
-GIT_VERSION = 0.99.9a
+GIT_VERSION = 0.99.9b
 
 CFLAGS = -g -O2 -Wall
 ALL_CFLAGS = $(CFLAGS) $(PLATFORM_DEFINES) $(DEFINES)
@@ -94,7 +94,7 @@
 SCRIPT_PERL = \
 	git-archimport.perl git-cvsimport.perl git-relink.perl \
 	git-rename.perl git-shortlog.perl git-fmt-merge-msg.perl \
-	git-findtags.perl git-svnimport.perl git-mv.perl
+	git-svnimport.perl git-mv.perl
 
 SCRIPT_PYTHON = \
 	git-merge-recursive.py
@@ -413,7 +413,6 @@
 install: $(PROGRAMS) $(SCRIPTS)
 	$(INSTALL) -d -m755 $(call shellquote,$(DESTDIR)$(bindir))
 	$(INSTALL) $(PROGRAMS) $(SCRIPTS) $(call shellquote,$(DESTDIR)$(bindir))
-	sh ./cmd-rename.sh $(call shellquote,$(DESTDIR)$(bindir))
 	$(MAKE) -C templates install
 	$(INSTALL) -d -m755 $(call shellquote,$(DESTDIR)$(GIT_PYTHON_DIR))
 	$(INSTALL) $(PYMODULES) $(call shellquote,$(DESTDIR)$(GIT_PYTHON_DIR))
diff --git a/cmd-rename.sh b/cmd-rename.sh
index 34e7f49..992493d 100755
--- a/cmd-rename.sh
+++ b/cmd-rename.sh
@@ -1,13 +1,21 @@
 #!/bin/sh
+#
+# If you installed git by hand previously, you may find this
+# script useful to remove the symbolic links that we shipped
+# for backward compatibility.
+#
+# Running this script with the previous installation directory
+# like this:
+#
+# $ cmd-rename.sh /usr/local/bin/
+#
+# would clean them.
+
 d="$1"
 test -d "$d" || exit
 while read old new
 do
 	rm -f "$d/$old"
-	if test -f "$d/$new"
-	then
-		ln -s "$new" "$d/$old" || exit
-	fi
 done <<\EOF
 git-add-script	git-add
 git-archimport-script	git-archimport
diff --git a/debian/changelog b/debian/changelog
index 7d18483..ee68af5 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+git-core (0.99.9b-0) unstable; urgency=low
+
+  * GIT 0.99.9b
+
+ -- Junio C Hamano <junkio@cox.net>  Tue,  1 Nov 2005 21:39:39 -0800
+
 git-core (0.99.9a-0) unstable; urgency=low
 
   * GIT 0.99.9a
diff --git a/git-cvsimport.perl b/git-cvsimport.perl
index bbb83fb..7bd9136 100755
--- a/git-cvsimport.perl
+++ b/git-cvsimport.perl
@@ -29,7 +29,7 @@
 $SIG{'PIPE'}="IGNORE";
 $ENV{'TZ'}="UTC";
 
-our($opt_h,$opt_o,$opt_v,$opt_k,$opt_u,$opt_d,$opt_p,$opt_C,$opt_z,$opt_i,$opt_s,$opt_m,$opt_M);
+our($opt_h,$opt_o,$opt_v,$opt_k,$opt_u,$opt_d,$opt_p,$opt_C,$opt_z,$opt_i,$opt_P, $opt_s,$opt_m,$opt_M);
 
 sub usage() {
 	print STDERR <<END;
@@ -41,7 +41,7 @@
 	exit(1);
 }
 
-getopts("hivmkuo:d:p:C:z:s:M:") or usage();
+getopts("hivmkuo:d:p:C:z:s:M:P:") or usage();
 usage if $opt_h;
 
 @ARGV <= 1 or usage();
@@ -337,6 +337,10 @@
 	}
 	close ($fh);
 
+	if ($res eq '') {
+	    die "Looks like the server has gone away while fetching $fn $rev -- exiting!";
+	}
+
 	return ($name, $res);
 }
 
@@ -487,11 +491,16 @@
 	my @opt;
 	@opt = split(/,/,$opt_p) if defined $opt_p;
 	unshift @opt, '-z', $opt_z if defined $opt_z;
+	unshift @opt, '-q'         unless defined $opt_v;
 	unless (defined($opt_p) && $opt_p =~ m/--no-cvs-direct/) {
 		push @opt, '--cvs-direct';
 	}
-	exec("cvsps",@opt,"-u","-A",'--root',$opt_d,$cvs_tree);
-	die "Could not start cvsps: $!\n";
+	if ($opt_P) {
+	    exec("cat", $opt_P);
+	} else {
+	    exec("cvsps",@opt,"-u","-A",'--root',$opt_d,$cvs_tree);
+	    die "Could not start cvsps: $!\n";
+	}
 }
 
 
diff --git a/git-findtags.perl b/git-findtags.perl
deleted file mode 100755
index 745affe..0000000
--- a/git-findtags.perl
+++ /dev/null
@@ -1,94 +0,0 @@
-#!/usr/bin/perl -w
-#
-# Copyright (c) 2005 Martin Langhoff
-#
-# Walk the tags and find if they match a commit
-# expects a SHA1 of a commit. Option -t enables 
-# searching trees too.
-#
-
-use strict;
-use File::Basename;
-use File::Find;
-use Getopt::Std;
-
-my $git_dir = $ENV{GIT_DIR} || '.git';
-$git_dir =~ s|/$||; # chomp trailing slash
-
-# options
-our $opt_t;
-getopts("t") || usage();
-
-my @tagfiles   = `find $git_dir/refs/tags -follow -type f`; # haystack
-my $target = shift @ARGV;                     # needle
-unless ($target) {
-    usage();
-}
-
-# drive the processing from the find hook
-# slower, safer (?) than the find utility
-find( { wanted   => \&process,
-	no_chdir => 1,
-	follow   => 1,
-      }, "$git_dir/refs/tags");
-
-
-sub process {
-    my ($dev,$ino,$mode,$nlink,$uid,$gid);
-
-    # process only regular files
-    unless ((($dev,$ino,$mode,$nlink,$uid,$gid) = lstat($_)) && -f _) {
-	return 1; # ignored anyway
-    }
-
-    my $tagfile = $_;
-    chomp $tagfile;
-    my $tagname = substr($tagfile, length($git_dir.'/refs/tags/'));
-
-    my $tagid = quickread($tagfile);
-    chomp $tagid;
-
-    # is it just a soft tag?
-    if ($tagid eq $target) {
-	print "$tagname\n";
-	return 1; # done with this tag
-    }
-
-    # grab the first 2 lines (the whole tag could be large)
-    my $tagobj = `git-cat-file tag $tagid | head -n2 `;
-    if ($tagobj =~  m/^type commit$/m) { # only deal with commits
-
-	if ($tagobj =~ m/^object $target$/m) { # match on the commit
-	    print "$tagname\n";
-
-	} elsif ( $opt_t &&                      # follow the commit
-		 $tagobj =~ m/^object (\S+)$/m) { # and try to match trees
-	    my $commitid = $1;
-	    my $commitobj = `git-cat-file commit $commitid | head -n1`;
-	    chomp $commitobj;
-	    $commitobj =~ m/^tree (\S+)$/;
-	    my $treeid = $1;
-	    if ($target eq $treeid) {
-		print "$tagname\n";
-	    }
-	}
-    }
-}
-
-sub quickread {
-    my $file = shift;
-    local $/; # undef: slurp mode
-    open FILE, "<$file"
-	or die "Cannot open $file : $!";
-    my $content = <FILE>;
-    close FILE;
-    return $content;
-}
-
-sub usage {
-	print STDERR <<END;
-Usage: ${\basename $0}     # find tags for a commit or tree
-       [ -t ] <commit-or-tree-sha1>
-END
-	exit(1);
-}
diff --git a/git-mv.perl b/git-mv.perl
index 17e35b0..a21d87e 100755
--- a/git-mv.perl
+++ b/git-mv.perl
@@ -54,6 +54,8 @@
 my $argCount = scalar @ARGV;
 if (-d $ARGV[$argCount-1]) {
 	$dstDir = $ARGV[$argCount-1];
+	# remove any trailing slash
+	$dstDir =~ s/\/$//;
 	@srcArgs = @ARGV[0..$argCount-2];
 	
 	foreach $src (@srcArgs) {
diff --git a/mozilla-sha1/sha1.c b/mozilla-sha1/sha1.c
index 7f6fc05..847531d 100644
--- a/mozilla-sha1/sha1.c
+++ b/mozilla-sha1/sha1.c
@@ -56,8 +56,8 @@
 }
 
 
-void SHA1_Update(SHA_CTX *ctx, void *_dataIn, int len) {
-  unsigned char *dataIn = _dataIn;
+void SHA1_Update(SHA_CTX *ctx, const void *_dataIn, int len) {
+  const unsigned char *dataIn = _dataIn;
   int i;
 
   /* Read the data into W and process blocks as they get full
diff --git a/mozilla-sha1/sha1.h b/mozilla-sha1/sha1.h
index f5decbf..5d82afa 100644
--- a/mozilla-sha1/sha1.h
+++ b/mozilla-sha1/sha1.h
@@ -41,5 +41,5 @@
 } SHA_CTX;
 
 void SHA1_Init(SHA_CTX *ctx);
-void SHA1_Update(SHA_CTX *ctx, void *dataIn, int len);
+void SHA1_Update(SHA_CTX *ctx, const void *dataIn, int len);
 void SHA1_Final(unsigned char hashout[20], SHA_CTX *ctx);
