gitweb.git
Document --left-right option to rev-list.Brian Gernhardt Thu, 5 Apr 2007 14:53:07 +0000 (10:53 -0400)

Document --left-right option to rev-list.

Explanation is paraphrased from "577ed5c... rev-list --left-right"

Signed-off-by: Junio C Hamano <junkio@cox.net>

Revert "builtin-archive: use RUN_SETUP"René Scharfe Thu, 5 Apr 2007 20:55:43 +0000 (22:55 +0200)

Revert "builtin-archive: use RUN_SETUP"

Commit 64edf4b2 cleaned up the initialization of git-archive,
at the cost of 'git-archive --list' now requiring a git repo.
This patch reverts the cleanup and documents the requirement
for this particular dirtyness in a test.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <junkio@cox.net>

rename contrib/hooks/post-receieve-email to contrib... Gerrit Pape Wed, 4 Apr 2007 11:52:12 +0000 (11:52 +0000)

rename contrib/hooks/post-receieve-email to contrib/hooks/post-receive-email.

$ git grep post-receieve-email
$ git grep post-receive-email
templates/hooks--post-receive:#. /usr/share/doc/git-core/contrib/hooks/post-receive-email
$

Signed-off-by: Gerrit Pape <pape@smarden.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

RPM spec: include git-p4 in the list of all packages.Junio C Hamano Wed, 4 Apr 2007 18:32:33 +0000 (11:32 -0700)

RPM spec: include git-p4 in the list of all packages.

Signed-off-by: Junio C Hamano <junkio@cox.net>

rerere: make sorting really stable.Junio C Hamano Wed, 4 Apr 2007 21:12:03 +0000 (14:12 -0700)

rerere: make sorting really stable.

The earlier code does not swap hunks when the beginning of the
first side is identical to the whole of the second side. In
such a case, the first one should sort later.

Signed-off-by: Junio C Hamano <junkio@cox.net>

Fix t4200-rerere for white-space from "wc -l"Brian Gernhardt Wed, 4 Apr 2007 19:39:05 +0000 (15:39 -0400)

Fix t4200-rerere for white-space from "wc -l"

On OS X, wc outputs 6 spaces before the number of lines, so the test
expecting the string "10" failed. Do not quote $cmd to strip away
the problematic whitespace as other tests do.

Also fix the grammar of the test name while making changes to it.
There's only one preimage, so it's "has", not "have".

Signed-off-by: Junio C Hamano <junkio@cox.net>

git-svn: bail out on incorrect command-line optionsEric Wong Tue, 3 Apr 2007 08:57:08 +0000 (01:57 -0700)

git-svn: bail out on incorrect command-line options

"git svn log" is the only command that needs the pass-through
option in Getopt::Long; otherwise we will bail out and let the
user know something is wrong.

Also, avoid printing out unaccepted mixed-case options (that
are reserved for the command-line) such as --useSvmProps
in the usage() function.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>

gitweb: Quote hash keys, and do not use barewords keysJakub Narebski Sun, 1 Apr 2007 20:22:21 +0000 (22:22 +0200)

gitweb: Quote hash keys, and do not use barewords keys

Ensure that in all references to an element of a hash, the
key is singlequoted, instead of using bareword: use $hash{'key'}
instead of $hash{key}

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>

gitweb: Whitespace cleanup - tabs are for indent, space... Jakub Narebski Sun, 1 Apr 2007 20:21:38 +0000 (22:21 +0200)

gitweb: Whitespace cleanup - tabs are for indent, spaces are for align (3)

Code should be look the same way, regardless of tab size.
Use tabs for indent, but spaces for align.

Indent continued part of command spanning multiple lines, but only once.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Fix switching to a branch with D/F when current branch... Junio C Hamano Fri, 16 Mar 2007 06:25:22 +0000 (23:25 -0700)

Fix switching to a branch with D/F when current branch has file D.

This loosens the over-eager verify_absent() check that gets
upset to find directory D in the current working tree when
switching to a branch that has a file there. The check needs to
make sure that we do not lose precious working tree files as a
result of removing directory D and replacing it with the file
from the other branch, which is a tad expensive but this is a
less common case.

Signed-off-by: Junio C Hamano <junkio@cox.net>

Fix twoway_merge that passed d/f conflict marker to... Junio C Hamano Mon, 2 Apr 2007 23:29:56 +0000 (16:29 -0700)

Fix twoway_merge that passed d/f conflict marker to merged_entry().

When switching from one tree to another, we should not send a
marker that says "this file does not exist in the new tree -- I
am a placeholder to tell you that, and not a real blob" down to
merged_entry() as the result of the merge.

Fix read-tree --prefix=dir/.Junio C Hamano Mon, 2 Apr 2007 19:40:19 +0000 (12:40 -0700)

Fix read-tree --prefix=dir/.

The existing code is not wrong per-se, but it started scanning the index
from a location that does not match the tree being read, and wasted
cycles.

Signed-off-by: Junio C Hamano <junkio@cox.net>

unpack-trees: get rid of *indpos parameter.Junio C Hamano Mon, 2 Apr 2007 22:06:59 +0000 (15:06 -0700)

unpack-trees: get rid of *indpos parameter.

This variable keeps track of which entry in the original index
the traversal is looking at, and belongs to the unpack_trees_options
structure along with other traversal status information.

Signed-off-by: Junio C Hamano <junkio@cox.net>

unpack_trees.c: pass unpack_trees_options structure... Junio C Hamano Mon, 2 Apr 2007 07:06:12 +0000 (00:06 -0700)

unpack_trees.c: pass unpack_trees_options structure to keep_entry() as well.

Other decision functions, deleted_entry() and merged_entry() take one as
their parameter, and this function should. I'll be introducing a separate
index to build the result in, and am planning to pass it as the part of the
structure.

Signed-off-by: Junio C Hamano <junkio@cox.net>

add_cache_entry(): removal of file foo does not conflic... Junio C Hamano Fri, 30 Mar 2007 08:55:37 +0000 (01:55 -0700)

add_cache_entry(): removal of file foo does not conflict with foo/bar

Similarly, removal of file foo/bar does not conflict with a file foo.

Signed-off-by: Junio C Hamano <junkio@cox.net>

Merge branch 'jc/bisect'Junio C Hamano Wed, 4 Apr 2007 07:10:21 +0000 (00:10 -0700)

Merge branch 'jc/bisect'

* jc/bisect:
make the previous optimization work also on path-limited rev-list --bisect
rev-list --bisect: Fix "halfway" optimization.
t6004: add a bit more path optimization test.
git-rev-list --bisect: optimization
git-rev-list: add --bisect-vars option.
t6002: minor spelling fix.

Merge branch 'fl/doc'Junio C Hamano Wed, 4 Apr 2007 07:10:13 +0000 (00:10 -0700)

Merge branch 'fl/doc'

* fl/doc:
Documentation: unbreak user-manual.
Documentation: Add version information to man pages
Documentation: Replace @@GIT_VERSION@@ in documentation

Merge branch 'post1.5.1/blame.el'Junio C Hamano Wed, 4 Apr 2007 07:10:03 +0000 (00:10 -0700)

Merge branch 'post1.5.1/blame.el'

* post1.5.1/blame.el:
git-blame.el: pick a set of random colors for each git-blame turn
git-blame.el: separate git-blame-mode to ease maintenance

Merge branch 'post1.5.1/tcltk'Junio C Hamano Wed, 4 Apr 2007 07:09:52 +0000 (00:09 -0700)

Merge branch 'post1.5.1/tcltk'

* post1.5.1/tcltk:
Optional Tck/Tk: ignore generated files.
Eliminate checks of user-specified Tcl/Tk interpreter.
Rewrite Tcl/Tk interpreter path for the GUI tools.
Add --with-tcltk and --without-tcltk to configure.
NO_TCLTK

Merge branch 'post1.5.1/p4'Junio C Hamano Wed, 4 Apr 2007 07:09:36 +0000 (00:09 -0700)

Merge branch 'post1.5.1/p4'

* post1.5.1/p4:
Added correct Python path to the RPM specfile.
Remove unused WITH_OWN_SUBPROCESS_PY from RPM spec
Added git-p4 package to the list of git RPMs.
Add the WITH_P4IMPORT knob to the Makefile.

Merge branch 'lt/dirwalk'Junio C Hamano Wed, 4 Apr 2007 07:09:32 +0000 (00:09 -0700)

Merge branch 'lt/dirwalk'

* lt/dirwalk:
Optimize directory listing with pathspec limiter.

git-read-tree --index-output=<file>Junio C Hamano Sun, 1 Apr 2007 06:27:41 +0000 (23:27 -0700)

git-read-tree --index-output=<file>

This corrects the interface mistake of the previous one, and
gives a command line parameter to the only plumbing command that
currently needs it: "git-read-tree".

We can add the calls to set_alternate_index_output() to other
plumbing commands that update the index if/when needed.

Signed-off-by: Junio C Hamano <junkio@cox.net>

_GIT_INDEX_OUTPUT: allow plumbing to output to an alter... Junio C Hamano Sun, 1 Apr 2007 06:09:02 +0000 (23:09 -0700)

_GIT_INDEX_OUTPUT: allow plumbing to output to an alternative index file.

When defined, this allows plumbing commands that update the
index (add, apply, checkout-index, merge-recursive, mv,
read-tree, rm, update-index, and write-tree) to write their
resulting index to an alternative index file while holding a
lock to the original index file. With this, git-commit that
jumps the index does not have to make an extra copy of the index
file, and more importantly, it can do the update while holding
the lock on the index.

However, I think the interface to let an environment variable
specify the output is a mistake, as shown in the documentation.
If a curious user has the environment variable set to something
other than the file GIT_INDEX_FILE points at, almost everything
will break. This should instead be a command line parameter to
tell these plumbing commands to write the result in the named
file, to prevent stupid mistakes.

Signed-off-by: Junio C Hamano <junkio@cox.net>

checkout: allow detaching to HEAD even when switching... Junio C Hamano Thu, 29 Mar 2007 08:02:50 +0000 (01:02 -0700)

checkout: allow detaching to HEAD even when switching to the tip of a branch

You cannot currently checkout the tip of an existing branch
without moving to the branch.

This allows you to detach your HEAD and place it at such a
commit, with:

$ git checkout master^0

Signed-off-by: Junio C Hamano <junkio@cox.net>

GIT 1.5.1 v1.5.1Junio C Hamano Wed, 4 Apr 2007 05:47:01 +0000 (22:47 -0700)

GIT 1.5.1

Signed-off-by: Junio C Hamano <junkio@cox.net>

Merge 1.5.0.7 inJunio C Hamano Wed, 4 Apr 2007 04:52:14 +0000 (21:52 -0700)

Merge 1.5.0.7 in

Signed-off-by: Junio C Hamano <junkio@cox.net>

GIT 1.5.0.7 v1.5.0.7Junio C Hamano Tue, 3 Apr 2007 18:31:21 +0000 (11:31 -0700)

GIT 1.5.0.7

Not that this release really matters, as we will be doing
1.5.1 tomorrow. This commit is to tie the loose ends and
merge all of "maint" branch into "master" in preparation.

Signed-off-by: Junio C Hamano <junkio@cox.net>

Documentation: A few minor fixes to Git User's ManualJakub Narebski Tue, 3 Apr 2007 16:27:28 +0000 (18:27 +0200)

Documentation: A few minor fixes to Git User's Manual

Mainly consistent usage of "git command" and not "git-command" syntax

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Acked-by: J. Bruce Fields <bfields@citi.umich.edu>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Plug memory leak in index-pack collision checking codepath.Nicolas Pitre Tue, 3 Apr 2007 16:33:46 +0000 (12:33 -0400)

Plug memory leak in index-pack collision checking codepath.

rerere should not repeat the earlier hunks in later... Junio C Hamano Tue, 3 Apr 2007 23:28:46 +0000 (16:28 -0700)

rerere should not repeat the earlier hunks in later ones

When a file has more then one conflicting hunks, it repeated the
contents of previous hunks in output for later ones.

Signed-off-by: Junio C Hamano <junkio@cox.net>

Hopefully final update to the draft Release Notes,... Junio C Hamano Mon, 2 Apr 2007 20:29:38 +0000 (13:29 -0700)

Hopefully final update to the draft Release Notes, preparing for 1.5.1

Signed-off-by: Junio C Hamano <junkio@cox.net>

Optional Tck/Tk: ignore generated files.Junio C Hamano Fri, 30 Mar 2007 07:59:43 +0000 (00:59 -0700)

Optional Tck/Tk: ignore generated files.

Signed-off-by: Junio C Hamano <junkio@cox.net>

Eliminate checks of user-specified Tcl/Tk interpreter.Eygene Ryabinkin Thu, 29 Mar 2007 10:06:48 +0000 (14:06 +0400)

Eliminate checks of user-specified Tcl/Tk interpreter.

Do not make the checks on the Tcl/Tk interpreter passed by
'--with-tcltk=/path/to/wish' configure option: user is free to pass
anything.

Signed-off-by: Eygene Ryabinkin <rea-git@codelabs.ru>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Rewrite Tcl/Tk interpreter path for the GUI tools.Eygene Ryabinkin Wed, 28 Mar 2007 11:22:02 +0000 (04:22 -0700)

Rewrite Tcl/Tk interpreter path for the GUI tools.

--with-tcltk=/path/to/wish sets the TCLTK_PATH variable that is
used to substitute the location of the wish interpreter in the
Tcl/Tk programs.

New tracking file, GIT-GUI-VARS, was introduced: it tracks the
location of the Tcl/Tk interpreter and activates the GUI tools
rebuild if the interpreter path was changed. The separate tracker
is better than the GIT-CFLAGS: there is no need to rebuild the whole
git if the interpreter path was changed.

Signed-off-by: Eygene Ryabinkin <rea-git@codelabs.ru>

Add --with-tcltk and --without-tcltk to configure.Eygene Ryabinkin Wed, 28 Mar 2007 11:12:07 +0000 (04:12 -0700)

Add --with-tcltk and --without-tcltk to configure.

--with-tcltk enables the search of the Tcl/Tk interpreter. If no
interpreter is found then Tcl/Tk dependend parts are disabled.

--without-tcltk unconditionally disables Tcl/Tk dependent parts.

The original behaviour is not changed: bare './configure' just
installs the Tcl/Tk part doing no checks for the interpreter.

Signed-off-by: Eygene Ryabinkin <rea-git@codelabs.ru>

NO_TCLTKEygene Ryabinkin Wed, 28 Mar 2007 11:00:23 +0000 (04:00 -0700)

NO_TCLTK

Makefile knob named NO_TCLTK was introduced. It prevents the build
and installation of the Tcl/Tk dependent parts.

Signed-off-by: Eygene Ryabinkin <rea-git@codelabs.ru>

Added correct Python path to the RPM specfile.Eygene Ryabinkin Thu, 29 Mar 2007 10:07:47 +0000 (14:07 +0400)

Added correct Python path to the RPM specfile.

Signed-off-by: Eygene Ryabinkin <rea-git@codelabs.ru>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Remove unused WITH_OWN_SUBPROCESS_PY from RPM specBrian Gernhardt Tue, 27 Mar 2007 16:03:43 +0000 (12:03 -0400)

Remove unused WITH_OWN_SUBPROCESS_PY from RPM spec

We don't have a copy of subprocess.py anymore, so we removed that
option from the Makefile. Let's not leave that cruft around the RPM
spec file either.

Signed-off-by: Junio C Hamano <junkio@cox.net>

Added git-p4 package to the list of git RPMs.Eygene Ryabinkin Tue, 27 Mar 2007 11:25:15 +0000 (15:25 +0400)

Added git-p4 package to the list of git RPMs.

Signed-off-by: Eygene Ryabinkin <rea-git@codelabs.ru>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Add the WITH_P4IMPORT knob to the Makefile.Eygene Ryabinkin Tue, 27 Mar 2007 10:26:01 +0000 (14:26 +0400)

Add the WITH_P4IMPORT knob to the Makefile.

WITH_P4IMPORT: enables the installation of the Perforce import
script.

Signed-off-by: Eygene Ryabinkin <rea-git@codelabs.ru>
Signed-off-by: Junio C Hamano <junkio@cox.net>

git-blame.el: pick a set of random colors for each... Xavier Maillard Wed, 28 Mar 2007 16:44:34 +0000 (18:44 +0200)

git-blame.el: pick a set of random colors for each git-blame turn

I thought it would be cool to have different set of colors for each
git-blame-mode. Function `git-blame-new-commit' does this for us
picking when possible, a random colors based on the set we build on
startup. When it fails, `git-blame-ancient-color' will be used. We
also take care not to use the same color more than once (thank you
David Kågedal, really).

* Prevent (future possible) namespace clash by renaming `color-scale'
into `git-blame-color-scale'. Definition has been changed to be more
in the "lisp" way (thanks for help to #emacs). Also added a small
description of what it does.

* Added docstrings at some point and instructed defvar when a variable
was candidate to customisation by users.

* Added missing defvar to silent byte-compilers (git-blame-file,
git-blame-current)

* Do not require 'cl at startup

* Added more informations on compatibility

Signed-off-by: Xavier Maillard <zedek@gnu.org>
Acked-by: David Kågedal <davidk@lysator.liu.se>
Signed-off-by: Junio C Hamano <junkio@cox.net>

git-blame.el: separate git-blame-mode to ease maintenanceXavier Maillard Mon, 26 Mar 2007 21:00:54 +0000 (23:00 +0200)

git-blame.el: separate git-blame-mode to ease maintenance

git-blame-mode has been splitted into git-blame-mode-on and
git-blame-mode-off; it now conditionnaly calls one of them depending
of how we call it. Code is now easier to maintain and to understand.

Fixed `git-reblame' function: interactive form was at the wrong
place.

String displayed on the mode line is now configurable through
`git-blame-mode-line-string` (default to " blame").

Signed-off-by: Xavier Maillard <zedek@gnu.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Optimize directory listing with pathspec limiter.Linus Torvalds Sat, 31 Mar 2007 03:39:30 +0000 (20:39 -0700)

Optimize directory listing with pathspec limiter.

The way things are set up, you can now pass a "pathspec" to the
"read_directory()" function. If you pass NULL, it acts exactly
like it used to do (read everything). If you pass a non-NULL
pointer, it will simplify it into a "these are the prefixes
without any special characters", and stop any readdir() early if
the path in question doesn't match any of the prefixes.

NOTE! This does *not* obviate the need for the caller to do the *exact*
pathspec match later. It's a first-level filter on "read_directory()", but
it does not do the full pathspec thing. Maybe it should. But in the
meantime, builtin-add.c really does need to do first

read_directory(dir, .., pathspec);
if (pathspec)
prune_directory(dir, pathspec, baselen);

ie the "prune_directory()" part will do the *exact* pathspec pruning,
while the "read_directory()" will use the pathspec just to do some quick
high-level pruning of the directories it will recurse into.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

cvsserver: Don't lie about binary mode in asciidoc... Frank Lichtenheld Sat, 31 Mar 2007 13:32:13 +0000 (15:32 +0200)

cvsserver: Don't lie about binary mode in asciidoc documentation

The git-cvsserver documentation claims that the server will set
-k modes if appropriate which is not really the case. On the other
hand the available gitcvs.allbinary variable is not documented at
all. Fix both these issues by rewording the related paragraph.

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>

git-svn: fail on rebase if we are unable to find a... Eric Wong Sat, 31 Mar 2007 21:00:18 +0000 (14:00 -0700)

git-svn: fail on rebase if we are unable to find a ref to rebase against

If we're on an invalid HEAD, we should detect this and avoid
attempting to continue.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Keep rename/rename conflicts of intermediate merges... Alex Riesen Sat, 31 Mar 2007 11:49:38 +0000 (13:49 +0200)

Keep rename/rename conflicts of intermediate merges while doing recursive merge

This patch leaves the base name in the resulting intermediate tree, to
propagate the conflict from intermediate merges up to the top-level merge.

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Acked-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

contrib/workdir: add a simple script to create a workin... Julian Phillips Mon, 26 Mar 2007 23:15:32 +0000 (00:15 +0100)

contrib/workdir: add a simple script to create a working directory

Add a simple script to create a working directory that uses symlinks
to point at an exisiting repository. This allows having different
branches in different working directories but all from the same
repository.

Based on a description from Junio of how he creates multiple working
directories[1]. With the following caveat:

"This risks confusion for an uninitiated if you update a ref that
is checked out in another working tree, but modulo that caveat
it works reasonably well."

[1] http://article.gmane.org/gmane.comp.version-control.git/41513/

Signed-off-by: Julian Phillips <julian@quantumfyre.co.uk>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Reimplement emailing part of hooks--update in contrib... Andy Parkins Fri, 30 Mar 2007 19:16:26 +0000 (19:16 +0000)

Reimplement emailing part of hooks--update in contrib/hooks/post-receive-email

The update hook is no longer the correct place to generate emails; there
is now the hooks/post-receive script which is run automatically after a
ref has been updated.

This patch is to make use of that new location, and to address some
faults in the old update hook.

The primary problem in the conversion was that in the update hook, the
ref has not actually been changed, but is about to be. In the
post-receive hook the ref has already been updated. That meant that
where we previously had lines like:

git rev-list --not --all

would now give the wrong list because "--all" in the post-receive hook
includes the ref that we are making the email for. This made it more
difficult to show only the new revisions added by this update.

The solution is not pretty; however it does work and doesn't need any
changes to git-rev-list itself. It also fixes (more accurately: reduces
the likelihood of) a nasty race when another update occurs while this
script is running. The solution, in short, looks like this (see the
source code for a longer explanation)

git rev-parse --not --all | grep -v $(git rev-parse $refname) |
git rev-list --pretty --stdin $oldrev..$newrev

This uses git-rev-parse followed by grep to filter out the revision of
the ref in question before it gets to rev-list and inhibits the output
of itself. By using $(git rev-parse $revname) rather than $newrev as the
filter, it also takes care of the situation where another update to the
same ref has been made since $refname was $newrev.

The second problem that is addressed is that of tags inhibiting the
correct output of an update email. Consider this, with somebranch and
sometag pointing at the same revision:

git push origin somebranch
git push origin sometag

That would work fine; the push of the branch would generate an email
containing all the new commits introduced by the update, then the push
of the tag would generate the shortlog formatted tag email. Now
consider:

git push origin sometag
git push origin somebranch

When some branch comes to run its "--not --all" line, it will find
sometag, and filter those commits from the email - leaving nothing.
That meant that those commits would not show (in full) on any email.
The fix is to not use "--all", and instead use "--branches" in the
git-rev-parse command.

Other changes
* Lose the monstrous one-giant-script layout and put things in easy to
digest functions. This makes it much easier to find the place you
need to change if you wanted to customise the output. I've also
tried to write more verbose comments for the same reason. The hook
script is big, mainly because of all the different cases that it has
to handle, so being easy to navigate is important.
* All uses of "git-command" changed to "git command", to cope better
if a user decided not to install all the hard links to git;
* Cleaned up some of the English in the email
* The fact that the receive hook makes the ref available also allows me
to use Shawn Pearce's fantastic suggestion that an annotated tag can
be parsed with git-for-each-ref. This removes the potentially
non-portable use of "<<<" heredocs and the nasty messing around with
"date" to convert numbers of seconds UTC to a real date
* Deletions are now caught and notified (briefly)
* To help with debugging, I've retained the command line mode from the
update hook; but made it so that the output is not emailed, it's just
printed to the screen. This could then be redirected if the user
wanted
* Removed the "Hello" from the beginning of the email - it's just
noise, and no one seriously has their day made happier by "friendly"
programs
* The fact that it doesn't rely on repository state as an indicator any
more means that it's far more stable in its output; hopefully the
same arguments will always generate the same email - even if the
repository changes in the future. This means you can easily recreate
an email should you want to.
* Included Jim Meyering's envelope sender option for the sendmail call
* The hook is now so big that it was inappropriate to copy it
to every repository by keeping it in the templates directory.
Instead, I've put a comment saying to look in contrib/hooks, and
given an example of calling the script from that template hook. The
advantage of calling the script residing at some fixed location is
that if a future package of git included a bug fixed version of the
script, that would be picked up automatically, and the user would not
have to notice and manually copy the new hook to every repository
that uses it.

Signed-off-by: Andy Parkins <andyparkins@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>

git-svn: avoid respewing similar error messages for... Eric Wong Sat, 31 Mar 2007 00:54:48 +0000 (17:54 -0700)

git-svn: avoid respewing similar error messages for missing paths

We ignore errors if the path we're tracking did not exist for
a particular revision range, but we still print out warnings
telling the user about that.

As pointed out by Seth Falcon, this amounts to a lot of warnings
that could confuse and worry users. I'm not entirely comfortable
completely silencing the warnings, but showing one warning per
path that we track should be reasonable.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Rename warn() to warning() to fix symbol conflicts... Theodore Ts'o Fri, 30 Mar 2007 23:07:05 +0000 (19:07 -0400)

Rename warn() to warning() to fix symbol conflicts on BSD and Mac OS

This fixes a problem reported by Randal Schwartz:

>I finally tracked down all the (albeit inconsequential) errors I was getting
>on both OpenBSD and OSX. It's the warn() function in usage.c. There's
>warn(3) in BSD-style distros. It'd take a "great rename" to change it, but if
>someone with better C skills than I have could do that, my linker and I would
>appreciate it.

It was annoying to me, too, when I was doing some mergetool testing on
Mac OS X, so here's a fix.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Cc: "Randal L. Schwartz" <merlyn@stonehenge.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>

git-mailinfo fixes for patch mungingDon Zickus Fri, 30 Mar 2007 16:18:45 +0000 (12:18 -0400)

git-mailinfo fixes for patch munging

Don't translate the patch to UTF-8, instead preserve the data as
is. This also reverts a test case that was included in the
original patch series.

Also allow overwriting the authorship and title information we
gather from RFC2822 mail headers with additional in-body
headers, which was pointed out by Linus.

Signed-off-by: Don Zickus <dzickus@redhat.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>

gitweb: Support comparing blobs (files) with different... Jakub Narebski Fri, 30 Mar 2007 21:41:26 +0000 (23:41 +0200)

gitweb: Support comparing blobs (files) with different names

Fix the bug that caused "blobdiff" view called with new style URI
for a rename with change diff to be show as new (added) file diff.

New style URI for "blobdiff" for rename means with $hash_base ('hb') and
$hash_parent_base ('hpb') paramaters denoting tree-ish (usually commit)
of a blobs being compared, together with both $file_name ('f') and
$file_parent ('fp') parameters.

It is done by adding $file_parent ('fp') to the path limiter, meaning
that diff command becomes:

git diff-tree [options] hpb hb -- fp f

Other option would be finding hash of a blob using git_get_hash_by_path
subroutine and comparing blobs using git-diff, or using extended SHA-1
syntax and compare blobs using git-diff:

git diff [options] hpb:fp hp:f

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Do not bother documenting fetch--toolJunio C Hamano Fri, 30 Mar 2007 08:03:09 +0000 (01:03 -0700)

Do not bother documenting fetch--tool

Signed-off-by: Junio C Hamano <junkio@cox.net>

Update draft release notes for 1.5.1Junio C Hamano Fri, 30 Mar 2007 07:56:36 +0000 (00:56 -0700)

Update draft release notes for 1.5.1

Signed-off-by: Junio C Hamano <junkio@cox.net>

Merge branch 'maint'Junio C Hamano Fri, 30 Mar 2007 06:44:30 +0000 (23:44 -0700)

Merge branch 'maint'

* maint:
git-upload-pack: make sure we close unused pipe ends
Documentation/git-rev-parse.txt: fix example in SPECIFYING RANGES.
Documentation/git-svnimport.txt: fix typo.

git-quiltimport /bin/sh-ism fixFrancis Daly Thu, 29 Mar 2007 21:38:20 +0000 (22:38 +0100)

git-quiltimport /bin/sh-ism fix

Bryan Wu reported
/usr/local/bin/git-quiltimport: 114: Syntax error: Missing '))'

Most bourne-ish shells I have here accept
x=$((echo x)|cat)
but all bourne-ish shells I have here accept
x=$( (echo x)|cat)
because $(( might mean arithmetic expansion.

Signed-off-by: Francis Daly <francis@daoine.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Bisect: Improve error message in "bisect_next_check".Christian Couder Thu, 29 Mar 2007 07:42:35 +0000 (09:42 +0200)

Bisect: Improve error message in "bisect_next_check".

So we can remove the specific message in "bisect_run".

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Merge branch 'master' of git://repo.or.cz/git/mergetool.gitJunio C Hamano Fri, 30 Mar 2007 06:08:45 +0000 (23:08 -0700)

Merge branch 'master' of git://repo.or.cz/git/mergetool.git

* 'master' of git://repo.or.cz/git/mergetool.git:
mergetool: Clean up description of files and prompts for merge resolutions
mergetool: Make git-rm quiet when resolving a deleted file conflict
mergetool: Add support for Apple Mac OS X's opendiff command
mergetool: Fix abort command when resolving symlinks and deleted files
mergetool: Remove spurious error message if merge.tool config option not set
mergetool: factor out common code
mergetool: portability fix: don't use reserved word function
mergetool: portability fix: don't assume true is in /bin
mergetool: Don't error out in the merge case where the local file is deleted
mergetool: Replace use of "echo -n" with printf(1) to be more portable
Fix minor formatting issue in man page for git-mergetool

mergetool: Clean up description of files and prompts... Theodore Ts'o Thu, 29 Mar 2007 15:39:46 +0000 (11:39 -0400)

mergetool: Clean up description of files and prompts for merge resolutions

This fixes complaints from Junio for how messages and prompts are
printed when resolving symlink and deleted file merges.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>

mergetool: Make git-rm quiet when resolving a deleted... Theodore Ts'o Thu, 29 Mar 2007 14:05:02 +0000 (10:05 -0400)

mergetool: Make git-rm quiet when resolving a deleted file conflict

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>

mergetool: Add support for Apple Mac OS X's opendiff... Theodore Ts'o Thu, 29 Mar 2007 14:03:17 +0000 (10:03 -0400)

mergetool: Add support for Apple Mac OS X's opendiff command

Signed-off-by: Arjen Laarhoven <arjen@yaph.org>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>

mergetool: Fix abort command when resolving symlinks... Theodore Ts'o Thu, 29 Mar 2007 13:48:31 +0000 (09:48 -0400)

mergetool: Fix abort command when resolving symlinks and deleted files

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>

mergetool: Remove spurious error message if merge.tool... Theodore Ts'o Thu, 29 Mar 2007 13:46:31 +0000 (09:46 -0400)

mergetool: Remove spurious error message if merge.tool config option not set

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>

mergetool: factor out common codeTheodore Ts'o Thu, 29 Mar 2007 13:39:59 +0000 (09:39 -0400)

mergetool: factor out common code

Create common function check_unchanged(), save_backup() and
remove_backup().

Also fix some minor whitespace issues while we're at it.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>

mergetool: portability fix: don't use reserved word... Theodore Ts'o Thu, 29 Mar 2007 10:55:11 +0000 (06:55 -0400)

mergetool: portability fix: don't use reserved word function

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>

mergetool: portability fix: don't assume true is in... Theodore Ts'o Thu, 29 Mar 2007 10:46:59 +0000 (06:46 -0400)

mergetool: portability fix: don't assume true is in /bin

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>

mergetool: Don't error out in the merge case where... Theodore Ts'o Tue, 27 Mar 2007 22:00:03 +0000 (18:00 -0400)

mergetool: Don't error out in the merge case where the local file is deleted

If the file we are trying to merge resolve is in git-ls-files -u, then
skip the file existence test. If the file isn't reported in
git-ls-files, then check to see if the file exists or not to give an
appropriate error message.

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>

mergetool: Replace use of "echo -n" with printf(1)... Theodore Ts'o Tue, 27 Mar 2007 16:12:22 +0000 (12:12 -0400)

mergetool: Replace use of "echo -n" with printf(1) to be more portable

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>

Fix minor formatting issue in man page for git-mergetoolTheodore Ts'o Tue, 27 Mar 2007 15:38:59 +0000 (11:38 -0400)

Fix minor formatting issue in man page for git-mergetool

Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>

git-upload-pack: make sure we close unused pipe endsH. Peter Anvin Tue, 27 Mar 2007 23:45:06 +0000 (16:45 -0700)

git-upload-pack: make sure we close unused pipe ends

Right now, we don't close the read end of the pipe when git-upload-pack
runs git-pack-object, so we hang forever (why don't we get SIGALRM?)
instead of dying with SIGPIPE if the latter dies, which seems to be the
norm if the client disconnects.

Thanks to Johannes Schindelin <Johannes.Schindelin@gmx.de> for
pointing out where this close() needed to go.

This patch has been tested on kernel.org for several weeks and appear
to resolve the problem of git-upload-pack processes hanging around
forever.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
(cherry picked from commit 465b3518a9ad5080a4b652ef35fb13c61a93e7a4)

Documentation/git-rev-parse.txt: fix example in SPECIFY... Gerrit Pape Thu, 29 Mar 2007 06:42:44 +0000 (06:42 +0000)

Documentation/git-rev-parse.txt: fix example in SPECIFYING RANGES.

Please see http://bugs.debian.org/404795:

In git-rev-parse(1), there is an example commit tree, which is used twice.
The explanation for this tree is very clear: B and C are commit *parents* to
A.

However, when the tree is reused as an example in the SPECIFYING RANGES, the
manpage author screws up and uses A as a commit *parent* to B and C! I.e.,
he inverts the tree.

And the fact that for this example you need to read the tree backwards is
not explained anywhere (and it would be confusing even if it was).

Signed-off-by: Gerrit Pape <pape@smarden.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Documentation/git-svnimport.txt: fix typo.Gerrit Pape Thu, 29 Mar 2007 06:41:42 +0000 (06:41 +0000)

Documentation/git-svnimport.txt: fix typo.

This was noticed by Frederik Schwarzer. SVN's repository by default has
trunk, tags/, and branch_es_/.

Signed-off-by: Gerrit Pape <pape@smarden.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Documentation: unbreak user-manual.Junio C Hamano Tue, 27 Mar 2007 06:45:23 +0000 (23:45 -0700)

Documentation: unbreak user-manual.

The previous one broke generated xml files for anything but manpages,
as it took the header for manpage unconditionally. This fixes it.

Signed-off-by: Junio C Hamano <junkio@cox.net>

Documentation: Add version information to man pagesFrank Lichtenheld Sun, 25 Mar 2007 11:56:50 +0000 (13:56 +0200)

Documentation: Add version information to man pages

Override the [header] macro of asciidoc's docbook
backend to add version information to the generated
man pages.

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Documentation: Replace @@GIT_VERSION@@ in documentationFrank Lichtenheld Sun, 25 Mar 2007 11:56:49 +0000 (13:56 +0200)

Documentation: Replace @@GIT_VERSION@@ in documentation

Include GIT-VERSION-FILE and replace @@GIT_VERSION@@ in
the HTML and XML asciidoc output. The documentation
doesn't depend on GIT-VERSION-FILE so it will not be
automatically rebuild if nothing else changed.

[jc: fixing the case for interrupted build]

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>

GIT 1.5.1-rc3 v1.5.1-rc3Junio C Hamano Wed, 28 Mar 2007 22:58:09 +0000 (15:58 -0700)

GIT 1.5.1-rc3

Update main git.html page to point at 1.5.0.6 documentationJunio C Hamano Wed, 28 Mar 2007 22:40:17 +0000 (15:40 -0700)

Update main git.html page to point at 1.5.0.6 documentation

Signed-off-by: Junio C Hamano <junkio@cox.net>

Merge branch 'maint' to synchronize with 1.5.0.6Junio C Hamano Wed, 28 Mar 2007 22:39:57 +0000 (15:39 -0700)

Merge branch 'maint' to synchronize with 1.5.0.6

GIT 1.5.0.6 v1.5.0.6Junio C Hamano Wed, 28 Mar 2007 20:53:00 +0000 (13:53 -0700)

GIT 1.5.0.6

commit: fix pretty-printing of messages with "\nencoding "Jeff King Wed, 28 Mar 2007 21:52:09 +0000 (17:52 -0400)

commit: fix pretty-printing of messages with "\nencoding "

The function replace_encoding_header is given the whole
commit buffer, including the commit message. When looking
for the encoding header, if none was found in the header, it
would locate any line in the commit message matching
"\nencoding " and remove it.

Instead, we now make sure to search only to the end of the
header.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>

t4118: be nice to non-GNU sedJohannes Schindelin Fri, 23 Mar 2007 01:05:28 +0000 (21:05 -0400)

t4118: be nice to non-GNU sed

Elias Pipping:
> I'm on a mac, hence /usr/bin/sed is not gnu sed, which makes
> t4118 fail.

Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Ack'd-by: Elias Pipping <pipping@macports.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

t/t6006: add tests for a slightly more complex commit... Jeff King Wed, 28 Mar 2007 21:08:36 +0000 (17:08 -0400)

t/t6006: add tests for a slightly more complex commit messages

Especially this tests i18n messages and encoding header.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Fix "--pretty=format:" encoding itemJeff King Wed, 28 Mar 2007 21:09:05 +0000 (17:09 -0400)

Fix "--pretty=format:" encoding item

It printed the header "encoding " instead of just showing
the encoding, as all other items do.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Fix "--pretty=format:" for parent related items.Junio C Hamano Wed, 28 Mar 2007 20:33:37 +0000 (13:33 -0700)

Fix "--pretty=format:" for parent related items.

There are two breakages in the %P/%p interpolation. It appended
an excess SP at the end of the list, and it gave uninitialized
contents of a buffer on the stack for root commits.

This fixes it, while updating the t6006 test which expected the
wrong output.

Signed-off-by: Junio C Hamano <junkio@cox.net>

http-fetch: remove path_len from struct alt_base, it... Gerrit Pape Wed, 28 Mar 2007 09:47:35 +0000 (09:47 +0000)

http-fetch: remove path_len from struct alt_base, it was computed but never used

Signed-off-by: Gerrit Pape <pape@smarden.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

http-fetch: don't use double-slash as directory separat... Gerrit Pape Wed, 28 Mar 2007 09:46:15 +0000 (09:46 +0000)

http-fetch: don't use double-slash as directory separator in URLs

Please see http://bugs.debian.org/409887

http-fetch expected the URL given at the command line to have a trailing
slash anyway, and then added '/objects...' when requesting objects files
from the http server.

Now it doesn't require the trailing slash in <url> anymore, and strips
trailing slashes if given nonetheless.

Signed-off-by: Gerrit Pape <pape@smarden.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

git-commit: "read-tree -m HEAD" is not the right way... Junio C Hamano Wed, 28 Mar 2007 10:05:08 +0000 (03:05 -0700)

git-commit: "read-tree -m HEAD" is not the right way to read-tree quickly

It still looks at the working tree and checks for locally
modified paths. When are preparing a temporary index from HEAD,
we do not want any of that.

Signed-off-by: Junio C Hamano <junkio@cox.net>

Add some basic tests of rev-list --pretty=formatJeff King Wed, 28 Mar 2007 00:08:28 +0000 (20:08 -0400)

Add some basic tests of rev-list --pretty=format

These could stand to be a little more complex, but it should
at least catch obvious problems (like the recently fixed %ct
bug).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>

git-upload-pack: make sure we close unused pipe endsH. Peter Anvin Tue, 27 Mar 2007 23:45:06 +0000 (16:45 -0700)

git-upload-pack: make sure we close unused pipe ends

Right now, we don't close the read end of the pipe when git-upload-pack
runs git-pack-object, so we hang forever (why don't we get SIGALRM?)
instead of dying with SIGPIPE if the latter dies, which seems to be the
norm if the client disconnects.

Thanks to Johannes Schindelin <Johannes.Schindelin@gmx.de> for
pointing out where this close() needed to go.

This patch has been tested on kernel.org for several weeks and appear
to resolve the problem of git-upload-pack processes hanging around
forever.

Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>

--pretty=format: fix broken %ct and %at interpolationJeff King Tue, 27 Mar 2007 23:26:28 +0000 (19:26 -0400)

--pretty=format: fix broken %ct and %at interpolation

A pointer arithmetic error in fill_person caused random data
from the commit object to be included with the timestamp,
which looked something like:

$ git-rev-list --pretty=format:%ct origin/next | head
commit 98453bdb3db10db26099749bc4f2dc029bed9aa9
1174977948 -0700

Merge branch 'master' into next

* master:
Bisect: Use
commit c0ce981f5ebfd02463ff697b2fca52c7a54b0625
1174889646 -0700

Signed-off-by: Jeff King <peff@peff.net>
Acked-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>

use xrealloc in help.cJames Bowes Tue, 27 Mar 2007 22:30:08 +0000 (18:30 -0400)

use xrealloc in help.c

Signed-off-by: James Bowes <jbowes@dangerouslyinc.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>

read-tree: use xcallocJames Bowes Tue, 27 Mar 2007 22:30:19 +0000 (18:30 -0400)

read-tree: use xcalloc

Signed-off-by: James Bowes <jbowes@dangerouslyinc.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Fix "getaddrinfo()" bugletLinus Torvalds Tue, 27 Mar 2007 16:50:20 +0000 (09:50 -0700)

Fix "getaddrinfo()" buglet

At least in Linux glibc, "getaddrinfo()" has a very irritating feature (or
bug, who knows..).

Namely if you pass it in an empty string for the service name, it will
happily and quietly consider it identical to a NULL port pointer, and
return port number zero and no errors. Which obviously will not work.

Maybe that's what it's really expected to do, although the man-page for
getaddrinfo() certainly implies that it's a bug.

So when somebody passes me a "please pull" request pointing to something
like the following

git://git.kernel.org:/pub/scm/linux/kernel/git/mchehab/v4l-dvb.git

(note the extraneous colon at the end of the host name), git would happily
try to connect to port 0, which would generally just cause the remote to
not even answer, and the "connect()" will take a long time to time out.

So to work around the glibc feature/bug, just notice this empty port case
automatically. Also, add the port information to the error information
when it fails to look up (maybe it's the host-name that fails, maybe it's
the port-name - we should print out both).

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Makefile: remove test-chmtime program in target clean.Gerrit Pape Tue, 27 Mar 2007 10:13:42 +0000 (10:13 +0000)

Makefile: remove test-chmtime program in target clean.

While running 'make test', the test-chmtime program is created, and should
be cleaned up on 'make clean'.

Signed-off-by: Junio C Hamano <junkio@cox.net>

gitweb: Cleanup and uniquify die_error callsJakub Narebski Tue, 27 Mar 2007 00:07:11 +0000 (02:07 +0200)

gitweb: Cleanup and uniquify die_error calls

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>

sha1_file.c (write_sha1_file): Detect close failureJunio C Hamano Tue, 27 Mar 2007 19:55:44 +0000 (12:55 -0700)

sha1_file.c (write_sha1_file): Detect close failure

This is in the same spirit as earlier fix to write_sha1_from_fd().

Signed-off-by: Junio C Hamano <junkio@cox.net>

git.el: Display some information about the HEAD commit.Alexandre Julliard Mon, 26 Mar 2007 10:16:16 +0000 (12:16 +0200)

git.el: Display some information about the HEAD commit.

Use git-log --pretty=oneline to print a short description of the
current HEAD (and merge heads if any) in the buffer header.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

Document git-log --first-parentJunio C Hamano Tue, 27 Mar 2007 19:51:13 +0000 (12:51 -0700)

Document git-log --first-parent

Signed-off-by: Junio C Hamano <junkio@cox.net>

Bisect: add checks at the beginning of "git bisect... Christian Couder Tue, 27 Mar 2007 04:49:57 +0000 (06:49 +0200)

Bisect: add checks at the beginning of "git bisect run".

We may be able to "run" with only one good revision given
and then verify that the result of the first run is bad.
And perhaps also the other way around.

But for now let's check that we have at least one bad and
one good revision before we start to run.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>

sha1_file.c (write_sha1_from_fd): Detect close failure.Jim Meyering Mon, 26 Mar 2007 13:57:23 +0000 (15:57 +0200)

sha1_file.c (write_sha1_from_fd): Detect close failure.

I stumbled across this in the context of the fchmod 0444 patch.
At first, I was going to unlink and call error like the two subsequent
tests do, but a failed write (above) provokes a "die", so I made
this do the same. This is testing for a write failure, after all.

Signed-off-by: Jim Meyering <jim@meyering.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>