gitweb.git
config.txt: Document gitcvs.allbinaryFrank 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>

Do 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>

Use rev-list --reverse in git-rebase.shAlex 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>

handle_options in git wrapper miscounts the options... 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>

GIT 1.5.1.1 v1.5.1.1Junio 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>

cvsserver: Fix handling of diappeared files on updateFrank 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>

fsck: 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>

(encode_85, decode_85): Mark source buffer pointer... 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>

Documentation: show-ref: document --exclude-existingJulian 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>

cvsexportcommit -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>

Add Documentation/cmd-list.made to .gitignoreJunio 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>

git-svn: fix log command to avoid infinite loop on... 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>

git-svn: dcommit/rebase confused by patches with git... 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>

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

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

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

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

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

Prepare for 1.5.1.1Junio 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>

cvsserver: small corrections to asciidoc documentationFrank 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>

Documentation: 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>

Makefile: iconv() on Darwin has the old interfaceArjen 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>

t5300-pack-object.sh: portability issue using /usr... 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>

t3200-branch.sh: small language nitArjen 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>

usermanual.txt: some capitalization nitsArjen 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>

Make builtin-branch.c handle the git config fileLars 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>

rename_ref(): only print a warning when config-file... 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>

Distinguish 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>

Avoid 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>

cvsimport: Improve formating consistencyFrank 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>

cvsimport: Reorder options in documentation for better... 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>

cvsimport: Improve usage error reportingFrank 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>

cvsimport: Improve documentation of CVSROOT and CVS... 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>

cvsimport: sync usage lines with existing optionsFrank 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>

Fix lseek(2) calls with args 2 and 3 swappedDana 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>

Honor -p<n> when applying git diffsShawn 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>

Fix dependency of common-cmds.hJunio 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>

Fix renaming branch without config fileGeert 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>

DESTDIR support for git/contrib/emacsVille 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>

gitweb: Fix bug in "blobdiff" view for split (e.g.... 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>

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

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

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

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

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

Revert "builtin-archive: use RUN_SETUP"

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

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

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

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

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

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

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

rerere: make sorting really stable.

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

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

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

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

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

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

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

git-gui: Brown paper bag fix division by 0 in blameShawn 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>

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

GIT 1.5.1

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

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

Merge 1.5.0.7 in

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

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

GIT 1.5.0.7

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

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

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

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

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

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

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

Plug memory leak in index-pack collision checking codepath.

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

rerere should not repeat the earlier hunks in later ones

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

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

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

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

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

[PATCH] Improve look-and-feel of the gitk tool.Eygene Ryabinkin Tue, 27 Mar 2007 10:36:59 +0000 (14:36 +0400)

[PATCH] Improve look-and-feel of the gitk tool.

Made the default buttons on the dialog active and focused upon the
dialog appearence.

Bound 'Escape' and 'Return' keys to the dialog dismissal where it
was appropriate: mainly for dialogs with only one button and no
editable fields.

Unified the look of the "About gitk" and "Key bindings" dialogs.

Signed-off-by: Eygene Ryabinkin <rea-git@codelabs.ru>
Signed-off-by: Paul Mackerras <paulus@samba.org>

[PATCH] Teach gitk to use the user-defined UI font... Eygene Ryabinkin Tue, 27 Mar 2007 10:36:12 +0000 (14:36 +0400)

[PATCH] Teach gitk to use the user-defined UI font everywhere.

Some parts of gitk were not respecting the default GUI font. Most
of them were catched and fixed.

Signed-off-by: Eygene Ryabinkin <rea-git@codelabs.ru>
Signed-off-by: Paul Mackerras <paulus@samba.org>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

git rev-list --not --all

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

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

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

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

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

git push origin somebranch
git push origin sometag

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

git push origin sometag
git push origin somebranch

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

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

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

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

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

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

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

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

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

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

This fixes a problem reported by Randal Schwartz:

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

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

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

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

git-mailinfo fixes for patch munging

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

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

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

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

gitweb: Support comparing blobs (files) with different names

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

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

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

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

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

git diff [options] hpb:fp hp:f

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

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

Do not bother documenting fetch--tool

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

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

Update draft release notes for 1.5.1

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

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

Merge branch 'maint'

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

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

git-quiltimport /bin/sh-ism fix

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

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

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

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

Bisect: Improve error message in "bisect_next_check".

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

mergetool: Fix abort command when resolving symlinks and deleted files

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

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

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

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

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

mergetool: factor out common code

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Fix minor formatting issue in man page for git-mergetool

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Documentation/git-svnimport.txt: fix typo.

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

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

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

GIT 1.5.1-rc3

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

Update main git.html page to point at 1.5.0.6 documentation

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

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

Merge branch 'maint' to synchronize with 1.5.0.6

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

GIT 1.5.0.6

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

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

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

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

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

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

t4118: be nice to non-GNU sed

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

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

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

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

Especially this tests i18n messages and encoding header.

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

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

Fix "--pretty=format:" encoding item

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Merge branch 'master' into next

* master:
Bisect: Use
commit c0ce981f5ebfd02463ff697b2fca52c7a54b0625
1174889646 -0700

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

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

use xrealloc in help.c

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

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

read-tree: use xcalloc

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

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

Fix "getaddrinfo()" buglet

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

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

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

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

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

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

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

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

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

Makefile: remove test-chmtime program in target clean.

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

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

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

gitweb: Cleanup and uniquify die_error calls

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