gitweb.git
tutorial: update output of git commitJeff King Sat, 4 Oct 2008 02:13:49 +0000 (22:13 -0400)

tutorial: update output of git commit

Commit c85db254 changed the format of the message produced
by "git commit" when creating a commit. This patch updates
the example session in the tutorial to the new format.

It also adds in the missing diffstat summary lines, which
should have been added long ago.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Fix fetch/clone --quiet when stdout is connectedTuncer Ayaz Sun, 5 Oct 2008 13:53:00 +0000 (15:53 +0200)

Fix fetch/clone --quiet when stdout is connected

Fixes the `git clone --quiet` issue raised by Dave Jones in
http://marc.info/?l=git&m=121529226023180&w=2

With this simple patch applied we no longer see the following remote
messages as no-progress is correctly sent to the remote site:

remote: Counting objects: 84102, done.
remote: Compressing objects: 100% (24720/24720), done.
remote: Total 84102 (delta 60949), reused 80810 (delta 57900)

Signed-off-by: Tuncer Ayaz <tuncer.ayaz@gmail.com>
Acked-by: Daniel Barkalow <barkalow@iabervon.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

builtin-blame: Fix blame -C -C with submodules.Alexander Gavrilov Fri, 3 Oct 2008 16:23:50 +0000 (20:23 +0400)

builtin-blame: Fix blame -C -C with submodules.

When performing copy detection, git-blame tries to
read gitlinks as blobs, which causes it to die.

This patch adds a check to skip them.

Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

bash: remove fetch, push, pull dashed form leftoversSZEDER Gábor Fri, 3 Oct 2008 19:34:49 +0000 (21:34 +0200)

bash: remove fetch, push, pull dashed form leftovers

We don't provide complation for git-commands in dashed form anymore,
so there is no need to keep those cases.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Tested-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

builtin-commit: use reduce_heads() only when appropriateMiklos Vajna Fri, 3 Oct 2008 12:04:47 +0000 (14:04 +0200)

builtin-commit: use reduce_heads() only when appropriate

Since commit 6bb6b034 (builtin-commit: use commit_tree(), 2008-09-10),
builtin-commit performs a reduce_heads() unconditionally. However,
it's not always needed, and in some cases even harmful.

reduce_heads() is not needed for the initial commit or for an
"ordinary" commit, because they don't have any or have only one
parent, respectively.

reduce_heads() must be avoided when 'git commit' is run after a 'git
merge --no-ff --no-commit', otherwise it will turn the
non-fast-forward merge into fast-forward. For the same reason,
reduce_heads() must be avoided when amending such a merge commit.

To resolve this issue, 'git merge' will write info about whether
fast-forward is allowed or not to $GIT_DIR/MERGE_MODE. Based on this
info, 'git commit' will only perform reduce_heads() when it's
committing a merge and fast-forward is enabled.

Also add test cases to ensure that non-fast-forward merges are
committed and amended properly.

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

builtin-merge: refresh the index before calling a strategyMiklos Vajna Fri, 3 Oct 2008 13:02:31 +0000 (15:02 +0200)

builtin-merge: refresh the index before calling a strategy

In case a file is touched but has no real changes then we just have to
update the index and should not error out.

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Makefile: do not set NEEDS_LIBICONV for Solaris 8Jeff King Fri, 3 Oct 2008 06:39:36 +0000 (02:39 -0400)

Makefile: do not set NEEDS_LIBICONV for Solaris 8

This breaks my build on Solaris 8, as there is no separate
libiconv.

The history of this line is somewhat convoluted. In 2fd955c
(in November 2005), NEEDS_LIBICONV was turned on for all
Solaris builds, claiming to "fix an error in Solaris 10 by
setting NEEDS_LIBICONV".

Later, e15f545 (in February of 2006) claimed that "Solaris
9+ don't need iconv", and moved NEEDS_LIBICONV into a
section for Solaris 8.

Furthermore, Brandon Casey claims in

<5A1KxlhmUIHe8iXPxnXYuNXsq0Yjlbwkz2eBin3z7ELuL9nK-4tSpw@cipher.nrlssc.navy.mil>

that he does not set NEEDS_LIBICONV for Solaris 7.

So either one of those commits is totally wrong, or there is
some other magic going on where some Solaris installs need
it and others don't.

Given Brandon's statement and my problems on Solaris 8 with
NEEDS_LIBICONV, I am inclined to think the first commit was
bogus, and that NEEDS_LIBICONV shouldn't be set for Solaris
at all by default. If somebody wants to use iconv and has
installed it manually, they can set it in their config.mak.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

rebase -i: remove leftover debuggingSZEDER Gábor Fri, 3 Oct 2008 09:33:20 +0000 (11:33 +0200)

rebase -i: remove leftover debugging

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Merge branch 'pb/gitweb-tagcloud' into pb/gitwebShawn O. Pearce Fri, 3 Oct 2008 14:41:25 +0000 (07:41 -0700)

Merge branch 'pb/gitweb-tagcloud' into pb/gitweb

* pb/gitweb-tagcloud:
gitweb: Support for simple project search form
gitweb: Make the by_tag filter delve in forks as well
gitweb: Support for tag clouds
... (+ many updates from master) ...

Conflicts:
gitweb/gitweb.perl

gitweb: Support for simple project search formPetr Baudis Fri, 3 Oct 2008 07:29:45 +0000 (09:29 +0200)

gitweb: Support for simple project search form

This is a trivial patch adding support for searching projects by name
and description, making use of the "infrastructure" provided by the
tag cloud generation.

Signed-off-by: Petr Baudis <petr.baudis@novartis.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

gitweb: Make the by_tag filter delve in forks as wellPetr Baudis Thu, 2 Oct 2008 15:17:01 +0000 (17:17 +0200)

gitweb: Make the by_tag filter delve in forks as well

This requires us to build a full index including forks and then weed
them out only when printing.

Signed-off-by: Petr Baudis <petr.baudis@novartis.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

gitweb: Support for tag cloudsPetr Baudis Thu, 2 Oct 2008 15:13:02 +0000 (17:13 +0200)

gitweb: Support for tag clouds

The "Content tags" (nothing to do with usual Git tags!) are free-form
strings that are attached to random projects and displayed in the
well-known Web2.0-ish tag cloud above project list.

The feature will make use of HTML::TagCloud if available, but will
still display (less pretty) list of tags in case the module is not
installed.

The tagging itself is not done by gitweb - user-provided external
helper CGI needs to be provided; one example is the tagproj.cgi
of Girocco. This functionality might get integrated to gitweb
in the future.

The tags are stored one-per-file in ctags/ subdirectory. The reason
they are not stored in the project config file is that you usually
want to give anyone (even CGI scripts) permission to create new tags
and they are non-essential information, and thus you would make
the ctags/ subdirectory world-writable.

Signed-off-by: Petr Baudis <petr.baudis@novartis.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

rebase -i: proper prepare-commit-msg hook argument... SZEDER Gábor Fri, 3 Oct 2008 00:08:21 +0000 (02:08 +0200)

rebase -i: proper prepare-commit-msg hook argument when squashing

One would expect that the prepare-commit-msg hook gets 'squash' as the
second argument when squashing commits with 'rebase -i'. However,
that was not the case, as it got 'merge' instead. This patch fixes
the problem.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

bash completion: Add --[no-]validate to "git send-email"Teemu Likonen Sun, 28 Sep 2008 04:51:21 +0000 (07:51 +0300)

bash completion: Add --[no-]validate to "git send-email"

Signed-off-by: Teemu Likonen <tlikonen@iki.fi>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

gitweb: Add support for extending the action bar with... Petr Baudis Thu, 2 Oct 2008 14:36:52 +0000 (16:36 +0200)

gitweb: Add support for extending the action bar with custom links

This makes it possible to easily extend gitweb with custom functionality,
e.g. git-browser or web-based repository administration system like
the repo.or.cz/Girocco duct tape.

Signed-off-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

parse-opt: migrate builtin-merge-file.Pierre Habouzit Thu, 2 Oct 2008 12:59:20 +0000 (14:59 +0200)

parse-opt: migrate builtin-merge-file.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

parse-opt: migrate git-merge-base.Pierre Habouzit Thu, 2 Oct 2008 12:59:19 +0000 (14:59 +0200)

parse-opt: migrate git-merge-base.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

parse-opt: migrate fmt-merge-msg.Pierre Habouzit Thu, 2 Oct 2008 12:59:18 +0000 (14:59 +0200)

parse-opt: migrate fmt-merge-msg.

Also fix an inefficient printf("%s", ...) where we can use write_in_full.

Signed-off-by: Pierre Habouzit <madcoder@debian.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

xdiff-interface.c: strip newline (and cr) from line... Brandon Casey Wed, 1 Oct 2008 19:28:26 +0000 (14:28 -0500)

xdiff-interface.c: strip newline (and cr) from line before pattern matching

POSIX doth sayeth:

"In the regular expression processing described in IEEE Std 1003.1-2001,
the <newline> is regarded as an ordinary character and both a period and
a non-matching list can match one. ... Those utilities (like grep) that
do not allow <newline>s to match are responsible for eliminating any
<newline> from strings before matching against the RE."

Thus far git has not been removing the trailing newline from strings matched
against regular expression patterns. This has the effect that (quoting
Jonathan del Strother) "... a line containing just 'FUNCNAME' (terminated by
a newline) will be matched by the pattern '^(FUNCNAME.$)' but not
'^(FUNCNAME$)'", and more simply not '^FUNCNAME$'.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

tests: add a testcase for "git submodule sync"David Aguilar Thu, 2 Oct 2008 09:11:55 +0000 (02:11 -0700)

tests: add a testcase for "git submodule sync"

This testcase ensures that upstream changes to submodule properties
can be updated using the sync subcommand. This particular test
changes the submodule URL upstream and uses the sync command to update
an existing checkout.

Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Merge branch 'maint'Shawn O. Pearce Fri, 3 Oct 2008 01:16:22 +0000 (18:16 -0700)

Merge branch 'maint'

* maint:
gitweb: Add path_info tests to t/t9500-gitweb-standalone-no-errors.sh
gitweb: Fix two 'uninitialized value' warnings in git_tree()
Solaris: Use OLD_ICONV to avoid compile warnings
gitweb: remove PATH_INFO from $my_url and $my_uri

fix openssl headers conflicting with custom SHA1 implem... Nicolas Pitre Wed, 1 Oct 2008 18:05:20 +0000 (14:05 -0400)

fix openssl headers conflicting with custom SHA1 implementations

On ARM I have the following compilation errors:

CC fast-import.o
In file included from cache.h:8,
from builtin.h:6,
from fast-import.c:142:
arm/sha1.h:14: error: conflicting types for 'SHA_CTX'
/usr/include/openssl/sha.h:105: error: previous declaration of 'SHA_CTX' was here
arm/sha1.h:16: error: conflicting types for 'SHA1_Init'
/usr/include/openssl/sha.h:115: error: previous declaration of 'SHA1_Init' was here
arm/sha1.h:17: error: conflicting types for 'SHA1_Update'
/usr/include/openssl/sha.h:116: error: previous declaration of 'SHA1_Update' was here
arm/sha1.h:18: error: conflicting types for 'SHA1_Final'
/usr/include/openssl/sha.h:117: error: previous declaration of 'SHA1_Final' was here
make: *** [fast-import.o] Error 1

This is because openssl header files are always included in
git-compat-util.h since commit 684ec6c63c whenever NO_OPENSSL is not
set, which somehow brings in <openssl/sha1.h> clashing with the custom
ARM version. Compilation of git is probably broken on PPC too for the
same reason.

Turns out that the only file requiring openssl/ssl.h and openssl/err.h
is imap-send.c. But only moving those problematic includes there
doesn't solve the issue as it also includes cache.h which brings in the
conflicting local SHA1 header file.

As suggested by Jeff King, the best solution is to rename our references
to SHA1 functions and structure to something git specific, and define those
according to the implementation used.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

archive.c: make archiver staticNanako Shiraishi Thu, 2 Oct 2008 10:14:33 +0000 (19:14 +0900)

archive.c: make archiver static

This variable is not used anywhere outside.

Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

commit.c: make read_graft_file() staticNanako Shiraishi Thu, 2 Oct 2008 10:14:30 +0000 (19:14 +0900)

commit.c: make read_graft_file() static

This function is not called by any other file.

Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

config.c: make git_parse_long() staticNanako Shiraishi Thu, 2 Oct 2008 10:14:27 +0000 (19:14 +0900)

config.c: make git_parse_long() static

This function is not used in any other file.

Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

run-command.c: remove run_command_v_opt_cd()Nanako Shiraishi Thu, 2 Oct 2008 10:14:25 +0000 (19:14 +0900)

run-command.c: remove run_command_v_opt_cd()

This function is not used anywhere.

Johannes Sixt <johannes.sixt@telecom.at>:
> Future callers can use run_command_v_opt_cd_env() instead.

Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

dir.c: make dir_add_name() and dir_add_ignored() staticNanako Shiraishi Thu, 2 Oct 2008 10:14:23 +0000 (19:14 +0900)

dir.c: make dir_add_name() and dir_add_ignored() static

These functions are not used by any other file.

Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

gitweb: Add path_info tests to t/t9500-gitweb-standalon... Jakub Narebski Thu, 2 Oct 2008 14:52:20 +0000 (16:52 +0200)

gitweb: Add path_info tests to t/t9500-gitweb-standalone-no-errors.sh

Note that those tests only check that there are no errors nor
warnings from Perl; they do not check for example if gitweb doesn't
use ARRAY(0x8e3cc20) instead of correct value in links, etc.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Acked-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

gitweb: Fix two 'uninitialized value' warnings in git_t... Jakub Narebski Thu, 2 Oct 2008 14:50:04 +0000 (16:50 +0200)

gitweb: Fix two 'uninitialized value' warnings in git_tree()

If we did try to access nonexistent directory or file, which means
that git_get_hash_by_path() returns `undef`, uninitialized $hash
variable was passed to 'open' call. Now we fail early with "404 Not
Found - No such tree" error. (If we try to access something which
does not resolve to tree-ish, for example a file / 'blob' object, the
error will be caught later, as "404 Not Found - Reading tree failed"
error).

If we tried to use 'tree' action without $file_name ('f' parameter)
set, which means either tree given by hash or a top tree (and we
currently cannot distinguish between those two cases), we cannot print
path breadcrumbs with git_print_page_path(). Fix this by moving call
to git_print_page_path() inside conditional.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Acked-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

gitweb: Identify all summary metadata table rowsPetr Baudis Thu, 2 Oct 2008 14:25:05 +0000 (16:25 +0200)

gitweb: Identify all summary metadata table rows

In the metadata table of the summary page, all rows have their
id (or class in case of URL) set now. This for example lets sites
easily disable fields they do not want to show in their custom
stylesheet (e.g. they are overly technical or irrelevant for the site).

Signed-off-by: Petr Baudis <petr.baudis@novartis.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Solaris: Use OLD_ICONV to avoid compile warningsDavid Soria Parra Thu, 2 Oct 2008 00:08:47 +0000 (02:08 +0200)

Solaris: Use OLD_ICONV to avoid compile warnings

Solaris systems use the old styled iconv(3) call and therefore
the OLD_ICONV variable should be set. Otherwise we get annoying compile
warnings.

Signed-off-by: David Soria Parra <dsp@php.net>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

gitweb: remove PATH_INFO from $my_url and $my_uriGiuseppe Bilotta Mon, 29 Sep 2008 13:07:42 +0000 (15:07 +0200)

gitweb: remove PATH_INFO from $my_url and $my_uri

This patch fixes PATH_INFO handling by removing the relevant part from
$my_url and $my_uri, thus making it unnecessary to specify them by hand
in the gitweb configuration.

Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Acked-by: Jakub Narebski <jnareb@gmail.com>
Acked-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

config.c: Tolerate UTF8 BOM at the beginning of config... Petr Baudis Wed, 1 Oct 2008 20:13:02 +0000 (22:13 +0200)

config.c: Tolerate UTF8 BOM at the beginning of config file

Unfortunately, the abomination of Windows Notepad likes to scatted
non-sensical UTF8 BOM marks across text files it edits. This is
especially troublesome when editing the Git configuration file,
and it does not appear to be particularly harmful to teach Git
to deal with this poo in the configfile.

Signed-off-by: Petr Baudis <petr.baudis@novartis.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

gitweb: Quote non-displayable characters in hex, not... Petr Baudis Wed, 1 Oct 2008 20:11:54 +0000 (22:11 +0200)

gitweb: Quote non-displayable characters in hex, not octal

For the last 30 years, the mankind uses the octal representation of
characters only in rare cases and most character codes are hardly
recognizable in octal. In contrast, many programmers still know
hexadecimal well and that is also the representation of choice e.g.
for Unicode codepoints.

Signed-off-by: Petr Baudis <petr.baudis@novartis.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

reformat informational commit messageJeff King Wed, 1 Oct 2008 22:31:25 +0000 (18:31 -0400)

reformat informational commit message

When committing, we print a message like:

Created [DETACHED commit] <hash> (<subject>) on <branch>

The most useful bit of information there (besides the
detached status, if it is present) is which branch you made
the commit on. However, it is sometimes hard to see because
the subject dominates the line.

Instead, let's put the most useful information (detached
status and commit branch) on the far left, with the subject
(which is least likely to be interesting) on the far right.

We'll use brackets to offset the branch name so the line is
not mistaken for an error line of the form "program: some
sort of error". E.g.,:

[jk/bikeshed] created bd8098f: "reformat informational commit message"

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

git grep: Add "-z/--null" option as in GNU's grep.Raphael Zimmerer Wed, 1 Oct 2008 16:11:15 +0000 (18:11 +0200)

git grep: Add "-z/--null" option as in GNU's grep.

Here's a trivial patch that adds "-z" and "--null" options to "git
grep". It was discussed on the mailing-list that git's "-z"
convention should be used instead of GNU grep's "-Z".
So things like 'git grep -l -z "$FOO" | xargs -0 sed -i "s/$FOO/$BOO/"'
do work now.

Signed-off-by: Raphael Zimmerer <killekulla@rdrz.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

send-email: signedoffcc -> signedoffbycc, but handle... Michael Witten Tue, 30 Sep 2008 12:58:32 +0000 (07:58 -0500)

send-email: signedoffcc -> signedoffbycc, but handle both

The documentation now mentions sendemail.signedoffbycc instead
of sendemail.signedoffcc in order to match with the options
--signed-off-by-cc; the code has been updated to reflect this
as well, but sendemail.signedoffcc is still handled.

Signed-off-by: Michael Witten <mfwitten@mit.edu>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Docs: send-email: Create logical groupings for man... Michael Witten Tue, 30 Sep 2008 12:58:31 +0000 (07:58 -0500)

Docs: send-email: Create logical groupings for man text

The options are partitioned into more digestible groups.
Within these groups, the options are sorted alphabetically.

Signed-off-by: Michael Witten <mfwitten@mit.edu>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Docs: send-email: Create logical groupings for --help... Michael Witten Tue, 30 Sep 2008 12:58:30 +0000 (07:58 -0500)

Docs: send-email: Create logical groupings for --help text

The options are partitioned into more digestible groups.

Signed-off-by: Michael Witten <mfwitten@mit.edu>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Docs: send-email: Remove unnecessary config variable... Michael Witten Tue, 30 Sep 2008 12:58:29 +0000 (07:58 -0500)

Docs: send-email: Remove unnecessary config variable description

The config variables are mentioned within the descriptions of the
command line options with which they are associated.

Signed-off-by: Michael Witten <mfwitten@mit.edu>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Docs: send-email: --chain_reply_to -> --[no-]chain... Michael Witten Tue, 30 Sep 2008 12:58:28 +0000 (07:58 -0500)

Docs: send-email: --chain_reply_to -> --[no-]chain-reply-to

Signed-off-by: Michael Witten <mfwitten@mit.edu>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

send-email: change --no-validate to boolean --[no-... Michael Witten Tue, 30 Sep 2008 12:58:27 +0000 (07:58 -0500)

send-email: change --no-validate to boolean --[no-]validate

There is also now a configuration variable:

sendemail[.<identity>].validate

Signed-off-by: Michael Witten <mfwitten@mit.edu>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Docs: send-email: Man page option orderingMichael Witten Tue, 30 Sep 2008 12:58:26 +0000 (07:58 -0500)

Docs: send-email: Man page option ordering

Now the man page lists the options in alphabetical
order (in terms of the 'main' part of an option's
name).

Signed-off-by: Michael Witten <mfwitten@mit.edu>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Docs: send-email usage text much sexierMichael Witten Tue, 30 Sep 2008 12:58:25 +0000 (07:58 -0500)

Docs: send-email usage text much sexier

All of the descriptions are aligned, shorter,
better arranged, and no line is greater than
78 columns.

Signed-off-by: Michael Witten <mfwitten@mit.edu>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Docs: send-email's usage text and man page mention... Michael Witten Tue, 30 Sep 2008 12:58:24 +0000 (07:58 -0500)

Docs: send-email's usage text and man page mention same options

Specifically, boolean options are now listed in the form

--[no-]option

and both forms of documentation now consistently use

--[no-]signed-off-by-cc

Signed-off-by: Michael Witten <mfwitten@mit.edu>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

gitweb: Sort the list of forks on the summary page... Mike Ralphson Thu, 25 Sep 2008 16:48:48 +0000 (18:48 +0200)

gitweb: Sort the list of forks on the summary page by age

The list of forks on the summary page was unsorted, this just makes
them sorted by age, which seems a fair way to decide which forks are
shown before the list size cut-off (15) kicks in.

s/noheader/no_header was just to make it obvious what the parameter
affects, so all the code can be found with one grep.

pb: As suggested by Mike, I have augmented this by an additional patch
that refactors the sorting logic so that it is not tied to printing
the headers.

Signed-off-by: Mike Ralphson <mike@abacus.co.uk>
Signed-off-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

gitweb: Clean-up sorting of project listPetr Baudis Thu, 25 Sep 2008 16:48:37 +0000 (18:48 +0200)

gitweb: Clean-up sorting of project list

This decouples the sorting of project list and printing the column
headers, so that the project list can be easily sorted even when
the headers are not shown.

Signed-off-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Merge branch 'maint'Shawn O. Pearce Wed, 1 Oct 2008 15:56:36 +0000 (08:56 -0700)

Merge branch 'maint'

* maint:
Improve git-log documentation wrt file filters
Documentation: remove '\' in front of short options

Improve git-log documentation wrt file filtersmartin f. krafft Tue, 30 Sep 2008 19:57:50 +0000 (21:57 +0200)

Improve git-log documentation wrt file filters

The need for "--" in the git-log synopsis was previously unclear and
confusing. This patch makes it a little clearer.

Thanks to hyy <yiyihu@gmail.com> for his help.

[sp: Changed -- to \-- per prior commit e1ccf53.]

Signed-off-by: martin f. krafft <madduck@madduck.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Documentation: remove '\' in front of short optionsSZEDER Gábor Tue, 30 Sep 2008 17:27:10 +0000 (19:27 +0200)

Documentation: remove '\' in front of short options

... because they show up in the man and html outputs.

This escaping is only needed for double dashes to be compatible with
older asciidoc versions; see commit e1ccf53 ([PATCH] Escape asciidoc's
built-in em-dash replacement, 2005-09-12).

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

rebase: Support preserving merges in non-interactive... Andreas Ericsson Mon, 29 Sep 2008 20:28:57 +0000 (22:28 +0200)

rebase: Support preserving merges in non-interactive mode

As a result of implementation details, 'git rebase' could
previously only preserve merges in interactive mode. That
limitation was hard for users to understand and awkward to
explain.

This patch works around it by running the interactive rebase
helper git-rebase--interactive with GIT_EDITOR set to ':'
when the user passes "-p" but not "-i" to the rebase command.
The effect is that the interactive rebase helper is used but
the user never sees an editor.

The test-case included in this patch was originally written
by Stephen Habermann <stephen@exigencecorp.com>, but has
been extensively modified since its creation.

Signed-off-by: Andreas Ericsson <ae@op5.se>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

git commit: Reformat output somewhatAndreas Ericsson Tue, 30 Sep 2008 09:52:50 +0000 (11:52 +0200)

git commit: Reformat output somewhat

Previously, we used to print something along the lines of

Created commit abc9056 on master: Snib the sprock

but that output was sometimes confusing, as many projects use
the "subsystem: message" style of commit subjects (just like
this commit message does). When such improvements are done on
topic-branches, it's not uncommon to name the topic-branch the
same as the subsystem, leading to output like this:

Created commit abc9056 on i386: i386: Snib the sprock

which doesn't look very nice and can be highly confusing.
This patch alters the format so that the noise-word "commit"
is dropped except when it makes the output read better and
the commit subject is put inside parentheses. We also
emphasize the detached case so that users do not overlook it
in case the commit subject is long enough to extend to the
next line. The end result looks thusly:

normal case
Created abc9056 (i386: Snib the sprock) on i386

detached head
Created DETACHED commit abc9056 (i386: Snib the sprock)

While we're at it, we rename "initial commit" to "root-commit"
to align it with the argument to 'git log', producing this:

initial commit
Created root-commit abc9056 (i386: Snib the sprock) on i386

Documentation/gittutorial-2.txt is updated accordingly so that
new users recognize what they're looking at.

Signed-off-by: Andreas Ericsson <ae@op5.se>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

cygwin: Use native Win32 API for statDmitry Potapov Tue, 30 Sep 2008 13:53:47 +0000 (17:53 +0400)

cygwin: Use native Win32 API for stat

lstat/stat functions in Cygwin are very slow, because they try to emulate
some *nix things that Git does not actually need. This patch adds Win32
specific implementation of these functions for Cygwin.

This implementation handles most situation directly but in some rare cases
it falls back on the implementation provided for Cygwin. This is necessary
for two reasons:

- Cygwin has its own file hierarchy, so absolute paths used in Cygwin is
not suitable to be used Win32 API. cygwin_conv_to_win32_path can not be
used because it automatically dereference Cygwin symbol links, also it
causes extra syscall. Fortunately Git rarely use absolute paths, so we
always use Cygwin implementation for absolute paths.

- Support of symbol links. Cygwin stores symbol links as ordinary using
one of two possible formats. Therefore, the fast implementation falls
back to Cygwin functions if it detects potential use of symbol links.

The speed of this implementation should be the same as mingw_lstat for
common cases, but it is considerable slower when the specified file name
does not exist.

Despite all efforts to make the fast implementation as robust as possible,
it may not work well for some very rare situations. I am aware only one
situation: use Cygwin mount to bind unrelated paths inside repository
together. Therefore, the core.ignoreCygwinFSTricks configuration option is
provided, which controls whether native or Cygwin version of stat is used.

Signed-off-by: Dmitry Potapov <dpotapov@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

mingw: move common functionality to win32.hDmitry Potapov Sat, 27 Sep 2008 08:43:01 +0000 (12:43 +0400)

mingw: move common functionality to win32.h

Some small Win32 specific functions will be shared by MinGW and
Cygwin compatibility layer. Place them into a separate header.

Signed-off-by: Dmitry Potapov <dpotapov@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

add have_git_dir() functionDmitry Potapov Sat, 27 Sep 2008 08:41:50 +0000 (12:41 +0400)

add have_git_dir() function

This function is used to learn whether git_dir is already set up or not.
It is necessary, because we want to read configuration in compat/cygwin.c

Signed-off-by: Dmitry Potapov <dpotapov@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

make prune report removed objects on -vMichael J Gruber Mon, 29 Sep 2008 16:49:52 +0000 (18:49 +0200)

make prune report removed objects on -v

This adds an option "-v" which makes "git prune" more verbose:
It outputs all removed objects while removing them.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Merge branch 'maint'Shawn O. Pearce Tue, 30 Sep 2008 21:14:09 +0000 (14:14 -0700)

Merge branch 'maint'

* maint:
git-svn: call 'fatal' correctly in set-tree
Replace svn.foo.org with svn.example.com in git-svn docs (RFC 2606)
t0024: add executable permission

git-svn: call 'fatal' correctly in set-treeLuc Heinrich Mon, 29 Sep 2008 13:58:18 +0000 (15:58 +0200)

git-svn: call 'fatal' correctly in set-tree

When doing a set-tree and there is no revision to commit to, the following unrelated error message is displayed: "Undefined subroutine &Git::SVN::fatal called at /opt/local/libexec/git-core/git-svn line 2575." The following patch fixes the problem and allows the real error message to be shown.

Signed-off-by: Luc Heinrich <luc@honk-honk.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Replace svn.foo.org with svn.example.com in git-svn... Michael Prokop Mon, 29 Sep 2008 23:01:34 +0000 (01:01 +0200)

Replace svn.foo.org with svn.example.com in git-svn docs (RFC 2606)

foo.org is an existing domain, use RFC 2606 complying example.com instead
as used in other docs as well.

Signed-off-by: Michael Prokop <mika@grml.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

diff.c: remove duplicate bibtex pattern introduced... Brandon Casey Mon, 29 Sep 2008 21:52:01 +0000 (16:52 -0500)

diff.c: remove duplicate bibtex pattern introduced by merge 92bb9785

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Use "git_config_string" to simplify "builtin-gc.c"... David Bryson Tue, 30 Sep 2008 20:28:58 +0000 (13:28 -0700)

Use "git_config_string" to simplify "builtin-gc.c" code where "prune_expire" is set

Signed-off-by: David Bryson <david@statichacks.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

tests: grep portability fixesJeff King Tue, 30 Sep 2008 08:03:55 +0000 (04:03 -0400)

tests: grep portability fixes

We try to avoid using the "-q" or "-e" options, as they are
largely useless, as explained in aadbe44f.

There is one exception for "-e" here, which is in t7701 used
to produce an "or" of patterns. This can be rewritten as an
egrep pattern.

This patch also removes use of "grep -F" in favor of the
more widely available "fgrep".

[sp: Tested on AIX 5.3 by Mike Ralphson,
Tested on MinGW by Johannes Sixt]

Signed-off-by: Jeff King <peff@peff.net>
Tested-by: Mike Ralphson <mike@abacus.co.uk>
Tested-by: Johannes Sixt <johannes.sixt@telecom.at>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Add OS X support to the pre-auto-gc example hookJonathan del Strother Mon, 29 Sep 2008 23:36:28 +0000 (00:36 +0100)

Add OS X support to the pre-auto-gc example hook

Signed-off-by: Jonathan del Strother <jon.delStrother@bestbefore.tv>
Acked-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

t0024: add executable permissionSZEDER Gábor Tue, 30 Sep 2008 13:32:47 +0000 (15:32 +0200)

t0024: add executable permission

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Correct typos in RelNotes-1.6.1Ralf Wildenhues Mon, 29 Sep 2008 20:30:00 +0000 (22:30 +0200)

Correct typos in RelNotes-1.6.1

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

remove vim syntax highlighting in favor of upstreamSZEDER Gábor Mon, 29 Sep 2008 20:08:14 +0000 (22:08 +0200)

remove vim syntax highlighting in favor of upstream

As of version 7.2, vim ships with its own syntax
highlighting for git commit messages, which is:

1. more comprehensive in splitting up the various
components of the file

2. in accordance with the usual vim behavior for syntax
highlighting (e.g., respecting b:current_syntax)

3. presumably better maintained (I have not been using
what's in git's contrib/ directory for some time in
favor of the upstream version)

Furthermore, vim upsream also provides syntax highlighting
for other git filetypes (gitconfig, rebase, send-email).

This patch gets rid of our local version and just points
interested parties to the upstream version.

The code for auto-detecting filetypes is taken from vim's
runtime/filetype.vim.

Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Merge branch 'bc/master-diff-hunk-header-fix'Shawn O. Pearce Mon, 29 Sep 2008 18:04:20 +0000 (11:04 -0700)

Merge branch 'bc/master-diff-hunk-header-fix'

* bc/master-diff-hunk-header-fix:
Clarify commit error message for unmerged files
Use strchrnul() instead of strchr() plus manual workaround
Use remove_path from dir.c instead of own implementation
Add remove_path: a function to remove as much as possible of a path
git-submodule: Fix "Unable to checkout" for the initial 'update'
Clarify how the user can satisfy stash's 'dirty state' check.
t4018-diff-funcname: test syntax of builtin xfuncname patterns
t4018-diff-funcname: test syntax of builtin xfuncname patterns
make "git remote" report multiple URLs
diff hunk pattern: fix misconverted "\{" tex macro introducers
diff: fix "multiple regexp" semantics to find hunk header comment
diff: use extended regexp to find hunk headers
diff: use extended regexp to find hunk headers
diff.*.xfuncname which uses "extended" regex's for hunk header selection
diff.c: associate a flag with each pattern and use it for compiling regex
diff.c: return pattern entry pointer rather than just the hunk header pattern

Conflicts:
builtin-merge-recursive.c
t/t7201-co.sh
xdiff-interface.h

Merge branch 'maint' into bc/master-diff-hunk-header-fixShawn O. Pearce Mon, 29 Sep 2008 17:52:34 +0000 (10:52 -0700)

Merge branch 'maint' into bc/master-diff-hunk-header-fix

* maint: (41 commits)
Clarify commit error message for unmerged files
Use strchrnul() instead of strchr() plus manual workaround
Use remove_path from dir.c instead of own implementation
Add remove_path: a function to remove as much as possible of a path
git-submodule: Fix "Unable to checkout" for the initial 'update'
Clarify how the user can satisfy stash's 'dirty state' check.
Remove empty directories in recursive merge
Documentation: clarify the details of overriding LESS via core.pager
Update release notes for 1.6.0.3
checkout: Do not show local changes when in quiet mode
for-each-ref: Fix --format=%(subject) for log message without newlines
git-stash.sh: don't default to refs/stash if invalid ref supplied
maint: check return of split_cmdline to avoid bad config strings
builtin-prune.c: prune temporary packs in <object_dir>/pack directory
Do not perform cross-directory renames when creating packs
Use dashless git commands in setgitperms.perl
git-remote: do not use user input in a printf format string
make "git remote" report multiple URLs
Start draft release notes for 1.6.0.3
git-repack uses --no-repack-object, not --no-repack-delta.
...

Conflicts:
RelNotes

Merge branch 'bc/maint-diff-hunk-header-fix' into maintShawn O. Pearce Mon, 29 Sep 2008 17:23:19 +0000 (10:23 -0700)

Merge branch 'bc/maint-diff-hunk-header-fix' into maint

* bc/maint-diff-hunk-header-fix:
t4018-diff-funcname: test syntax of builtin xfuncname patterns
diff hunk pattern: fix misconverted "\{" tex macro introducers
diff: use extended regexp to find hunk headers
diff.*.xfuncname which uses "extended" regex's for hunk header selection
diff.c: associate a flag with each pattern and use it for compiling regex
diff.c: return pattern entry pointer rather than just the hunk header pattern

Conflicts:
Documentation/gitattributes.txt

Merge branch 'jc/better-conflict-resolution'Shawn O. Pearce Mon, 29 Sep 2008 17:04:21 +0000 (10:04 -0700)

Merge branch 'jc/better-conflict-resolution'

* jc/better-conflict-resolution:
Fix AsciiDoc errors in merge documentation
git-merge documentation: describe how conflict is presented
checkout --conflict=<style>: recreate merge in a non-default style
checkout -m: recreate merge when checking out of unmerged index
git-merge-recursive: learn to honor merge.conflictstyle
merge.conflictstyle: choose between "merge" and "diff3 -m" styles
rerere: understand "diff3 -m" style conflicts with the original
rerere.c: use symbolic constants to keep track of parsing states
xmerge.c: "diff3 -m" style clips merge reduction level to EAGER or less
xmerge.c: minimum readability fixups
xdiff-merge: optionally show conflicts in "diff3 -m" style
xdl_fill_merge_buffer(): separate out a too deeply nested function
checkout --ours/--theirs: allow checking out one side of a conflicting merge
checkout -f: allow ignoring unmerged paths when checking out of the index

Conflicts:
Documentation/git-checkout.txt
builtin-checkout.c
builtin-merge-recursive.c
t/t7201-co.sh

Merge branch 'mg/maint-remote-fix' into maintShawn O. Pearce Mon, 29 Sep 2008 16:39:53 +0000 (09:39 -0700)

Merge branch 'mg/maint-remote-fix' into maint

* mg/maint-remote-fix:
make "git remote" report multiple URLs

Add contrib/rerere-train scriptNanako Shiraishi Sat, 27 Sep 2008 11:44:15 +0000 (20:44 +0900)

Add contrib/rerere-train script

This script takes a range of commits (e.g. maint..next) as its arguments,
recreates merge commits in the range to prime rr-cache database.

Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Clarify commit error message for unmerged filesRafael Garcia-Suarez Mon, 29 Sep 2008 16:04:41 +0000 (18:04 +0200)

Clarify commit error message for unmerged files

Currently, trying to use git-commit with unmerged files in the index
will show the message "Error building trees", which can be a bit
obscure to the end user. This patch makes the error message clearer, and
consistent with what git-write-tree reports in a similar situation.

Signed-off-by: Rafael Garcia-Suarez <rgarciasuarez@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Use strchrnul() instead of strchr() plus manual workaroundJohan Herland Sat, 27 Sep 2008 22:24:36 +0000 (00:24 +0200)

Use strchrnul() instead of strchr() plus manual workaround

Also gets rid of a C++ comment.

Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

mingw: remove use of _getdrive() from lstat/fstatDmitry Potapov Sat, 27 Sep 2008 08:39:45 +0000 (12:39 +0400)

mingw: remove use of _getdrive() from lstat/fstat

The field device is not used by Git, and putting the number of the
current device is meaningless anyway.

Signed-off-by: Dmitry Potapov <dpotapov@gmail.com>
Acked-by: Johannes Sixt <johannes.sixt@telecom.at>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Use remove_path from dir.c instead of own implementationAlex Riesen Fri, 26 Sep 2008 22:59:14 +0000 (00:59 +0200)

Use remove_path from dir.c instead of own implementation

Besides, it fixes a memleak (builtin-rm.c) and accidental change of
the input const argument (builtin-merge-recursive.c).

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Add remove_path: a function to remove as much as possib... Alex Riesen Fri, 26 Sep 2008 22:56:46 +0000 (00:56 +0200)

Add remove_path: a function to remove as much as possible of a path

The function has two potential users which both managed to get wrong
their implementations (the one in builtin-rm.c one has a memleak, and
builtin-merge-recursive.c scribles over its const argument).

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

git-submodule: Fix "Unable to checkout" for the initial... Ping Yin Fri, 26 Sep 2008 15:33:23 +0000 (23:33 +0800)

git-submodule: Fix "Unable to checkout" for the initial 'update'

Since commit 55218("checkout: do not lose staged removal"), in
cmd_add/cmd_update, "git checkout <commit>" following
"git clone -n" may fail if <commit> is different from HEAD.

So Use "git checkout -f <commit>" to fix this.

Signed-off-by: Ping Yin <pkufranky@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

compat/mingw: Support a timeout in the poll emulation... Johannes Sixt Tue, 23 Sep 2008 06:52:16 +0000 (08:52 +0200)

compat/mingw: Support a timeout in the poll emulation if no fds are given

Our poll() emulation did not support the timeout argument. With this patch
we support it for the simple case where poll() does not need to wait on
file descriptors as well because this case amounts to a mere Sleep().

This is needed if the user sets help.autocorrect is set to a positive
value.

Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Clarify how the user can satisfy stash's 'dirty state... Stephen Haberman Mon, 29 Sep 2008 09:12:04 +0000 (04:12 -0500)

Clarify how the user can satisfy stash's 'dirty state' check.

Signed-off-by: Stephen Haberman <stephen@exigencecorp.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

usage.c: remove unused functionsNanako Shiraishi Thu, 25 Sep 2008 09:41:04 +0000 (18:41 +0900)

usage.c: remove unused functions

This removes three functions that are not used anywhere.

Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com>
Acked-by: Lars Hjemli <hjemli@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Merge branch 'maint'Shawn O. Pearce Fri, 26 Sep 2008 15:31:56 +0000 (08:31 -0700)

Merge branch 'maint'

* maint:
Remove empty directories in recursive merge
Documentation: clarify the details of overriding LESS via core.pager

Conflicts:
builtin-merge-recursive.c

Cleanup remove_pathAlex Riesen Fri, 26 Sep 2008 15:21:39 +0000 (08:21 -0700)

Cleanup remove_path

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Remove empty directories in recursive mergeAlex Riesen Thu, 25 Sep 2008 20:12:45 +0000 (22:12 +0200)

Remove empty directories in recursive merge

The code was actually supposed to do that, but was accidentally broken.
Noticed by Anders Melchiorsen.

Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Documentation: clarify the details of overriding LESS... Chris Frey Wed, 24 Sep 2008 23:21:28 +0000 (19:21 -0400)

Documentation: clarify the details of overriding LESS via core.pager

The process of overriding the default LESS options using only
git-specific methods is rather obscure. Show the end user how
to do it in a step-by-step manner.

Signed-off-by: Chris Frey <cdfrey@foursquare.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Merge branch 'mv/merge-recursive'Shawn O. Pearce Thu, 25 Sep 2008 16:49:19 +0000 (09:49 -0700)

Merge branch 'mv/merge-recursive'

* mv/merge-recursive:
builtin-merge: release the lockfile in try_merge_strategy()
merge-recursive: get rid of virtual_id
merge-recursive: move current_{file,directory}_set to struct merge_options
merge-recursive: move the global obuf to struct merge_options
merge-recursive: get rid of the index_only global variable
merge-recursive: move call_depth to struct merge_options
cherry-pick/revert: make direct internal call to merge_tree()
builtin-merge: avoid run_command_v_opt() for recursive and subtree
merge-recursive: introduce merge_options
merge-recursive.c: Add more generic merge_recursive_generic()
Split out merge_recursive() to merge-recursive.c

Merge branch 'jc/alternate-push'Shawn O. Pearce Thu, 25 Sep 2008 16:39:24 +0000 (09:39 -0700)

Merge branch 'jc/alternate-push'

* jc/alternate-push:
push: receiver end advertises refs from alternate repositories
push: prepare sender to receive extended ref information from the receiver
receive-pack: make it a builtin
is_directory(): a generic helper function

Merge branch 'am/status'Shawn O. Pearce Thu, 25 Sep 2008 16:32:49 +0000 (09:32 -0700)

Merge branch 'am/status'

* am/status:
wt-status: Teach how to discard changes in the working directory
wt-status: Split header generation into three functions

Merge branch 'pb/autocorrect-wrapper'Shawn O. Pearce Thu, 25 Sep 2008 16:23:48 +0000 (09:23 -0700)

Merge branch 'pb/autocorrect-wrapper'

* pb/autocorrect-wrapper:
git wrapper: also use aliases to correct mistyped commands

Merge branch 'mv/commit-tree'Shawn O. Pearce Thu, 25 Sep 2008 16:16:33 +0000 (09:16 -0700)

Merge branch 'mv/commit-tree'

* mv/commit-tree:
t7603: add new testcases to ensure builtin-commit uses reduce_heads()
builtin-commit: use commit_tree()
commit_tree(): add a new author parameter

Merge branch 'jc/apply-include-exclude'Shawn O. Pearce Thu, 25 Sep 2008 16:09:41 +0000 (09:09 -0700)

Merge branch 'jc/apply-include-exclude'

* jc/apply-include-exclude:
git-apply:--include=pathspec

Merge branch 'jc/safe-c-l-d'Shawn O. Pearce Thu, 25 Sep 2008 15:50:01 +0000 (08:50 -0700)

Merge branch 'jc/safe-c-l-d'

* jc/safe-c-l-d:
safe_create_leading_directories(): make it about "leading" directories

gitweb: shortlog now also obeys $hash_parentGiuseppe Bilotta Fri, 8 Aug 2008 14:12:11 +0000 (16:12 +0200)

gitweb: shortlog now also obeys $hash_parent

If $hash_parent is defined, shortlog now limits the list of commits at
those between $hash_parent (exclusive) and $hash (inclusive).

Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Acked-by: Petr Baudis <pasky@suse.cz>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Merge branch 'ho/dirstat-by-file'Shawn O. Pearce Thu, 25 Sep 2008 15:41:42 +0000 (08:41 -0700)

Merge branch 'ho/dirstat-by-file'

* ho/dirstat-by-file:
diff --dirstat-by-file: count changed files, not lines

Merge git://repo.or.cz/git-guiShawn O. Pearce Thu, 25 Sep 2008 15:41:07 +0000 (08:41 -0700)

Merge git://repo.or.cz/git-gui

* git://repo.or.cz/git-gui:
git-gui: Reenable staging unmerged files by clicking the icon.
git-gui: Support the encoding menu in gui blame.
git-gui: Optimize encoding name resolution using a lookup table.
git-gui: Allow forcing display encoding for diffs using a submenu.
git-gui: Add a menu of available encodings.
git-gui: Cleanup handling of the default encoding.
git-gui: Assume `blame --incremental` output is in UTF-8
git-gui: Use gitattribute "encoding" for file content display
git-gui: Add support for calling out to the prepare-commit-msg hook
git-gui: Hide commit related UI during citool --nocommit
git-gui: Add more integration options to citool.
git-gui: Updated German translation.
git-gui: I18n fix sentence parts into full sentences for translation again.
git-gui: Restore ability to Stage Working Copy for conflicts.
git-gui: Fix Blame Parent & Context for working copy lines.

Merge branch 'maint'Shawn O. Pearce Thu, 25 Sep 2008 15:27:53 +0000 (08:27 -0700)

Merge branch 'maint'

* maint:
Update release notes for 1.6.0.3
checkout: Do not show local changes when in quiet mode
for-each-ref: Fix --format=%(subject) for log message without newlines
git-stash.sh: don't default to refs/stash if invalid ref supplied
maint: check return of split_cmdline to avoid bad config strings

Update release notes for 1.6.0.3Shawn O. Pearce Thu, 25 Sep 2008 15:27:41 +0000 (08:27 -0700)

Update release notes for 1.6.0.3

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Fix submodule sync with relative submodule URLsJohan Herland Mon, 22 Sep 2008 16:08:31 +0000 (18:08 +0200)

Fix submodule sync with relative submodule URLs

Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

graph.c: make many functions staticNanako Shiraishi Thu, 25 Sep 2008 09:41:08 +0000 (18:41 +0900)

graph.c: make many functions static

These function are not used anywhere. Also removes graph_release()
that is never called.

Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

remote.c: make free_ref(), parse_push_refspec() and... Nanako Shiraishi Thu, 25 Sep 2008 09:41:00 +0000 (18:41 +0900)

remote.c: make free_ref(), parse_push_refspec() and free_refspecs() static.

These functions are not used by any other file.

Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>