gitweb.git
gitweb: move highlight config out of guess_file_syntax()Alejandro R. Sedeño Wed, 28 Jul 2010 18:40:53 +0000 (14:40 -0400)

gitweb: move highlight config out of guess_file_syntax()

Move highlight config out of guess_file_syntax() so that it can be
extended/overridden by system/user configuration.

Signed-off-by: Alejandro R. Sedeño <asedeno@mit.edu>
Acked-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

SubmittingPatches: Cite the 50 char subject limitÆvar Arnfjörð Bjarmason Wed, 28 Jul 2010 14:11:25 +0000 (14:11 +0000)

SubmittingPatches: Cite the 50 char subject limit

Change the SubmittingPatches recommendations to mention the 50
character soft limit on patch subject lines. 50 characters is the soft
limit mentioned in git-commit(1) and gittutorial(7), it's also the
point at which Gitweb, GitHub and various other Git front ends start
abbreviating the commit message.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

SubmittingPatches: Clarify the Signed-off-by rulesÆvar Arnfjörð Bjarmason Wed, 28 Jul 2010 14:12:59 +0000 (14:12 +0000)

SubmittingPatches: Clarify the Signed-off-by rules

The wording of the Signed-off-by rules could be read as stating that
S-O-B should only be added when the submitter considered the patch
ready for inclusion in git.git.

We also want Signed-off-by to be used for e.g. RFC patches, in case
someone wants to dig an old patch out of the archive and improve
it. Change the wording to recommend a Signed-off-by for all submitted
patches.

The problem with the wording came up in the "[PATCH/RFC] Hacky version
of a glob() driven config include" thread[1]. Bert Wesarg suggested[2]
that it be removed to avoid confusion, which this change implements.

1. <1273180440-8641-1-git-send-email-avarab@gmail.com>
2. <AANLkTimziTKL13VKIOcaS1TX1F_xvTVjH8Q398Yx36Us@mail.gmail.com>

Suggested-by: Bert Wesarg <bert.wesarg@googlemail.com>
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

upload-pack: remove unused "create_full_pack" code... Nguyễn Thái Ngọc Duy Wed, 28 Jul 2010 09:39:10 +0000 (16:39 +0700)

upload-pack: remove unused "create_full_pack" code in do_rev_list

A bit of history in chronological order, the newest at bottom:

- 80ccaa7 (upload-pack: Move the revision walker into a separate function.)
do_rev_list was introduced with create_full_pack argument

- 21edd3f (upload-pack: Run rev-list in an asynchronous function.)
do_rev_list was now called by start_async, create_full_pack was
passed by rev_list.data

- f0cea83 (Shift object enumeration out of upload-pack)
rev_list.data was now zero permanently. Creating full pack was
done by passing --all to pack-objects

- ae6a560 (run-command: support custom fd-set in async)
rev_list.data = 0 was found out redudant and got rid of.

Get rid of the code as well, for less headache while reading do_rev_list.

[jc: noticed by Elijah Newren]

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Sync with 1.7.2.1Junio C Hamano Tue, 27 Jul 2010 23:54:06 +0000 (16:54 -0700)

Sync with 1.7.2.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Git 1.7.2.1 v1.7.2.1Junio C Hamano Tue, 27 Jul 2010 23:42:47 +0000 (16:42 -0700)

Git 1.7.2.1

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Sync with 1.7.1.2Junio C Hamano Tue, 27 Jul 2010 23:40:15 +0000 (16:40 -0700)

Sync with 1.7.1.2

Git 1.7.1.2 v1.7.1.2Junio C Hamano Tue, 27 Jul 2010 22:04:49 +0000 (15:04 -0700)

Git 1.7.1.2

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Sync with 1.7.0 seriesJunio C Hamano Tue, 27 Jul 2010 22:01:36 +0000 (15:01 -0700)

Sync with 1.7.0 series

Git 1.7.0.7 v1.7.0.7Junio C Hamano Tue, 27 Jul 2010 21:07:41 +0000 (14:07 -0700)

Git 1.7.0.7

Signed-off-by: Junio C Hamano <gitster@pobox.com>

config --get --path: check for unset $HOMEJonathan Nieder Mon, 26 Jul 2010 15:06:51 +0000 (10:06 -0500)

config --get --path: check for unset $HOME

If $HOME is unset (as in some automated build situations),
currently

git config --path path.home "~"
git config --path --get path.home

segfaults. Error out with

Failed to expand user dir in: '~/'

instead.

Reported-by: Julien Cristau <jcristau@debian.org>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

commit: remove full stop from usage help for -uStephen Boyd Tue, 27 Jul 2010 05:40:32 +0000 (22:40 -0700)

commit: remove full stop from usage help for -u

From api-parse-options.txt:

`description` is a short string to describe the effect of the option.
It shall begin with a lower-case letter and a full stop (`.`) shall be
omitted at the end.

It also makes it less confusing if the argument is 'no.' or 'no'.

Signed-off-by: Stephen Boyd <bebarino@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Clarify help message when no remote is specified in... Matthieu Moy Mon, 26 Jul 2010 16:32:09 +0000 (18:32 +0200)

Clarify help message when no remote is specified in fetch/pull.

The message is especially confusing when "git fetch" is ran from "git
pull", for users not aware of "git fetch". The new message makes it clear
that "fetch" means "fetch new revisions", and gives hint on the solution.

We don't add a advice.* configuration option since this message doesn't
appear in normal use, and shouldn't disturb advanced users.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Makefile: add check-docs exception for gitrevisionsThomas Rast Mon, 26 Jul 2010 08:40:58 +0000 (10:40 +0200)

Makefile: add check-docs exception for gitrevisions

The manpage was added in 1ed6f2c (Documentation: gitrevisions,
2010-07-05), but since it does not have a corresponding git command,
it needs an exception for check-docs.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Acked-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix 'git' wrapper usage stringThomas Rast Mon, 26 Jul 2010 08:36:24 +0000 (10:36 +0200)

Fix 'git' wrapper usage string

8b1fa77 (Allow passing of configuration parameters in the command
line, 2010-03-26) forgot the closing ']' for the -c option.

While we're there, also rewrap. Instead of folding the last two lines
together, try to highlight that COMMAND is required by starting a line
with it.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

tests: Ignore the Test::Harness .prove fileÆvar Arnfjörð Bjarmason Fri, 23 Jul 2010 22:58:44 +0000 (22:58 +0000)

tests: Ignore the Test::Harness .prove file

We document how to run prove with the --state option in t/README. This
produces a .prove YAML file in the current directory. Change the t/
gitignore to ignore it, and clean it up on `make clean'.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation/git-push: Explain status output in more... Thomas Rast Sat, 24 Jul 2010 16:03:15 +0000 (18:03 +0200)

Documentation/git-push: Explain status output in more detail

Mention the effects of the receive.deny* family of options for the
"remote rejected" case. While there, also split up the explanation
into an easier-to-parse list format.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Document receive.denyDeleteCurrentThomas Rast Sat, 24 Jul 2010 16:07:53 +0000 (18:07 +0200)

Document receive.denyDeleteCurrent

This option was introduced by 747ca24 (receive-pack:
receive.denyDeleteCurrent, 2009-02-08) but never documented.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Cast execl*() NULL sentinels to (char *)Thomas Rast Sat, 24 Jul 2010 15:20:23 +0000 (17:20 +0200)

Cast execl*() NULL sentinels to (char *)

The NULL sentinel argument to the execl*() family of calls must be
cast to (char *), as otherwise:

- platforms where NULL is just 0 (not (void *)) would pass an int

- (admittedly esoteric) platforms where NULL is (void *)0 and (void *)
and (char *) have different memory layouts would pass the wrong kind
of pointer

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-read-tree.txt: acknowledge the directory matching... Nguyễn Thái Ngọc Duy Sun, 25 Jul 2010 09:30:32 +0000 (16:30 +0700)

git-read-tree.txt: acknowledge the directory matching bug in sparse checkout

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

INSTALL: configure /etc/xml/catalog to build docs on... Jon Seymour Sun, 25 Jul 2010 03:57:35 +0000 (13:57 +1000)

INSTALL: configure /etc/xml/catalog to build docs on Cygwin

Without additional configuration steps, the documentation build on Cygwin
fails because the XML catalog is missing required rewrites for certain
docbook resources.

This patch documents the required configuration.

Signed-off-by: Jon Seymour <jon.seymour@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t3700-add: fix dependence on stdout and stderr bufferingJohannes Sixt Thu, 22 Jul 2010 08:13:33 +0000 (10:13 +0200)

t3700-add: fix dependence on stdout and stderr buffering

One test case checked the stdout and stderr of 'git add' by constructing a
single 'expect' file that contained both streams. But when the command
runs, the order of stdout and stderr output is unpredictable because it
depends on how the streams are buffered. At least on Windows, the buffering
is different from what the test case expected. Hence, check the two output
texts separately.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Acked-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-rebase--interactive.sh: use printf instead of echo... Brandon Casey Thu, 22 Jul 2010 19:15:11 +0000 (14:15 -0500)

git-rebase--interactive.sh: use printf instead of echo to print commit message

On systems with an echo which defaults to the XSI-conformant behavior
(Solaris, or others using Ksh), echo will interpret certain backslashed
characters as control sequences. This can cause a problem for interactive
rebase when it is used to rebase commits whose commit "subject" (the first
line) contains any of these backslashed sequences. In this case, echo will
substitute the control sequence for the backslashed characters and either
the rebased commit message will differ from the original, or the rebase
process will fail. Neither is desirable.

So work around this issue by replacing the echo statements used to print
out portions of the commit message, with printf.

Also, add a test to test for this breakage.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Acked-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Add a google-chrome option for web--browseNathan W. Panike Thu, 22 Jul 2010 16:58:20 +0000 (11:58 -0500)

Add a google-chrome option for web--browse

On some systems, the chrome browser is named google-chrome. We add
support for this case.

Signed-off-by: Nathan W. Panike <nathan.panike@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint-1.7.1' into maintJunio C Hamano Mon, 26 Jul 2010 06:13:41 +0000 (23:13 -0700)

Merge branch 'maint-1.7.1' into maint

* maint-1.7.1:
request-pull.txt: Document -p option
Check size of path buffer before writing into it

Merge branch 'maint-1.7.0' into maint-1.7.1Junio C Hamano Mon, 26 Jul 2010 04:53:27 +0000 (21:53 -0700)

Merge branch 'maint-1.7.0' into maint-1.7.1

* maint-1.7.0:
request-pull.txt: Document -p option
Check size of path buffer before writing into it

Merge branch 'maint-1.6.6' into maint-1.7.0Junio C Hamano Mon, 26 Jul 2010 04:52:48 +0000 (21:52 -0700)

Merge branch 'maint-1.6.6' into maint-1.7.0

* maint-1.6.6:
request-pull.txt: Document -p option
Check size of path buffer before writing into it
rev-parse: fix --parse-opt --keep-dashdash --stop-at-non-option

Merge branch 'maint-1.6.5' into maint-1.6.6Junio C Hamano Mon, 26 Jul 2010 04:52:29 +0000 (21:52 -0700)

Merge branch 'maint-1.6.5' into maint-1.6.6

* maint-1.6.5:
request-pull.txt: Document -p option
Check size of path buffer before writing into it
rev-parse: fix --parse-opt --keep-dashdash --stop-at-non-option

request-pull.txt: Document -p optionStephen Boyd Fri, 23 Jul 2010 16:31:27 +0000 (09:31 -0700)

request-pull.txt: Document -p option

Signed-off-by: Stephen Boyd <bebarino@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint-1.6.4' into maint-1.6.5Junio C Hamano Mon, 26 Jul 2010 04:51:58 +0000 (21:51 -0700)

Merge branch 'maint-1.6.4' into maint-1.6.5

* maint-1.6.4:
Check size of path buffer before writing into it
rev-parse: fix --parse-opt --keep-dashdash --stop-at-non-option

Check size of path buffer before writing into itGreg Brockman Tue, 20 Jul 2010 04:46:21 +0000 (00:46 -0400)

Check size of path buffer before writing into it

This prevents a buffer overrun that could otherwise be triggered by
creating a file called '.git' with contents

gitdir: (something really long)

Signed-off-by: Greg Brockman <gdb@mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-instaweb: Don't assume Apache executable is named... Dan McGee Wed, 30 Jun 2010 12:29:08 +0000 (07:29 -0500)

git-instaweb: Don't assume Apache executable is named apache2

On Arch Linux, the executable for the Apache HTTP server keeps
the 'httpd' name and is not named 'apache2'. The path to the
server modules also contains 'httpd' rather than 'apache2'.
Remove some of these assumptions and add the httpd name in where
it may be required. Finally, make some slight style adjustments
to the code we are touching to make it fit the style of the rest
of the script.

Signed-off-by: Dan McGee <dpmcgee@gmail.com>
Acked-by: Eric Wong <normalperson@yhbt.net>

git-instaweb: Fix Apache environment variable passingDan McGee Wed, 30 Jun 2010 02:44:59 +0000 (21:44 -0500)

git-instaweb: Fix Apache environment variable passing

We were passing the non-existent GIT_EXEC_DIR through instead of the real
GIT_EXEC_PATH. In addition, these weren't being passed at all for CGI (non
mod_perl) execution so get them included there as well.

Signed-off-by: Dan McGee <dpmcgee@gmail.com>
Acked-by: Eric Wong <normalperson@yhbt.net>

git-instaweb: Fix custom apache log placementDan McGee Wed, 30 Jun 2010 02:44:58 +0000 (21:44 -0500)

git-instaweb: Fix custom apache log placement

'CustomLog' is provided by mod_log_config so we need to include the module
in our generated config. This was added in d94775e1f9a.

Signed-off-by: Dan McGee <dpmcgee@gmail.com>
Acked-by: Eric Wong <normalperson@yhbt.net>

Git 1.7.2 v1.7.2Junio C Hamano Wed, 21 Jul 2010 19:55:50 +0000 (12:55 -0700)

Git 1.7.2

Signed-off-by: Junio C Hamano <gitster@pobox.com>

tests: correct "does reflog exist?" testsJunio C Hamano Wed, 21 Jul 2010 19:47:48 +0000 (12:47 -0700)

tests: correct "does reflog exist?" tests

These two tests weren't about how "git reflog show <branch>" exits when
there is no reflog, but were about "checkout" and "branch" create or not
create reflog when creating a new <branch>. Update the tests to check
what we are interested in, using "git rev-parse --verify".

Also lose tests based on "test -f .git/logs/refs/heads/<branch>" from
nearby, to avoid exposing this particular implementation detail
unnecessarily.

Signed-off-by: Junio C Hamano <gitster@pobox.com>

t/: work around one-shot variable assignment with test_... Brandon Casey Tue, 20 Jul 2010 21:55:31 +0000 (16:55 -0500)

t/: work around one-shot variable assignment with test_must_fail

See e2007832552ccea9befed9003580c494f09e666e

Signed-off-by: Junio C Hamano <gitster@pobox.com>

t/README: correct an exception when breaking a && chain... Jonathan Nieder Wed, 21 Jul 2010 00:01:01 +0000 (19:01 -0500)

t/README: correct an exception when breaking a && chain in tests

The correct advice should have been taken from c289c31 (t/t7006: ignore
return status of shell's unset builtin, 2010-06-02). A real-life issue
we experienced was with "unset", not with "export" (exporting an
unset variable may have similar portability issues, though).

Signed-off-by: Junio C Hamano <gitster@pobox.com>

t/{t5541,lib-httpd}: replace problematic '!()' notation... Brandon Casey Tue, 20 Jul 2010 18:27:55 +0000 (13:27 -0500)

t/{t5541,lib-httpd}: replace problematic '!()' notation with test_must_fail

The '!()' notation is interpreted as a pattern-list on Ksh. The Ksh man
page describe it as follows:

!(pattern-list)
Matches anything except one of the given patterns.

Ksh performs a file glob using the pattern-list and then tries to execute
the first file in the list. If a space is added between the '!' and the
open parens, then Ksh will not interpret it as a pattern list, but in this
case, it is preferred to use test_must_fail, so lets do so.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t/t3700: convert two uses of negation operator '!'... Brandon Casey Tue, 20 Jul 2010 15:24:47 +0000 (10:24 -0500)

t/t3700: convert two uses of negation operator '!' to use test_must_fail

These two lines use the negation '!' operator to negate the result of a
simple command. Since these commands do not contain any pipes or other
complexities, the test_must_fail function can be used and is preferred
since it will additionally detect termination due to a signal.

This was noticed because the second use of '!' does not include a space
between the '!' and the opening parens. Ksh interprets this as follows:

!(pattern-list)
Matches anything except one of the given patterns.

Ksh performs a file glob using the pattern-list and then tries to execute
the first file in the list. If a space is added between the '!' and the
open parens, then Ksh will not interpret it as a pattern list, but in this
case, it is preferred to use test_must_fail, so lets do so.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Tue, 20 Jul 2010 18:29:30 +0000 (11:29 -0700)

Merge branch 'maint'

* maint:
t/README: clarify test_must_fail description
Check size of path buffer before writing into it

Conflicts:
t/README

t/README: clarify test_must_fail descriptionBrandon Casey Tue, 20 Jul 2010 17:17:12 +0000 (12:17 -0500)

t/README: clarify test_must_fail description

Some have found the wording of the description to be somewhat ambiguous
with respect to when it is desirable to use test_must_fail instead of
"! <git-command>". Tweak the wording somewhat to hopefully clarify that
it is _because_ test_must_fail can detect segmentation fault that it is
desirable to use it instead of "! <git-command>".

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Check size of path buffer before writing into itGreg Brockman Tue, 20 Jul 2010 04:46:21 +0000 (00:46 -0400)

Check size of path buffer before writing into it

This prevents a buffer overrun that could otherwise be triggered by
creating a file called '.git' with contents

gitdir: (something really long)

Signed-off-by: Greg Brockman <gdb@mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Mon, 19 Jul 2010 18:21:08 +0000 (11:21 -0700)

Merge branch 'maint'

* maint:
update-server-info: Shorten read_pack_info_file()
Documentation: Explain git-mergetool's use of temporary files

update-server-info: Shorten read_pack_info_file()Ralf Thielow Mon, 19 Jul 2010 16:26:12 +0000 (18:26 +0200)

update-server-info: Shorten read_pack_info_file()

The correct responses to a D and a T line in .git/objects/info/packs
are the same, so combine their case arms. In both cases we already
‘goto’ out of the switch so while at it, remove a redundant ‘break’
to avoid yet another line of code.

Signed-off-by: Ralf Thielow <ralf.thielow@googlemail.com>
Reviewed-by: Jonathan Nieder <jrnieder <at> gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git add: Add --ignore-missing to SYNOPSISÆvar Arnfjörð Bjarmason Sat, 17 Jul 2010 15:33:15 +0000 (15:33 +0000)

git add: Add --ignore-missing to SYNOPSIS

All the git add options were listed in the synopsis until the
--ignore-missing option was added. Change that so that the git add
documentation now has the complete listing.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git submodule add: Remove old docs about implicit -fÆvar Arnfjörð Bjarmason Sat, 17 Jul 2010 15:53:45 +0000 (15:53 +0000)

git submodule add: Remove old docs about implicit -f

git submodule add no longer implicitly adds with --force. Remove
references to the old functionality in the documentation.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Acked-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git submodule add: Require the new --force option to... Jens Lehmann Sat, 17 Jul 2010 15:11:43 +0000 (17:11 +0200)

git submodule add: Require the new --force option to add ignored paths

To make the behavior of "git submodule add" more consistent with "git add"
ignored submodule paths should not be silently added when they match an
entry in a .gitignore file. To be able to override that default behavior
in the same way as we can do that for "git add", the new option "--force"
is introduced.

Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Acked-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'jl/add-n-ignore-missing'Junio C Hamano Mon, 19 Jul 2010 18:09:38 +0000 (11:09 -0700)

Merge branch 'jl/add-n-ignore-missing'

* jl/add-n-ignore-missing:
git add: Add the "--ignore-missing" option for the dry run

Documentation: Explain git-mergetool's use of temporary... David Aguilar Sun, 18 Jul 2010 01:46:48 +0000 (18:46 -0700)

Documentation: Explain git-mergetool's use of temporary files

'git mergetool' creates '*.orig' backup files in its
default configuration. Mention this in its documentation.

Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-svn: write memoized data explicitly to avoid Storab... Sergey Vlasov Sun, 18 Jul 2010 12:17:49 +0000 (16:17 +0400)

git-svn: write memoized data explicitly to avoid Storable bug

Apparently using the Storable module during global destruction is
unsafe - there is a bug which can cause segmentation faults:

http://rt.cpan.org/Public/Bug/Display.html?id=36087
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=482355

The persistent memoization support introduced in commit 8bff7c538
relied on global destruction to write cached data, which was leading
to segfaults in some Perl configurations. Calling Memoize::unmemoize
in the END block forces the cache writeout to be performed earlier,
thus avoiding the bug.

Signed-off-by: Sergey Vlasov <vsu@altlinux.ru>
Acked-by: Eric Wong <normalperson@yhbt.net>

Merge branch 'jc/diff-merge-base-multi'Junio C Hamano Fri, 16 Jul 2010 22:45:35 +0000 (15:45 -0700)

Merge branch 'jc/diff-merge-base-multi'

* jc/diff-merge-base-multi:
diff A...B: do not limit the syntax too narrowly

Only run aggregate-results over actual countsThomas Rast Fri, 16 Jul 2010 09:37:44 +0000 (11:37 +0200)

Only run aggregate-results over actual counts

The current make target 'aggregate-results' scanned all files matching
test-results/t*-*. Normally these are only the test counts (and the
exit values, which are ignored), but with --tee the suite also dumps
all output. Furthermore, with --verbose t1450 contains several lines
starting with "broken link from ..." which matches the criteria used
by aggregate-results.sh.

Rename the counts output files to *.counts, and only scan those.

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Acked-by: Sverre Rabbelier <srabbelier@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Add a sample user for the svndump libraryJonathan Nieder Thu, 15 Jul 2010 16:25:39 +0000 (18:25 +0200)

Add a sample user for the svndump library

The svn-fe tool takes a Subversion dump file as input and produces
a fast-import stream as output. This can be useful as a low-level
tool in building other importers, or for debugging the vcs-svn
library.

make svn-fe
make svn-fe.1

to test.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

diff A...B: do not limit the syntax too narrowlyJunio C Hamano Fri, 16 Jul 2010 19:08:24 +0000 (12:08 -0700)

diff A...B: do not limit the syntax too narrowly

Earlier we tried to make sure that the trees we get are what A...B
syntax produced, by checking that earlier ones are all marked
uninteresting (which has to be true as they are merge bases),
there are two remaining ones that are interesting, and they are
marked as non-symmetric-left and symmetric-left respectively.

The "the last two must be interesting" condition is however wrong when one
is an ancestor of the other between A and B (i.e. fast-forward). In such
a case, one of them is marked uninteresting.

Merge branch 'jn/paginate-fix'Junio C Hamano Thu, 15 Jul 2010 19:09:14 +0000 (12:09 -0700)

Merge branch 'jn/paginate-fix'

* jn/paginate-fix:
git --paginate: paginate external commands again
git --paginate: do not commit pager choice too early
tests: local config file should be honored from subdirs of toplevel
t7006: test pager configuration for several git commands
t7006 (pager): introduce helper for parameterized tests

Conflicts:
t/t7006-pager.sh

Merge branch 'wp/merge-tree-fix'Junio C Hamano Thu, 15 Jul 2010 19:08:41 +0000 (12:08 -0700)

Merge branch 'wp/merge-tree-fix'

* wp/merge-tree-fix:
merge-tree: fix where two branches share no changes
add basic tests for merge-tree

Merge branch 'js/merge-rr-fix'Junio C Hamano Thu, 15 Jul 2010 19:08:36 +0000 (12:08 -0700)

Merge branch 'js/merge-rr-fix'

* js/merge-rr-fix:
MERGE_RR is in .git, not .git/rr-cache

Merge branch 'jc/diff-merge-base-multi'Junio C Hamano Thu, 15 Jul 2010 19:08:25 +0000 (12:08 -0700)

Merge branch 'jc/diff-merge-base-multi'

* jc/diff-merge-base-multi:
diff A...B: give one possible diff when there are more than one merge-base

Merge branch 'ns/merge-recursive-uptodate'Junio C Hamano Thu, 15 Jul 2010 19:08:11 +0000 (12:08 -0700)

Merge branch 'ns/merge-recursive-uptodate'

* ns/merge-recursive-uptodate:
merge-recursive: use "up-to-date" instead of "uptodate" in error message for consistency

Merge branch 'jn/tests'Junio C Hamano Thu, 15 Jul 2010 19:08:04 +0000 (12:08 -0700)

Merge branch 'jn/tests'

* jn/tests:
t3000 (ls-files -o): modernize style

Merge branch 'eb/doc-log-manpage'Junio C Hamano Thu, 15 Jul 2010 19:07:56 +0000 (12:07 -0700)

Merge branch 'eb/doc-log-manpage'

* eb/doc-log-manpage:
Reorganize `git-log' man page to clarify common diff options.

Merge branch 'jn/grep-open'Junio C Hamano Thu, 15 Jul 2010 19:07:18 +0000 (12:07 -0700)

Merge branch 'jn/grep-open'

* jn/grep-open:
grep -O: Do not pass color sequences as filenames to pager

Merge branch 'mg/revision-doc'Junio C Hamano Thu, 15 Jul 2010 19:07:01 +0000 (12:07 -0700)

Merge branch 'mg/revision-doc'

* mg/revision-doc:
Documentation: link to gitrevisions rather than git-rev-parse
Documentation: gitrevisions
Documentation: split off rev doc into include file

Merge branch 'jk/maint-status-keep-index-timestamp'Junio C Hamano Thu, 15 Jul 2010 19:06:55 +0000 (12:06 -0700)

Merge branch 'jk/maint-status-keep-index-timestamp'

* jk/maint-status-keep-index-timestamp:
do not write out index when status does not have to

Merge branch 'jc/rebase-i-commit-msg-fix'Junio C Hamano Thu, 15 Jul 2010 19:06:48 +0000 (12:06 -0700)

Merge branch 'jc/rebase-i-commit-msg-fix'

* jc/rebase-i-commit-msg-fix:
rebase-i: do not get fooled by a log message ending with backslash
rebase-i: style fix

Merge branch 'ab/submodule-add-f'Junio C Hamano Thu, 15 Jul 2010 19:06:25 +0000 (12:06 -0700)

Merge branch 'ab/submodule-add-f'

* ab/submodule-add-f:
git submodule: add submodules with git add -f <path>

Merge branch 'bc/maint-makefile-fixes'Junio C Hamano Thu, 15 Jul 2010 19:06:11 +0000 (12:06 -0700)

Merge branch 'bc/maint-makefile-fixes'

* bc/maint-makefile-fixes:
Makefile: work around ksh's failure to handle missing list argument to for loop
Makefile: remove some unnecessary curly braces

Merge branch 'maint'Junio C Hamano Thu, 15 Jul 2010 19:04:32 +0000 (12:04 -0700)

Merge branch 'maint'

* maint:
Documentation: add submodule.* to the big configuration variable list
gitmodules.5: url can be a relative path
gitweb: fix esc_url

Documentation: add submodule.* to the big configuration... Jonathan Nieder Thu, 15 Jul 2010 07:51:19 +0000 (02:51 -0500)

Documentation: add submodule.* to the big configuration variable list

The url, path, and the update items in [submodule "foo"] stanzas
are nicely explained in the .gitmodules and ‘git submodule’
documentation. Point there from the config documentation.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Acked-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

gitmodules.5: url can be a relative pathJonathan Nieder Thu, 15 Jul 2010 07:41:55 +0000 (02:41 -0500)

gitmodules.5: url can be a relative path

There is already excellent documentation for this facility in
git-submodule.1, but it is not so discoverable.

Relative paths in .gitmodules can be useful for serving the
same repository over multiple protocols, for example.
Thanks to Peter for pointing this out.

Cc: Peter Krefting <peter@softwolves.pp.se>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Acked-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

gitweb: fix esc_urlPavan Kumar Sunkara Thu, 15 Jul 2010 07:29:01 +0000 (12:59 +0530)

gitweb: fix esc_url

Earlier, 452e225 (gitweb: fix esc_param, 2009-10-13) fixed CGI escaping
rules used in esc_url. A very similar logic exists in esc_param and needs
to be fixed the same way.

Signed-off-by: Pavan Kumar Sunkara <pavan.sss1991@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git --paginate: paginate external commands againJonathan Nieder Wed, 14 Jul 2010 22:55:12 +0000 (17:55 -0500)

git --paginate: paginate external commands again

73e25e7c (git --paginate: do not commit pager choice too early,
2010-06-26) failed to take some cases into account.

1b. Builtins that do not use RUN_SETUP (like git config) do
not find GIT_DIR set correctly when the pager is launched
from run_builtin(). So the core.pager configuration is
not honored from subdirectories of the toplevel for them.

4a. External git commands (like git request-pull) relied on the
early pager launch to take care of handling the -p option.
Ever since 73e25e7c, they do not honor the -p option at all.

4b. Commands invoked through ! aliases (like ls) were also relying
on the early pager launch.

Fix (4a) by launching the pager (if requested) before running such a
“dashed external”. For simplicity, this still does not search for a
.git directory before running the external command; when run from a
subdirectory of the toplevel, therefore, the “[core] pager”
configuration is still not honored.

Fix (4b) by launching pager if requested before carrying out such an
alias. Actually doing this has no effect, since the pager (if any)
would have already been launched in a failed attempt to try a
dashed external first. The choice-of-pager-not-honored-from-
subdirectory bug still applies here, too.

(1b) is not a regression. There is no need to fix it yet.

Noticed by Junio.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

MERGE_RR is in .git, not .git/rr-cacheJay Soffian Wed, 14 Jul 2010 17:18:11 +0000 (13:18 -0400)

MERGE_RR is in .git, not .git/rr-cache

0af0ac7 (Move MERGE_RR from .git/rr-cache/ into .git/) moved the
location of MERGE_RR but I found a few references to the old
location.

Signed-off-by: Jay Soffian <jaysoffian@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

merge-tree: fix where two branches share no changesWill Palmer Wed, 14 Jul 2010 17:04:07 +0000 (18:04 +0100)

merge-tree: fix where two branches share no changes

15b4f7a (merge-tree: use ll_merge() not xdl_merge(), 2010-01-16)
introduced a regression to merge-tree to cause it to segfault when merging
files which existed in one branch, but not in the other or in the
merge-base. This was caused by referencing entry->path at a time when
entry was known to be possibly-NULL.

To correct the problem, we save the path of the entry we came in with,
as the path should be the same among all the stages no matter which
sides are involved in the merge.

Signed-off-by: Will Palmer <wmpalmer@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

add basic tests for merge-treeWill Palmer Wed, 14 Jul 2010 17:04:06 +0000 (18:04 +0100)

add basic tests for merge-tree

merge-tree had no test cases, so here we add some very basic tests for
it, including some known-breakages.

[jc: with obvious/trivial fixups]

Signed-off-by: Will Palmer <wmpalmer@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Git 1.7.2-rc3 v1.7.2-rc3Junio C Hamano Wed, 14 Jul 2010 16:42:24 +0000 (09:42 -0700)

Git 1.7.2-rc3

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'jc/read-tree-cache-tree-fix'Junio C Hamano Wed, 14 Jul 2010 16:34:23 +0000 (09:34 -0700)

Merge branch 'jc/read-tree-cache-tree-fix'

* jc/read-tree-cache-tree-fix:
Fix "read-tree -m A B" priming the cache-tree

Use dev_t for device id (st_dev) from stat in setup_git... Raja R Harinath Tue, 13 Jul 2010 09:02:00 +0000 (14:32 +0530)

Use dev_t for device id (st_dev) from stat in setup_git_directory_gently()

The original declaration was int, which seems to cause trouble on my
machine. It causes spurious "filesystem boundary" errors when running
the testsuite. The cause seems to be

$ stat -c%d .
2147549952

which is too large for a 32-bit int type.

Using the correct type, dev_t, solves the issue. (Because I'm
paranoid and forgetful, I checked -- yes, Unix v7 had dev_t.)

Other uses of st_dev seem to be reasonably safe. fill_stat_cache_info
truncates it to an 'unsigned int', but that value seems to be used only
to validate the cache, and only if USE_STDEV is defined.

Signed-off-by: Raja R Harinath <harinath@hurrynot.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

diff A...B: give one possible diff when there are more... Junio C Hamano Tue, 13 Jul 2010 00:27:46 +0000 (17:27 -0700)

diff A...B: give one possible diff when there are more than one merge-base

We instead showed a combined diff that explains one of the randomly
chosen merge-base as if it were the result of merging all the other
merge bases and two tips given, which made no sense at all.

An alternative is to simply fail such a request, telling the user that
there are criss-cross merges, but it wouldn't be so helpful.

Noticed by James Pickens.

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Tue, 13 Jul 2010 16:14:35 +0000 (09:14 -0700)

Merge branch 'maint'

* maint:
git fetch documentation: describe short '-p' synonym to '--prune' option
format-patch: document the format.to configuration setting

git fetch documentation: describe short '-p' synonym... Oren Held Tue, 13 Jul 2010 12:01:40 +0000 (15:01 +0300)

git fetch documentation: describe short '-p' synonym to '--prune' option

It's already implemented, just undocumented.

Signed-off-by: Oren Held <orenhe@il.ibm.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

format-patch: document the format.to configuration... Miklos Vajna Mon, 12 Jul 2010 18:58:38 +0000 (20:58 +0200)

format-patch: document the format.to configuration setting

[jc: with simplification from Jonathan Nieder]

Signed-off-by: Miklos Vajna <vmiklos@frugalware.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git add: Add the "--ignore-missing" option for the... Jens Lehmann Fri, 9 Jul 2010 22:18:38 +0000 (00:18 +0200)

git add: Add the "--ignore-missing" option for the dry run

Sometimes it is useful to know if a file or directory will be ignored
before it is added to the work tree. An example is "git submodule add",
where it would be really nice to be able to fail with an appropriate
error message before the submodule is cloned and checked out.

Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

test-lib: TAP compliance for skipping tests on requestMichael J Gruber Mon, 12 Jul 2010 10:33:49 +0000 (12:33 +0200)

test-lib: TAP compliance for skipping tests on request

Make the output TAP compliant for tests skipped on request (GIT_SKIP_TESTS).

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Acked-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

test-lib: simplify GIT_SKIP_TESTS loopMichael J Gruber Mon, 12 Jul 2010 10:32:18 +0000 (12:32 +0200)

test-lib: simplify GIT_SKIP_TESTS loop

04ece59 (GIT_SKIP_TESTS: allow users to omit tests that are known to break, 2006-12-28)
introduced GIT_SKIP_TESTS, and since then we have had two nested loops
iterating over GIT_SKIP_TESTS with the same loop variable.

Reduce this to one loop.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Mon, 12 Jul 2010 06:47:29 +0000 (23:47 -0700)

Merge branch 'maint'

* maint:
Documentation: Spelling fix in protocol-capabilities.txt
checkout: accord documentation to what git does
t0005: work around strange $? in ksh when program terminated by a signal

t3000 (ls-files -o): modernize styleJonathan Nieder Sun, 11 Jul 2010 04:20:25 +0000 (23:20 -0500)

t3000 (ls-files -o): modernize style

This script is part of the second batch of tests, from the same day
the test infrastructure was added to git. Update it to use a more
modern style in the spirit of v1.6.4-rc0~45^2~2 (2009-05-22).
In particular:

- Put setup code inside test assertions, to avoid unexpected
breakages and avoid stray output without -v (as t/README
recommends); and

- Put the test title on the same line as the "test_expect_success",
and end the line with a single-quote to begin the body of the test
which is one multi-line string.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation: Spelling fix in protocol-capabilities.txtFredrik Skolmli Sat, 10 Jul 2010 00:00:01 +0000 (02:00 +0200)

Documentation: Spelling fix in protocol-capabilities.txt

Signed-off-by: Fredrik Skolmli <fredrik@frsk.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

merge-recursive: use "up-to-date" instead of "uptodate... Nicolas Sebrecht Fri, 9 Jul 2010 20:27:49 +0000 (22:27 +0200)

merge-recursive: use "up-to-date" instead of "uptodate" in error message for consistency

Signed-off-by: Nicolas Sebrecht <nicolas.s.dev@gmx.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

checkout: accord documentation to what git doesNicolas Sebrecht Fri, 9 Jul 2010 20:27:48 +0000 (22:27 +0200)

checkout: accord documentation to what git does

Signed-off-by: Nicolas Sebrecht <nicolas.s.dev@gmx.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t0005: work around strange $? in ksh when program termi... Johannes Sixt Fri, 9 Jul 2010 07:05:16 +0000 (09:05 +0200)

t0005: work around strange $? in ksh when program terminated by a signal

ksh93 is known to report $? of programs that terminated by a signal as
256 + signal number instead of 128 + signal number like other POSIX
compliant shells (ksh's behavior is still POSIX compliant in this regard).

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge remote branch 'ko/master' into jc/read-tree-cache... Junio C Hamano Fri, 9 Jul 2010 01:55:50 +0000 (18:55 -0700)

Merge remote branch 'ko/master' into jc/read-tree-cache-tree-fix

* ko/master: (2325 commits)
Git 1.7.2-rc2
backmerge a few more fixes to 1.7.1.X series
fix git branch -m in presence of cross devices
t/t0006: specify timezone as EST5 not EST to comply with POSIX
add missing && to submodule-merge testcase
t/README: document more test helpers
test-date: fix sscanf type conversion
xdiff: optimise for no whitespace difference when ignoring whitespace.
gitweb: Move evaluate_gitweb_config out of run_request
parse_date: fix signedness in timezone calculation
t0006: test timezone parsing
rerere.txt: Document forget subcommand
t/README: proposed rewording...
t/README: Document the do's and don'ts of tests
t/README: Add a section about skipping tests
t/README: Document test_expect_code
t/README: Document test_external*
t/README: Document the prereq functions, and 3-arg test_*
t/README: Typo: paralell -> parallel
t/README: The trash is in 't/trash directory.$name'
...

Conflicts:
builtin-read-tree.c

diff.c: fix a graph output bugBo Yang Thu, 8 Jul 2010 15:12:34 +0000 (23:12 +0800)

diff.c: fix a graph output bug

When --graph is in effect, the line-prefix typically has colored graph
line segments and ends with reset. The color sequence "set" given to
this function is for showing the metainfo part of the patch text and
(1) it should not be applied to the graph lines, and (2) it will be
reset at the end of line_prefix so it won't be in effect anyway.

Signed-off-by: Bo Yang <struggleyb.nku@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

tests: Use skip_all=* to skip testsÆvar Arnfjörð Bjarmason Thu, 8 Jul 2010 01:16:06 +0000 (01:16 +0000)

tests: Use skip_all=* to skip tests

Change tests to skip with skip_all=* + test_done instead of using say
+ test_done.

This is a follow-up to "tests: Skip tests in a way that makes sense
under TAP" (fadb5156e4). I missed these cases when prepearing that
patch, hopefully this is all of them.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix "read-tree -m A B" priming the cache-treeJunio C Hamano Fri, 9 Jul 2010 00:27:43 +0000 (17:27 -0700)

Fix "read-tree -m A B" priming the cache-tree

In 456156d a shortcut to priming the index tree reference was
introduced, but the justification for it was completely bogus.

"read-tree -m A B" is to take the index (and the working tree)
that is largely based on (but does not have to match exactly) A
and update it to B, while carrying the local change that does
not overlap the difference between A and B, so there is no reason
to expect that the resulting index should match the tree B.

Noticed and test provided by Heiko Voigt.

Signed-off-by: Junio C Hamano <gitster@pobox.com>

Reorganize `git-log' man page to clarify common diff... Eli Barzilay Thu, 8 Jul 2010 02:14:31 +0000 (22:14 -0400)

Reorganize `git-log' man page to clarify common diff options.

This will reduce considerably the common confusion where people miss the
`--follow' option, and wonder why `-M'/`-C' is not working.

* Move the diff options include to after the log-specific flags, and add
a "Common diff options" subtitle before them. (These options apply
only when patches are shown, which is not a common use case among
newbies, so having them first is confusing.)

* Move the `--follow' description to the top of the listed options. The
options before that seem less important: `--full-diff' applies only
when patches are shown, `--source' and `--decorate' are less useful
with many common commit specifications.

* Clarify that `--follow' works only for a single path argument.

Signed-off-by: Eli Barzilay <eli@barzilay.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t9118 (git-svn): prevent early failure from taking... Jonathan Nieder Thu, 8 Jul 2010 13:36:02 +0000 (08:36 -0500)

t9118 (git-svn): prevent early failure from taking down later tests

When test #2 fails, the cwd is project/, causing all the
remaining tests in the same script to get confused and fail.

So in the spirit of v1.7.1.1~53^2~10 (t5550-http-fetch: Use subshell
for repository operations, 2010-04-17), use a subshell for svn
working copy operations. This way, the cwd will reliably return
to the top of the trash directory and later tests can still be run
when a command has failed.

Reported-by: A Large Angry SCM <gitzilla@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Acked-by: Eric Wong <normalperson@yhbt.net>

t9118: avoid PEG revision identifier in testsMichael J Gruber Thu, 8 Jul 2010 19:16:35 +0000 (21:16 +0200)

t9118: avoid PEG revision identifier in tests

@ is SVN's identifier for PEG revisions. But SVN's treatment of PEG
identifiers in copy target URLs changed in r954995/r952973, i.e. between
1.6.11 and 1.6.12. They get eaten now (which is considered the right
way).

Therefore, avoid the @ in the tests with funky branch names.

Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Acked-by: Eric Wong <normalperson@yhbt.net>

grep -O: Do not pass color sequences as filenames to... Nazri Ramliy Sat, 3 Jul 2010 02:55:06 +0000 (21:55 -0500)

grep -O: Do not pass color sequences as filenames to pager

With a .gitconfig like this:

[color]
ui = auto
[color "grep"]
filename = magenta

if stdout is a terminal, the grep machinery will output the color
sequence \e[36m before each filename in its output.

In the case of "git grep -O foo", output is argv for the pager.
Disable color when calling the grep machinery in this case.

Signed-off-by: Nazri Ramliy <ayiehere@gmail.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>