git/git.git
14 years agoDocument --dry-run parameter to send-email.
Robin H. Johnson [Thu, 26 Apr 2007 02:37:15 +0000 (19:37 -0700)]
Document --dry-run parameter to send-email.

Looks like --dry-run was added to the code, but never to the --help output.

Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agogit-svn: Don't rely on $_ after making a function call
Adam Roben [Wed, 25 Apr 2007 18:50:32 +0000 (11:50 -0700)]
git-svn: Don't rely on $_ after making a function call

Many functions and operators in perl set $_, so its value cannot be relied upon
after calling arbitrary functions. The solution is simply to copy the value of
$_ into a local variable that will not get overwritten.

Signed-off-by: Adam Roben <aroben@apple.com>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoFix handle leak in write_tree
Alex Riesen [Wed, 25 Apr 2007 22:28:17 +0000 (00:28 +0200)]
Fix handle leak in write_tree

This is a quick and dirty fix for the broken "git cherry-pick -n" on
some broken OS, which does not remove the directory entry after unlink
succeeded(!) if the file is still open somewher.
The entry is left but "protected": no open, no unlink, no stat.
Very annoying.

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoActually handle some-low memory conditions
Shawn O. Pearce [Wed, 25 Apr 2007 08:02:27 +0000 (04:02 -0400)]
Actually handle some-low memory conditions

Tim Ansell discovered his Debian server didn't permit git-daemon to
use as much memory as it needed to handle cloning a project with
a 128 MiB packfile.  Filtering the strace provided by Tim of the
rev-list child showed this gem of a sequence:

  open("./objects/pack/pack-*.pack", O_RDONLY|O_LARGEFILE <unfinished ...>
  <... open resumed> )              = 5

OK, so the packfile is fd 5...

  mmap2(NULL, 33554432, PROT_READ, MAP_PRIVATE, 5, 0 <unfinished ...>
   <... mmap2 resumed> )             = 0xb5e2d000

and we mapped one 32 MiB window from it at position 0...

   mmap2(NULL, 31020635, PROT_READ, MAP_PRIVATE, 5, 0x6000 <unfinished ...>
   <... mmap2 resumed> )             = -1 ENOMEM (Cannot allocate memory)

And we asked for another window further into the file.  But got
denied.  In Tim's case this was due to a resource limit on the
git-daemon process, and its children.

Now where are we in the code?  We're down inside use_pack(),
after we have called unuse_one_window() enough times to make sure
we stay within our allowed maximum window size.  However since we
didn't unmap the prior window at 0xb5e2d000 we aren't exceeding
the current limit (which probably was just the defaults).

But we're actually down inside xmmap()...

So we release the window we do have (by calling release_pack_memory),
assuming there is some memory pressure...

   munmap(0xb5e2d000, 33554432 <unfinished ...>
   <... munmap resumed> )            = 0
   close(5 <unfinished ...>
   <... close resumed> )             = 0

And that was the last window in this packfile.  So we closed it.
Way to go us.  Our xmmap did not expect release_pack_memory to
close the fd its about to map...

   mmap2(NULL, 31020635, PROT_READ, MAP_PRIVATE, 5, 0x6000 <unfinished ...>
   <... mmap2 resumed> )             = -1 EBADF (Bad file descriptor)

And so the Linux kernel happily tells us f' off.

   write(2, "fatal: ", 7 <unfinished ...>
   <... write resumed> )             = 7
   write(2, "Out of memory? mmap failed: Bad "..., 47 <unfinished ...>
   <... write resumed> )             = 47

And we report the bad file descriptor error, and not the ENOMEM,
and die, claiming we are out of memory.  But actually that mmap
should have succeeded, as we had enough memory for that window,
seeing as how we released the prior one.

Originally when I developed the sliding window mmap feature I had
this exact same bug in fast-import, and I dealt with it by handing
in the struct packed_git* we want to open the new window for, as the
caller wasn't prepared to reopen the packfile if unuse_one_window
closed it.  The same is true here from xmmap, but the caller doesn't
have the struct packed_git* handy.  So I'm using the file descriptor
instead to perform the same test.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoRemove usernames from all commit messages, not just when using svmprops
Adam Roben [Wed, 25 Apr 2007 01:02:07 +0000 (18:02 -0700)]
Remove usernames from all commit messages, not just when using svmprops

Signed-off-by: Sam Vilain <sam.vilain@catalyst.net.nz>
Signed-off-by: Adam Roben <aroben@apple.com>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoapplymbox & quiltimport: typofix.
Junio C Hamano [Tue, 24 Apr 2007 21:27:00 +0000 (14:27 -0700)]
applymbox & quiltimport: typofix.

6777c380 fixed only one of three typos introduced in an earlier
patch 87ab7992.  This fixes the other two.

Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoCreate a sysconfdir variable, and use it for ETC_GITCONFIG
Josh Triplett [Tue, 24 Apr 2007 07:51:35 +0000 (00:51 -0700)]
Create a sysconfdir variable, and use it for ETC_GITCONFIG

ETC_GITCONFIG defaults to $(prefix)/etc/gitconfig, so if you just set
prefix=/usr, you end up with a git that looks in /usr/etc/gitconfig, rather
than /etc/gitconfig as specified by the FHS.  Furthermore, setting
ETC_GITCONFIG does not fix the paths to any future system-wide configuration
files.

Factor out the path to the system-wide configuration directory into a variable
sysconfdir, normally set to $(prefix)/etc, but set to /etc when prefix=/usr .
This fixes the prefix=/usr problem for ETC_GITCONFIG, and allows centralized
configuration of any future system-wide configuration files without requiring
further action from package maintainers or other people building and
installing git.

Signed-off-by: Josh Triplett <josh@freedesktop.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoDocumentation/git-reset.txt: suggest git commit --amend in example.
Gerrit Pape [Mon, 23 Apr 2007 12:06:29 +0000 (12:06 +0000)]
Documentation/git-reset.txt: suggest git commit --amend in example.

In example 'Undo a commit and redo', refer to 'git commit --amend', as
this is the easier alternative.

Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoBuild RPM with ETC_GITCONFIG=/etc/gitconfig
Junio C Hamano [Tue, 24 Apr 2007 06:17:41 +0000 (23:17 -0700)]
Build RPM with ETC_GITCONFIG=/etc/gitconfig

Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoIgnore all man sections as they are generated files.
Brian Gernhardt [Tue, 24 Apr 2007 00:02:34 +0000 (20:02 -0400)]
Ignore all man sections as they are generated files.

Signed-off-by: Brian Gernhardt <benji@silverinsanity.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoFix typo in git-am: s/Was is/Was it/
Josh Triplett [Tue, 24 Apr 2007 00:32:04 +0000 (17:32 -0700)]
Fix typo in git-am: s/Was is/Was it/

Signed-off-by: Josh Triplett <josh@freedesktop.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoReverse the order of -b and --track in the man page.
Brian Gernhardt [Mon, 23 Apr 2007 23:56:45 +0000 (19:56 -0400)]
Reverse the order of -b and --track in the man page.

Using "-b --track newbranch oldbranch" gives the error:

  git checkout: updating paths is incompatible with switching
  branches/forcing

However, "--track -b ..." works just fine.

Signed-off-by: Brian Gernhardt <benji@silverinsanity.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agodir.c(common_prefix): Fix two bugs
Johannes Schindelin [Mon, 23 Apr 2007 08:21:25 +0000 (10:21 +0200)]
dir.c(common_prefix): Fix two bugs

The function common_prefix() is used to find the common subdirectory of
a couple of pathnames. When checking if the next pathname matches up with
the prefix, it incorrectly checked the whole path, not just the prefix
(including the slash). Thus, the expensive part of the loop was executed
always.

The other bug is more serious: if the first and the last pathname in the
list have a longer common prefix than the common prefix for _all_ pathnames
in the list, the longer one would be chosen. This bug was probably hidden
by the fact that bash's wildcard expansion sorts the results, and the code
just so happens to work with sorted input.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoGIT 1.5.1.2 v1.5.1.2
Junio C Hamano [Sat, 21 Apr 2007 20:57:07 +0000 (13:57 -0700)]
GIT 1.5.1.2

Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoperl: install private Error.pm if the site version is older than our own
Eric Wong [Sat, 21 Apr 2007 07:55:00 +0000 (00:55 -0700)]
perl: install private Error.pm if the site version is older than our own

bdash (on IRC) had a problem with Git.pm (via git-svn) when his
site installation of Error.pm was older than the version we
package.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agogit-clone: fix dumb protocol transport to clone from pack-pruned ref
Junio C Hamano [Sat, 21 Apr 2007 00:25:27 +0000 (17:25 -0700)]
git-clone: fix dumb protocol transport to clone from pack-pruned ref

This forward-ports a fix from 2986c022 to git-clone.

Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoUpdate git-config documentation
Andrew Ruder [Thu, 19 Apr 2007 03:03:37 +0000 (22:03 -0500)]
Update git-config documentation

Documentation/git-config.txt: Added documentation for --system
Documentation/builtin-config.c: Added --system to the short usage

Signed-off-by: Andrew Ruder <andy@aeruder.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoFix unmatched emphasis tag in git-tutorial
Andrew Ruder [Thu, 19 Apr 2007 03:03:31 +0000 (22:03 -0500)]
Fix unmatched emphasis tag in git-tutorial

In asciidoc 7.1.2 and prior there is no obvious way to get:

'add'ing

to emphasize only the "add", instead it treats the first apostrophe as the
beginning of an emphasis, and the second apostrophe as a regular
apostrophe and makes the rest of the line an emphasis since there is no
closing apostrophe.  In the newer asciidoc you can do it pretty easily
with __add__ing but I'm not sure it would be best to make that a prereq
for something as silly as this.

Signed-off-by: Andrew Ruder <andy@aeruder.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoUpdate git-cherry-pick documentation
Andrew Ruder [Thu, 19 Apr 2007 03:03:26 +0000 (22:03 -0500)]
Update git-cherry-pick documentation

Documentation/git-cherry-pick.txt: Remove --replay as it is not
handled by the code (-r is however).

Signed-off-by: Andrew Ruder <andy@aeruder.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoUpdate git-archive documentation
Andrew Ruder [Thu, 19 Apr 2007 03:03:14 +0000 (22:03 -0500)]
Update git-archive documentation

Documentation/git-archive.txt: Document -v/--verbose option.
Add -l as short form of --list.

Signed-off-by: Andrew Ruder <andy@aeruder.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agofix up strtoul_ui error handling
Andy Whitcroft [Thu, 19 Apr 2007 02:08:15 +0000 (03:08 +0100)]
fix up strtoul_ui error handling

Two scanf() calls were converted to strtoul_ui() but the return
values were not updated to match.  scanf() returns the number of
matched "values" which for this usage is 1 on success.  strtoul_ui()
return 0 on success.  Update these call sites to match.

Signed-off-by: Andy Whitcroft <apw@shadowen.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agogit-tar-tree: complete deprecation conversion message
Sam Vilain [Wed, 18 Apr 2007 23:51:21 +0000 (11:51 +1200)]
git-tar-tree: complete deprecation conversion message

The syntax for git-archive is different; warn about it in the
deprecation message on the manual page.

Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agogit-shortlog: Fix two formatting errors in asciidoc documentation
Frank Lichtenheld [Wed, 18 Apr 2007 22:10:22 +0000 (00:10 +0200)]
git-shortlog: Fix two formatting errors in asciidoc documentation

First use [verse] in the SYNOPSIS so that the line break actually
shows.

Secondly drop the quotes around '.mailmap' since this exposes
a bug in our toolchain (didn't bother enough yet to find out wether
it is asciidoc's fault or that of the XSL templates) that leads to
the dot not getting escaped correctly in the roff output and thereby
swallowing the line.

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoFix overwriting of files when applying contextually independent diffs
Alex Riesen [Wed, 18 Apr 2007 21:58:56 +0000 (23:58 +0200)]
Fix overwriting of files when applying contextually independent diffs

Noticed by applying two diffs of different contexts to the same file.

The check for existence of a file was wrong: the test assumed it was
a directory and reset the errno (twice: directly and by calling
lstat). So if an entry existed and was _not_ a directory no attempt
was made to rename into it, because the errno (expected by renaming
code) was already reset to 0. This resulted in error:

    fatal: unable to write file file mode 100644

For Linux, removing "errno = 0" is enough, as lstat wont modify errno
if it was successful. The behavior should not be depended upon,
though, so modify the "if" as well.

The test simulates this situation.

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agogit-svn: don't allow globs to match regular files
Eric Wong [Wed, 18 Apr 2007 07:17:33 +0000 (00:17 -0700)]
git-svn: don't allow globs to match regular files

git only tracks the histories of full directories, not
that of individual files.  Sometimes, SVN users will
place[1] a regular file in the directory designated
for subdirectories of branches or tags.

Thanks to jrockway on #git for pointing this out.

[1] mistakenly or otherwise, such as a README

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoUse const qualifier for 'sha1' parameter in delete_ref function
Carlos Rica [Wed, 18 Apr 2007 03:34:34 +0000 (05:34 +0200)]
Use const qualifier for 'sha1' parameter in delete_ref function

delete_ref function does not change the 'sha1' parameter. Non-const pointer
causes a compiler warning if you call to the function using a const argument.

Signed-off-by: Carlos Rica <jasampler@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoStart preparing for 1.5.1.2
Junio C Hamano [Wed, 18 Apr 2007 00:32:23 +0000 (17:32 -0700)]
Start preparing for 1.5.1.2

14 years agoMerge branch 'maint' of git://repo.or.cz/git-gui into maint
Junio C Hamano [Wed, 18 Apr 2007 00:16:41 +0000 (17:16 -0700)]
Merge branch 'maint' of git://repo.or.cz/git-gui into maint

* 'maint' of git://repo.or.cz/git-gui:
  git-gui: Brown paper bag fix division by 0 in blame

14 years agogit-svn: quiet some warnings when run only with --version/--help
Eric Wong [Tue, 17 Apr 2007 09:41:43 +0000 (02:41 -0700)]
git-svn: quiet some warnings when run only with --version/--help

These are harmless but annoying.  They were introduced in
512b620bd9fef7f170562ecad835e37479f051ce

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agogit-svn: respect lower bound of -r/--revision when following parent
Eric Wong [Sun, 15 Apr 2007 10:01:29 +0000 (03:01 -0700)]
git-svn: respect lower bound of -r/--revision when following parent

When an explicit --revision argument is specified, do not fetch
past the specified range into the beginning of history.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoHave sample update hook not refuse deleting a branch through push.
Gerrit Pape [Mon, 16 Apr 2007 08:31:35 +0000 (08:31 +0000)]
Have sample update hook not refuse deleting a branch through push.

source ref might be 0000...0000 to delete a branch through git-push,
'git <remote> push :<branch>'.  The update hook should not decline this.

Signed-off-by: Gerrit Pape <pape@smarden.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agovariable $projectdesc needs to be set before checking against unchanged default.
Gerrit Pape [Mon, 16 Apr 2007 08:30:42 +0000 (08:30 +0000)]
variable $projectdesc needs to be set before checking against unchanged default.

Signed-off-by: Gerrit Pape <pape@smarden.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoUpdate git-annotate/git-blame documentation
Andrew Ruder [Mon, 16 Apr 2007 06:20:34 +0000 (01:20 -0500)]
Update git-annotate/git-blame documentation

Moved options that pertained to both git-blame and git-annotate to a
common file blame-options.txt.

builtin-blame.c: Removed --compatibility, --long, --time from the
short usage as they are not handled in the code.

Documentation/git-blame.txt: Removed common options to git-annotate.
Added documentation for --score-debug.  Removed --compatibility.
Adjusted usage at top to not wrap on 80 columns.

Documentation/git-annotate.txt: Using common options blame-options.txt.

Documentation/blame-options.txt: Added -b note about associated config
option, added --root note about associated config option, added
documentation for --show-stats.  Removed --long, --time, --rev-file as
those options do not really exist.  Added documentation for -M/-C taking
an optional score argument for detection of moved lines.

Signed-off-by: Andrew Ruder <andy@aeruder.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoUpdate git-apply documentation
Andrew Ruder [Mon, 16 Apr 2007 06:20:40 +0000 (01:20 -0500)]
Update git-apply documentation

Document -v (short form of --verbose).  Redo usage
to not wrap on 80 column terminal with typical
settings.

Signed-off-by: Andrew Ruder <andy@aeruder.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoUpdate git-applymbox documentation
Andrew Ruder [Mon, 16 Apr 2007 06:40:06 +0000 (01:40 -0500)]
Update git-applymbox documentation

Documentation/git-applymbox.txt: updating -u documentation to include
fact that it encodes to the i18n.commitencoding setting, not just utf-8.
Added documentation of -n option to pass -n to git-mailinfo.

Signed-off-by: Andrew Ruder <andy@aeruder.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoUpdate git-am documentation
Andrew Ruder [Mon, 16 Apr 2007 07:21:31 +0000 (02:21 -0500)]
Update git-am documentation

Documentation/git-am.txt missing several short versions
of options.  Added documentation for --resolvemsg=<msg>
command-line option.

Signed-off-by: Andrew Ruder <andy@aeruder.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agouser-manual: use detached head when rewriting history
J. Bruce Fields [Mon, 16 Apr 2007 04:37:16 +0000 (00:37 -0400)]
user-manual: use detached head when rewriting history

This is slightly simpler if we use a detached head.  And it's probably
good to have another example that uses this feature.

Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agouser-manual: start revising "internals" chapter
J. Bruce Fields [Mon, 16 Apr 2007 04:37:15 +0000 (00:37 -0400)]
user-manual: start revising "internals" chapter

Minor revisions, cross-references.

Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agouser-manual: detached HEAD
J. Bruce Fields [Mon, 16 Apr 2007 04:37:14 +0000 (00:37 -0400)]
user-manual: detached HEAD

Add a brief mention of detached HEADs and .git/HEAD.

Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agouser-manual: fix discussion of default clone
J. Bruce Fields [Mon, 16 Apr 2007 04:37:13 +0000 (00:37 -0400)]
user-manual: fix discussion of default clone

The name "master" isn't actually quite so special.  Also, fix some bad
grammar.

Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoDocumentation: clarify track/no-track option.
J. Bruce Fields [Mon, 16 Apr 2007 04:37:12 +0000 (00:37 -0400)]
Documentation: clarify track/no-track option.

Fix the description of the --no-track option so it no longer says the
opposite of what was intended.  Also mention branch.autosetupmerge
explicitly.

Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoDocumentation: clarify git-checkout -f, minor editing
J. Bruce Fields [Mon, 16 Apr 2007 04:37:11 +0000 (00:37 -0400)]
Documentation: clarify git-checkout -f, minor editing

"Force a re-read of everything" doesn't mean much to me.

Also some minor grammar fixes.

Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoDocumentation: minor edits of git-lost-found manpage
J. Bruce Fields [Mon, 16 Apr 2007 04:37:10 +0000 (00:37 -0400)]
Documentation: minor edits of git-lost-found manpage

Minor improvements to grammar and clarity of lost-found manpage.

Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoDocument -g (--walk-reflogs) option of git-log
Alex Riesen [Sun, 15 Apr 2007 22:36:06 +0000 (00:36 +0200)]
Document -g (--walk-reflogs) option of git-log

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agosscanf/strtoul: parse integers robustly
Jim Meyering [Mon, 9 Apr 2007 23:01:44 +0000 (01:01 +0200)]
sscanf/strtoul: parse integers robustly

* builtin-grep.c (strtoul_ui): Move function definition from here, to...
* git-compat-util.h (strtoul_ui): ...here, with an added "base" parameter.
* builtin-grep.c (cmd_grep): Update use of strtoul_ui to include base, "10".
* builtin-update-index.c (read_index_info): Diagnose an invalid mode integer
that is out of range or merely larger than INT_MAX.
(cmd_update_index): Use strtoul_ui, not sscanf.
* convert-objects.c (write_subdirectory): Likewise.

Signed-off-by: Jim Meyering <jim@meyering.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoMerge git://git2.kernel.org/pub/scm/gitk/gitk into maint
Junio C Hamano [Sun, 15 Apr 2007 02:45:16 +0000 (19:45 -0700)]
Merge git://git2./pub/scm/gitk/gitk into maint

* git://git2.kernel.org/pub/scm/gitk/gitk:
  [PATCH] Improve look-and-feel of the gitk tool.
  [PATCH] Teach gitk to use the user-defined UI font everywhere.

14 years agogit-blame: Fix overrun in fake_working_tree_commit()
Michael Spang [Sat, 14 Apr 2007 21:26:20 +0000 (17:26 -0400)]
git-blame: Fix overrun in fake_working_tree_commit()

git-blame would overflow commit->buffer when annotating files with long paths.

Signed-off-by: Michael Spang <mspang@uwaterloo.ca>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agogit-quiltimport complaining yet still working
Linus Torvalds [Fri, 13 Apr 2007 21:34:18 +0000 (14:34 -0700)]
git-quiltimport complaining yet still working

There were two bugs: "stop_here" doesn't exist, but the bug that causes
this code to trigger in the *first* place is the wrong use of "$dotest".
It should be ".dotest"

This is essentially the same bug introduced by 87ab7992, one was
fixed with 0d38ab25 but this was somehow left behind.

Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoconfig.txt: Fix grammatical error in description of http.noEPSV
Frank Lichtenheld [Fri, 13 Apr 2007 16:02:33 +0000 (18:02 +0200)]
config.txt: Fix grammatical error in description of http.noEPSV

s/doesn't/don't/ since "ftp servers" is plural

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoconfig.txt: Change pserver to server in description of gitcvs.*
Frank Lichtenheld [Fri, 13 Apr 2007 16:02:32 +0000 (18:02 +0200)]
config.txt: Change pserver to server in description of gitcvs.*

These variables apply to the SSH access as well, so don't use
pserver here which might confuse users.

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoconfig.txt: Document core.autocrlf
Frank Lichtenheld [Fri, 13 Apr 2007 16:02:31 +0000 (18:02 +0200)]
config.txt: Document core.autocrlf

Text shamelessly stolen from the 1.5.1 release notes.

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoconfig.txt: Document gitcvs.allbinary
Frank Lichtenheld [Fri, 13 Apr 2007 16:02:30 +0000 (18:02 +0200)]
config.txt: Document gitcvs.allbinary

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoDo not default to --no-index when given two directories.
Junio C Hamano [Fri, 13 Apr 2007 10:23:20 +0000 (03:23 -0700)]
Do not default to --no-index when given two directories.

git-diff -- a/ b/ always defaulted to --no-index, primarily
because the function is_in_index() was implemented quite
incorrectly.

Noticed by Patrick Maaß and Simon Schubert independently,
initial patch was provided by Patrick but I fixed it
differently.

Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoUse rev-list --reverse in git-rebase.sh
Alex Riesen [Fri, 13 Apr 2007 22:19:05 +0000 (00:19 +0200)]
Use rev-list --reverse in git-rebase.sh

...and drop the last perl dependency in the script.

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agohandle_options in git wrapper miscounts the options it handled.
Matthias Lederhofer [Thu, 12 Apr 2007 18:52:03 +0000 (20:52 +0200)]
handle_options in git wrapper miscounts the options it handled.

handle_options did not count the number of used arguments
correctly.  When --git-dir was used the extra argument was
not added to the number of handled arguments.

Signed-off-by: Matthias Lederhofer <matled@gmx.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoGIT 1.5.1.1 v1.5.1.1
Junio C Hamano [Wed, 11 Apr 2007 21:39:07 +0000 (14:39 -0700)]
GIT 1.5.1.1

Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agocvsserver: Fix handling of diappeared files on update
Frank Lichtenheld [Wed, 11 Apr 2007 20:38:19 +0000 (22:38 +0200)]
cvsserver: Fix handling of diappeared files on update

Only send a modified response if the client sent a
"Modified" entry. This fixes the case where the
file was locally deleted on the client without
being removed from CVS. In this case the client
will only have sent the Entry for the file but nothing
else.

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Acked-by: Martin Langhoff <martin@catalyst.net.nz>
Acked-by: Daniel Barkalow <barkalow@iabervon.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agofsck: do not complain on detached HEAD.
Junio C Hamano [Wed, 11 Apr 2007 08:28:43 +0000 (01:28 -0700)]
fsck: do not complain on detached HEAD.

Detached HEAD is just a normal state of a repository.  Do not
say anything about it.

Do not give worrying "error:" messages when we let the user know
that the HEAD points at nothing (i.e. yet to be born branch),
nor we do not have any default refs to start following the
objects chain.  Reword them as "notice:".

Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years ago(encode_85, decode_85): Mark source buffer pointer as "const".
Jim Meyering [Mon, 9 Apr 2007 22:56:33 +0000 (00:56 +0200)]
(encode_85, decode_85): Mark source buffer pointer as "const".

Signed-off-by: Jim Meyering <jim@meyering.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoDocumentation: show-ref: document --exclude-existing
Julian Phillips [Mon, 9 Apr 2007 20:57:36 +0000 (21:57 +0100)]
Documentation: show-ref: document --exclude-existing

Use the comment in the code to document the --exclude-existing
function to git-show-ref.

Signed-off-by: Julian Phillips <julian@quantumfyre.co.uk>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agocvsexportcommit -p : fix the usage of git-apply -C.
Tomash Brechko [Mon, 9 Apr 2007 11:24:02 +0000 (15:24 +0400)]
cvsexportcommit -p : fix the usage of git-apply -C.

Unlike 'patch --fuzz=NUM', which specifies the number of lines allowed
to mismatch, 'git-apply -CNUM' requests the match of NUM lines of
context.  Omitting -C requests full context match, and that's what
should be used for cvsexportcommit -p.

Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoAdd Documentation/cmd-list.made to .gitignore
Junio C Hamano [Mon, 9 Apr 2007 05:14:16 +0000 (22:14 -0700)]
Add Documentation/cmd-list.made to .gitignore

Noticed by Randal L. Schwartz.

Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agogit-svn: fix log command to avoid infinite loop on long commit messages
Eric Wong [Sun, 8 Apr 2007 07:59:22 +0000 (00:59 -0700)]
git-svn: fix log command to avoid infinite loop on long commit messages

This bug has been around since the the conversion to use the
Git.pm library back in October or November.  Eventually I'd like
"git rev-list/log" to have the option to not truncate overly
long messages.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agogit-svn: dcommit/rebase confused by patches with git-svn-id: lines
Eric Wong [Sun, 8 Apr 2007 07:59:19 +0000 (00:59 -0700)]
git-svn: dcommit/rebase confused by patches with git-svn-id: lines

When patches are merged from another git-svn managed branch,
they will have the git-svn-id: metadata line in them (generated
by git-format-patch).

When doing rebase or dcommit via git-svn, this would cause
git-svn to find the wrong upstream branch.  We now verify
that the commit is consistent with the value in the .rev_db
file.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agogit-svn: bail out on incorrect command-line options
Eric 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>
14 years agoPrepare for 1.5.1.1
Junio C Hamano [Sun, 8 Apr 2007 06:33:14 +0000 (23:33 -0700)]
Prepare for 1.5.1.1

Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agocvsserver: small corrections to asciidoc documentation
Frank Lichtenheld [Sat, 7 Apr 2007 14:58:08 +0000 (16:58 +0200)]
cvsserver: small corrections to asciidoc documentation

Fix a typo: s/Not/Note/

Some formating fixes: Use ` ` syntax for all filenames and
' ' syntax for all commandline switches.

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoDocumentation: tighten dependency for git.{html,txt}
Junio C Hamano [Fri, 6 Apr 2007 05:17:20 +0000 (22:17 -0700)]
Documentation: tighten dependency for git.{html,txt}

Every time _any_ documentation page changed, cmds-*.txt files
were regenerated, which caused git.{html,txt} to be remade.  Try
not to update cmds-*.txt files if their new contents match the
old ones.

Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoMakefile: iconv() on Darwin has the old interface
Arjen Laarhoven [Fri, 6 Apr 2007 23:49:17 +0000 (01:49 +0200)]
Makefile: iconv() on Darwin has the old interface

The libiconv on Darwin uses the old iconv() interface (2nd argument is a
const char **, instead of a char **).  Add OLD_ICONV to the Darwin
variable definitions to handle this.

Signed-off-by: Arjen Laarhoven <arjen@yaph.org>
Acked-by: Brian Gernhardt <benji@silverinsanity.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agot5300-pack-object.sh: portability issue using /usr/bin/stat
Arjen Laarhoven [Fri, 6 Apr 2007 23:49:03 +0000 (01:49 +0200)]
t5300-pack-object.sh: portability issue using /usr/bin/stat

In the test 'compare delta flavors', /usr/bin/stat is used to get file size.
This isn't portable.  There already is a dependency on Perl, use its '-s'
operator to get the file size.

Signed-off-by: Arjen Laarhoven <arjen@yaph.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agot3200-branch.sh: small language nit
Arjen Laarhoven [Fri, 6 Apr 2007 23:48:54 +0000 (01:48 +0200)]
t3200-branch.sh: small language nit

Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agousermanual.txt: some capitalization nits
Arjen Laarhoven [Fri, 6 Apr 2007 23:48:36 +0000 (01:48 +0200)]
usermanual.txt: some capitalization nits

Signed-off-by: Arjen Laarhoven <arjen@yaph.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoMake builtin-branch.c handle the git config file
Lars Hjemli [Fri, 6 Apr 2007 12:13:00 +0000 (14:13 +0200)]
Make builtin-branch.c handle the git config file

This moves the knowledge about .git/config usage out of refs.c and into
builtin-branch.c instead, which allows git-branch to update HEAD to point
at the moved branch before attempting to update the config file. It also
allows git-branch to exit with an error code if updating the config file
should fail.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agorename_ref(): only print a warning when config-file update fails
Lars Hjemli [Fri, 6 Apr 2007 08:33:06 +0000 (10:33 +0200)]
rename_ref(): only print a warning when config-file update fails

If git_config_rename_section() fails, rename_ref() used to return 1, which
left HEAD pointing to an absent refs/heads file (since the actual renaming
had already occurred).

Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoDistinguish branches by more than case in tests.
Brian Gernhardt [Fri, 6 Apr 2007 05:42:04 +0000 (01:42 -0400)]
Distinguish branches by more than case in tests.

The renaming without config test changed a branch from q to Q, which
fails on non-case sensitive file systems.  Change the test to use q
and q2.

Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoAvoid composing too long "References" header.
YOSHIFUJI Hideaki / 吉藤英明 [Thu, 5 Apr 2007 23:50:24 +0000 (08:50 +0900)]
Avoid composing too long "References" header.

The number of characters in a line MUST be no more than 998 characters,
and SHOULD be no more than 78 characters (RFC2822).
It is much safer to fold the header by ourselves.

Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agocvsimport: Improve formating consistency
Frank Lichtenheld [Fri, 6 Apr 2007 21:52:43 +0000 (23:52 +0200)]
cvsimport: Improve formating consistency

Use ' ' syntax for all commandline options mentioned in text.

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agocvsimport: Reorder options in documentation for better understanding
Frank Lichtenheld [Fri, 6 Apr 2007 21:52:42 +0000 (23:52 +0200)]
cvsimport: Reorder options in documentation for better understanding

The current order the options are documented in makes no sense
at all to me. Reorder them so that similar options are grouped
together and also order them somehwhat by importance.

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agocvsimport: Improve usage error reporting
Frank Lichtenheld [Fri, 6 Apr 2007 21:52:41 +0000 (23:52 +0200)]
cvsimport: Improve usage error reporting

Actually tell the user what he did wrong in case of usage errors
instead of only printing the general usage information.

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agocvsimport: Improve documentation of CVSROOT and CVS module determination
Frank Lichtenheld [Fri, 6 Apr 2007 21:52:40 +0000 (23:52 +0200)]
cvsimport: Improve documentation of CVSROOT and CVS module determination

Document the fact that git-cvsimport tries to find out CVSROOT from
CVS/Root and $ENV{CVSROOT} and CVS_module from CVS/Repository.

Also use ` ` syntax for all filenames for consistency.

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agocvsimport: sync usage lines with existing options
Frank Lichtenheld [Fri, 6 Apr 2007 21:52:39 +0000 (23:52 +0200)]
cvsimport: sync usage lines with existing options

Sync both the usage lines in the code and the asciidoc
documentation with the real list of options. While
all options seems to be documented in the asciidoc
document, not all of them were listed in the usage line.

Signed-off-by: Frank Lichtenheld <frank@lichtenheld.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoFix lseek(2) calls with args 2 and 3 swapped
Dana How [Thu, 5 Apr 2007 19:05:57 +0000 (12:05 -0700)]
Fix lseek(2) calls with args 2 and 3 swapped

Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoHonor -p<n> when applying git diffs
Shawn O. Pearce [Wed, 4 Apr 2007 15:19:14 +0000 (11:19 -0400)]
Honor -p<n> when applying git diffs

If the user is trying to apply a Git generated diff file and they
have specified a -p<n> option, where <n> is not 1, the user probably
has a good reason for doing this.  Such as they are me, trying to
apply a patch generated in git.git for the git-gui subdirectory to
the git-gui.git repository, where there is no git-gui subdirectory
present.

Users shouldn't supply -p2 unless they mean it.  But if they are
supplying it, they probably have thought about how to make this
patch apply to their working directory, and want to risk whatever
results may come from that.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoFix dependency of common-cmds.h
Junio C Hamano [Thu, 5 Apr 2007 22:03:48 +0000 (15:03 -0700)]
Fix dependency of common-cmds.h

Say $(wildcard ...) when we mean it.

Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoFix renaming branch without config file
Geert Bosch [Thu, 5 Apr 2007 14:20:55 +0000 (10:20 -0400)]
Fix renaming branch without config file

Make git_config_rename_section return success if no config file
exists.  Otherwise, renaming a branch would abort, leaving the
repository in an inconsistent state.

[jc: test]

Signed-off-by: Geert Bosch <bosch@gnat.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoDESTDIR support for git/contrib/emacs
Ville Skyttä [Thu, 5 Apr 2007 18:09:31 +0000 (21:09 +0300)]
DESTDIR support for git/contrib/emacs

make install DESTDIR=... support for git/contrib/emacs

Signed-off-by: Ville Skyttä <scop@xemacs.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agogitweb: Fix bug in "blobdiff" view for split (e.g. file to symlink) patches
Jakub Narebski [Thu, 5 Apr 2007 11:45:41 +0000 (13:45 +0200)]
gitweb: Fix bug in "blobdiff" view for split (e.g. file to symlink) patches

git_patchset_body needs patch generated with --full-index option to
detect split patches, meaning two patches which corresponds to single
difftree (raw diff) entry.  An example of such situation is changing
type (mode) of a file, e.g. from plain file to symbolic link.

Add, in git_blobdiff, --full-index option to patch generating git diff
invocation, for the 'html' format output ("blobdiff" view).

"blobdiff_plain" still uses shortened sha1 in the extended git diff
header "index <hash>..<hash>[ <mode>]" line.

Noticed-by: Martin Koegler <mkoegler@auto.tuwien.ac.at>
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
14 years agoDocument --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>
14 years agoRevert "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>
14 years agorename contrib/hooks/post-receieve-email to contrib/hooks/post-receive-email.
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>
14 years agorerere: 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>
14 years agoFix 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>
14 years agogit-gui: Brown paper bag fix division by 0 in blame
Shawn O. Pearce [Wed, 4 Apr 2007 16:08:46 +0000 (12:08 -0400)]
git-gui: Brown paper bag fix division by 0 in blame

If we generate a blame status string before we have obtained
any annotation data at all from the input file, or if the input
file is empty, our total_lines will be 0.  This causes a division
by 0 error when we blindly divide by the 0 to compute the total
percentage of lines loaded.  Instead we should report 0% done.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
14 years agoGIT 1.5.1 v1.5.1
Junio 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>
14 years agoMerge 1.5.0.7 in
Junio 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>
14 years agoGIT 1.5.0.7 v1.5.0.7
Junio 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>
14 years agoDocumentation: A few minor fixes to Git User's Manual
Jakub 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>
14 years agoPlug 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.

14 years agorerere should not repeat the earlier hunks in later ones
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>
14 years agoHopefully final update to the draft Release Notes, preparing for 1.5.1
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>