Code

git.git
17 years agot6030: add a bit more tests to git-bisect
Junio C Hamano [Fri, 6 Apr 2007 05:52:37 +0000 (22:52 -0700)]
t6030: add a bit more tests to git-bisect

Verify that git-bisect does not start before getting one bad and
one good commit.

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agogit-bisect: modernization
Junio C Hamano [Fri, 6 Apr 2007 05:51:14 +0000 (22:51 -0700)]
git-bisect: modernization

This slightly modernizes the bisect script to use show-ref/for-each-ref
instead of looking into $GIT_DIR/refs files directly.

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoDocumentation: bisect: "start" accepts one bad and many good commits
Christian Couder [Thu, 5 Apr 2007 03:33:53 +0000 (05:33 +0200)]
Documentation: bisect: "start" accepts one bad and many good commits

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoBisect: teach "bisect start" to optionally use one bad and many good revs.
Christian Couder [Wed, 4 Apr 2007 05:12:02 +0000 (07:12 +0200)]
Bisect: teach "bisect start" to optionally use one bad and many good revs.

One bad commit is fundamentally needed for bisect to run,
and if we beforehand know more good commits, we can narrow
the bisect space down without doing the whole tree checkout
every time we give good commits.

This patch implements:

    git bisect start [<bad> [<good>...]] [--] [<pathspec>...]

as a short-hand for this command sequence:

    git bisect start
    git bisect bad $bad
    git bisect good $good1 $good2...

On the other hand, there may be some confusion between revs
(<bad> and <good>...) and <pathspec>... if -- is not used
and if an invalid rev or a pathspec that looks like a rev is
given.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoFix passing of TCLTK_PATH to git-gui
Alex Riesen [Thu, 5 Apr 2007 19:31:53 +0000 (21:31 +0200)]
Fix passing of TCLTK_PATH to git-gui

GNU make does not include environment variables by default
in its namespace. Just pass them in make command line.

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoRename add_file_to_index() to add_file_to_cache()
Junio C Hamano [Mon, 2 Apr 2007 05:14:40 +0000 (22:14 -0700)]
Rename add_file_to_index() to add_file_to_cache()

This function was not called "add_file_to_cache()" only because
an ancient program, update-cache, used that name as an internal
function name that does something slightly different.  Now that
is gone, we can take over the better name.

The plan is to name all functions that operate on the default
index xxx_cache().  Later patches create a variant of them that
take an explicit parameter xxx_index(), and then turn
xxx_cache() functions into macros that use "the_index".

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoRename static variable write_index to update_index in builtin-apply.c
Junio C Hamano [Mon, 2 Apr 2007 05:46:06 +0000 (22:46 -0700)]
Rename static variable write_index to update_index in builtin-apply.c

This is an internal variable used to tell if we need to write
out the resulting index.

I'll be introducing write_index() function which would collide
with it.

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoRename internal function "add_file_to_cache" in builtin-update-index.c
Junio C Hamano [Mon, 2 Apr 2007 05:07:26 +0000 (22:07 -0700)]
Rename internal function "add_file_to_cache" in builtin-update-index.c

I'd like to consistently name all index-layer functions that
operate on the default index xxx_cache(), and this application
specific function interferes with the plan.

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoPropagate cache error internal to refresh_cache() via parameter.
Junio C Hamano [Mon, 2 Apr 2007 04:34:34 +0000 (21:34 -0700)]
Propagate cache error internal to refresh_cache() via parameter.

The function refresh_cache() is the only user of cache_errno
that switches its behaviour based on what internal function
refresh_cache_entry() finds; pass the error status back in a
parameter passed down to it, to get rid of the global variable
cache_errno.

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoFix bogus error message from merge-recursive error path
Junio C Hamano [Mon, 2 Apr 2007 04:13:27 +0000 (21:13 -0700)]
Fix bogus error message from merge-recursive error path

This error message should not usually trigger, but the function
make_cache_entry() called by add_cacheinfo() can return early
without calling into refresh_cache_entry() that sets cache_errno.

Also the error message had a wrong function name reported, and
it did not say anything about which path failed either.

Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoShow binary file size change in diff --stat
Andy Parkins [Wed, 4 Apr 2007 13:14:14 +0000 (13:14 +0000)]
Show binary file size change in diff --stat

Previously, a binary file in the diffstat would show as:

 some-binary-file.bin       |  Bin

The space after the "Bin" was never used.  This patch changes binary
lines in the diffstat to be:

 some-binary-file.bin       |  Bin 12345 -> 123456 bytes

The very nice "->" notation was suggested by Johannes Schindelin, and
shows the before and after sizes more clearly than "+" and "-" would.
If a size is 0 it's not shown (although it would probably be better to
treat no-file differently from zero-byte-file).

The user can see what changed in the binary file, and how big the new
file is.  This is in keeping with the information in the rest of the
diffstat.

The diffstat_t members "added" and "deleted" were unused when the file
was binary, so this patch loads them with the file sizes in
builtin_diffstat().  These figures are then read in show_stats() when
the file is marked binary.

Signed-off-by: Andy Parkins <andyparkins@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoFix lost-found to show commits only referenced by reflogs
Shawn O. Pearce [Wed, 4 Apr 2007 14:46:14 +0000 (10:46 -0400)]
Fix lost-found to show commits only referenced by reflogs

Prior to 1.5.0 the git-lost-found utility was useful to locate
commits that were not referenced by any ref.  These were often
amends, or resets, or tips of branches that had been deleted.
Being able to locate a 'lost' commit and recover it by creating a
new branch was a useful feature in those days.

Unfortunately 1.5.0 added the reflogs to the reachability analysis
performed by git-fsck, which means that most commits users would
consider to be lost are still reachable through a reflog.  So most
(or all!) commits are reachable, and nothing gets output from
git-lost-found.

Now git-fsck can be told to ignore reflogs during its reachability
analysis, making git-lost-found useful again to locate commits
that are no longer referenced by a ref itself, but may still be
referenced by a reflog.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoclean up and optimize nth_packed_object_sha1() usage
Nicolas Pitre [Wed, 4 Apr 2007 20:49:04 +0000 (16:49 -0400)]
clean up and optimize nth_packed_object_sha1() usage

Let's avoid the open coded pack index reference in pack-object and use
nth_packed_object_sha1() instead.  This will help encapsulating index
format differences in one place.

And while at it there is no reason to copy SHA1's over and over while a
direct pointer to it in the index will do just fine.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Acked-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
17 years agoRPM 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>
17 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>
17 years agogitweb: Quote hash keys, and do not use barewords keys
Jakub 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>
17 years agogitweb: Whitespace cleanup - tabs are for indent, spaces are for align (3)
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>
17 years agoMerge 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.

17 years agoMerge 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

17 years agoMerge 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

17 years agoMerge 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

17 years agoMerge 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.

17 years agoMerge 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.

17 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>
17 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>
17 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>
17 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>
17 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.

17 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>
17 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>
17 years agoOptional 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>
17 years agoEliminate 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>
17 years agoRewrite 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>
17 years agoAdd --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>
17 years agoNO_TCLTK
Eygene 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>
17 years agoAdded 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>
17 years agoRemove unused WITH_OWN_SUBPROCESS_PY from RPM spec
Brian 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>
17 years agoAdded 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>
17 years agoAdd 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>
17 years agogit-blame.el: pick a set of random colors for each git-blame turn
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>
17 years agogit-blame.el: separate git-blame-mode to ease maintenance
Xavier 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>
17 years agoOptimize 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>
17 years agocvsserver: Don't lie about binary mode in asciidoc documentation
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>
17 years agogit-svn: fail on rebase if we are unable to find a ref to rebase against
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>
17 years agoKeep rename/rename conflicts of intermediate merges while doing recursive merge
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>
17 years agocontrib/workdir: add a simple script to create a working directory
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>
17 years agoReimplement emailing part of hooks--update in contrib/hooks/post-receive-email
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>
17 years agogit-svn: avoid respewing similar error messages for missing paths
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>
17 years agoRename warn() to warning() to fix symbol conflicts on BSD and Mac OS
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>
17 years agogit-mailinfo fixes for patch munging
Don 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>
17 years agogitweb: Support comparing blobs (files) with different names
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>
17 years agoDo not bother documenting fetch--tool
Junio 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>
17 years agoUpdate draft release notes for 1.5.1
Junio 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>
17 years agoMerge 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.

17 years agogit-quiltimport /bin/sh-ism fix
Francis 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>
17 years agoBisect: 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>
17 years agoMerge branch 'master' of git://repo.or.cz/git/mergetool.git
Junio 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

17 years agomergetool: Clean up description of files and prompts for merge resolutions
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>
17 years agomergetool: Make git-rm quiet when resolving a deleted file conflict
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>
17 years agomergetool: Add support for Apple Mac OS X's opendiff command
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>
17 years agomergetool: Fix abort command when resolving symlinks and deleted files
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>
17 years agomergetool: Remove spurious error message if merge.tool config option not set
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>
17 years agomergetool: factor out common code
Theodore 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>
17 years agomergetool: portability fix: don't use reserved word function
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>
17 years agomergetool: portability fix: don't assume true is in /bin
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>
17 years agomergetool: Don't error out in the merge case where the local file is deleted
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>
17 years agomergetool: Replace use of "echo -n" with printf(1) to be more portable
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>
17 years agoFix minor formatting issue in man page for git-mergetool
Theodore 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>
17 years agogit-upload-pack: make sure we close unused pipe ends
H. 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)

17 years agoDocumentation/git-rev-parse.txt: fix example in SPECIFYING RANGES.
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>
17 years agoDocumentation/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>
17 years agoDocumentation: 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>
17 years agoDocumentation: Add version information to man pages
Frank 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>
17 years agoDocumentation: Replace @@GIT_VERSION@@ in documentation
Frank 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>
17 years agoGIT 1.5.1-rc3 v1.5.1-rc3
Junio C Hamano [Wed, 28 Mar 2007 22:58:09 +0000 (15:58 -0700)]
GIT 1.5.1-rc3

17 years agoUpdate main git.html page to point at 1.5.0.6 documentation
Junio 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>
17 years agoMerge branch 'maint' to synchronize with 1.5.0.6
Junio C Hamano [Wed, 28 Mar 2007 22:39:57 +0000 (15:39 -0700)]
Merge branch 'maint' to synchronize with 1.5.0.6

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

17 years agocommit: 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>
17 years agot4118: be nice to non-GNU sed
Johannes 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>
17 years agot/t6006: add tests for a slightly more complex commit messages
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>
17 years agoFix "--pretty=format:" encoding item
Jeff 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>
17 years agoFix "--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>
17 years agohttp-fetch: remove path_len from struct alt_base, it was computed but never used
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>
17 years agohttp-fetch: don't use double-slash as directory separator in URLs
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>
17 years agogit-commit: "read-tree -m HEAD" is not the right way to read-tree quickly
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>
17 years agoAdd some basic tests of rev-list --pretty=format
Jeff 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>
17 years agogit-upload-pack: make sure we close unused pipe ends
H. 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>
17 years ago--pretty=format: fix broken %ct and %at interpolation
Jeff 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>
17 years agouse xrealloc in help.c
James 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>
17 years agoread-tree: use xcalloc
James 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>
17 years agoFix "getaddrinfo()" buglet
Linus 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>
17 years agoMakefile: 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>
17 years agogitweb: Cleanup and uniquify die_error calls
Jakub 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>
17 years agosha1_file.c (write_sha1_file): Detect close failure
Junio 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>
17 years agogit.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>
17 years agoDocument git-log --first-parent
Junio 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>
17 years agoBisect: add checks at the beginning of "git bisect run".
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>
17 years agosha1_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>
17 years agogit-rm: don't remove newly added file without -f
Jeff King [Mon, 26 Mar 2007 18:55:39 +0000 (14:55 -0400)]
git-rm: don't remove newly added file without -f

Given this set of commands:

  $ echo "newly added file" >new
  $ git add new
  $ git rm new

the file "new" was previously removed from the working
directory and the index. Because it was not in HEAD, it is
available only by searching for unreachable objects.

Instead, we now err on the safe side and refuse to remove
a file which is not referenced by HEAD.

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