gitweb.git
cherry-pick/revert: add support for -X/--strategy-optionJonathan Nieder Sat, 11 Dec 2010 00:51:44 +0000 (18:51 -0600)

cherry-pick/revert: add support for -X/--strategy-option

For example, this would allow cherry-picking or reverting patches from
a piece of history with a different end-of-line style, like so:

$ git revert -Xrenormalize old-problematic-commit

Currently that is possible with manual use of merge-recursive but the
cherry-pick/revert porcelain does not expose the functionality.

While at it, document the existing support for --strategy.

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

Merge branch 'rj/maint-difftool-cygwin-workaround'Junio C Hamano Thu, 23 Dec 2010 20:51:11 +0000 (12:51 -0800)

Merge branch 'rj/maint-difftool-cygwin-workaround'

* rj/maint-difftool-cygwin-workaround:
difftool: Fix failure on Cygwin

Merge branch 'maint'Junio C Hamano Thu, 23 Dec 2010 04:33:12 +0000 (20:33 -0800)

Merge branch 'maint'

* maint:
test-lib.sh/test_decode_color(): use octal not hex in awk script

Makefile: add NO_FNMATCH_CASEFOLD to IRIX sectionsBrandon Casey Wed, 22 Dec 2010 23:58:51 +0000 (15:58 -0800)

Makefile: add NO_FNMATCH_CASEFOLD to IRIX sections

IRIX's fnmatch() does not support the GNU FNM_CASEFOLD extension, so set
NO_FNMATCH_CASEFOLD so that the internal fnmatch implementation will be
used.

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

test-lib.sh/test_decode_color(): use octal not hex... Brandon Casey Wed, 22 Dec 2010 23:58:52 +0000 (15:58 -0800)

test-lib.sh/test_decode_color(): use octal not hex in awk script

POSIX awk seems to explicitly not support hexadecimal escape sequences.

From http://pubs.opengroup.org/onlinepubs/009695399/:

Regular expressions in awk have been extended somewhat...
One sequence that is not supported is hexadecimal value escapes
beginning with '\x'.

This affects the awk on IRIX 6.5, and causes t4015.56 to fail.
Use octal instead.

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

Merge branch 'rj/maint-test-fixes'Junio C Hamano Wed, 22 Dec 2010 22:41:26 +0000 (14:41 -0800)

Merge branch 'rj/maint-test-fixes'

* rj/maint-test-fixes:
t9501-*.sh: Fix a test failure on Cygwin
lib-git-svn.sh: Add check for mis-configured web server variables
lib-git-svn.sh: Avoid setting web server variables unnecessarily
t9142: Move call to start_httpd into the setup test
t3600-rm.sh: Don't pass a non-existent prereq to test #15

Merge branch 'jc/maint-am-abort-safely'Junio C Hamano Wed, 22 Dec 2010 22:41:19 +0000 (14:41 -0800)

Merge branch 'jc/maint-am-abort-safely'

* jc/maint-am-abort-safely:
am --abort: keep unrelated commits since the last failure and warn

Merge branch 'jk/commit-die-on-bogus-ident'Junio C Hamano Wed, 22 Dec 2010 22:41:14 +0000 (14:41 -0800)

Merge branch 'jk/commit-die-on-bogus-ident'

* jk/commit-die-on-bogus-ident:
commit: die before asking to edit the log message
ident: die on bogus date format

Conflicts:
builtin/commit.c

Merge branch 'pd/bash-4-completion'Junio C Hamano Wed, 22 Dec 2010 22:40:55 +0000 (14:40 -0800)

Merge branch 'pd/bash-4-completion'

* pd/bash-4-completion:
bash: simple reimplementation of _get_comp_words_by_ref
bash: get --pretty=m<tab> completion to work with bash v4

Conflicts:
contrib/completion/git-completion.bash

Merge branch 'nd/maint-fix-add-typo-detection'Junio C Hamano Wed, 22 Dec 2010 22:40:26 +0000 (14:40 -0800)

Merge branch 'nd/maint-fix-add-typo-detection'

* nd/maint-fix-add-typo-detection:
Revert "excluded_1(): support exclude files in index"
unpack-trees: fix sparse checkout's "unable to match directories"
unpack-trees: move all skip-worktree checks back to unpack_trees()
dir.c: add free_excludes()
cache.h: realign and use (1 << x) form for CE_* constants

Merge branch 'tf/commit-list-prefix'Junio C Hamano Wed, 22 Dec 2010 22:40:17 +0000 (14:40 -0800)

Merge branch 'tf/commit-list-prefix'

* tf/commit-list-prefix:
commit: Add commit_list prefix in two function names.

Conflicts:
sha1_name.c

Merge branch 'maint'Junio C Hamano Tue, 21 Dec 2010 22:45:28 +0000 (14:45 -0800)

Merge branch 'maint'

* maint:
t0050: fix printf format strings for portability
t3419-*.sh: Fix arithmetic expansion syntax error

Merge branch 'ks/blame-worktree-textconv-cached'Junio C Hamano Tue, 21 Dec 2010 22:30:52 +0000 (14:30 -0800)

Merge branch 'ks/blame-worktree-textconv-cached'

* ks/blame-worktree-textconv-cached:
fill_textconv(): Don't get/put cache if sha1 is not valid
t/t8006: Demonstrate blame is broken when cachetextconv is on

Merge branch 'jk/t2107-now-passes'Junio C Hamano Tue, 21 Dec 2010 22:30:47 +0000 (14:30 -0800)

Merge branch 'jk/t2107-now-passes'

* jk/t2107-now-passes:
t2107: mark passing test as success

Merge branch 'jk/maint-decorate-01-bool'Junio C Hamano Tue, 21 Dec 2010 22:30:43 +0000 (14:30 -0800)

Merge branch 'jk/maint-decorate-01-bool'

* jk/maint-decorate-01-bool:
handle arbitrary ints in git_config_maybe_bool

Merge branch 'tc/completion-reflog'Junio C Hamano Tue, 21 Dec 2010 22:30:23 +0000 (14:30 -0800)

Merge branch 'tc/completion-reflog'

* tc/completion-reflog:
bash completion: add basic support for git-reflog

Merge branch 'nd/oneline-sha1-name-from-specific-ref'Junio C Hamano Tue, 21 Dec 2010 22:30:19 +0000 (14:30 -0800)

Merge branch 'nd/oneline-sha1-name-from-specific-ref'

* nd/oneline-sha1-name-from-specific-ref:
get_sha1: handle special case $commit^{/}
get_sha1: support $commit^{/regex} syntax
get_sha1_oneline: make callers prepare the commit list to traverse
get_sha1_oneline: fix lifespan rule of temp_commit_buffer variable

Merge branch 'jn/maint-gitweb-pathinfo-fix'Junio C Hamano Tue, 21 Dec 2010 22:30:09 +0000 (14:30 -0800)

Merge branch 'jn/maint-gitweb-pathinfo-fix'

* jn/maint-gitweb-pathinfo-fix:
gitweb: Fix handling of whitespace in generated links

t0050: fix printf format strings for portabilityJonathan Nieder Tue, 21 Dec 2010 20:27:55 +0000 (14:27 -0600)

t0050: fix printf format strings for portability

Unlike bash and ksh, dash passes through hexadecimal \xcc escapes.
So when run with dash, these tests *pass* (since '\xcc' is a perfectly
reasonable filename) but they are not testing what was intended.

Use octal escapes instead, in the spirit of v1.6.1-rc1~55^2
(2008-11-09).

Reported-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t3419-*.sh: Fix arithmetic expansion syntax errorRamsay Jones Tue, 21 Dec 2010 18:50:47 +0000 (18:50 +0000)

t3419-*.sh: Fix arithmetic expansion syntax error

Some shells, for example dash versions older than 0.5.4, need to
spell a variable reference as '$N' rather than 'N' in an arithmetic
expansion. In order to avoid the syntax error, we change the
offending variable reference from 'i' to '$i' in function scramble.

There is nothing bash specific to this test script (and we shouldn't
have any bash dependent test). Fix its shebang line.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

am --abort: keep unrelated commits since the last failu... Junio C Hamano Tue, 21 Dec 2010 18:35:53 +0000 (10:35 -0800)

am --abort: keep unrelated commits since the last failure and warn

After making commits (either by pulling or doing their own work) after a
failed "am", the user will be reminded by next "am" invocation that there
was a failed "am" that the user needs to decide to resolve or to get rid
of the old "am" attempt. The "am --abort" option was meant to help the
latter. However, it rewinded the HEAD back to the beginning of the failed
"am" attempt, discarding commits made (perhaps by mistake) since.

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

set_try_to_free_routine(NULL) means "do nothing special"Junio C Hamano Tue, 21 Dec 2010 17:24:18 +0000 (09:24 -0800)

set_try_to_free_routine(NULL) means "do nothing special"

This way, the next caller that wants to disable our memory reclamation
machinery does not have to define its own do_nothing() stub.

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

commit: die before asking to edit the log messageJunio C Hamano Tue, 21 Dec 2010 01:00:36 +0000 (17:00 -0800)

commit: die before asking to edit the log message

When determine_author_info() returns to the calling prepare_to_commit(),
we already know the pieces of information necessary to determine what
author ident will be used in the final message, but deferred making a call
to fmt_ident() before the final commit_tree(). Most importantly, we would
open the editor to ask the user to compose the log message before it.

As one important side effect of fmt_ident() is to error out when the given
information is malformed, this resulted in us spawning the editor first
and then refusing to commit due to error, even though we had enough
information to detect the error before starting the editor, which was
annoying.

Move the fmt_ident() call to the end of determine_author_info() where we
have final determination of author info to rectify this.

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

completion: add missing configuration variablesMartin von Zweigbergk Mon, 20 Dec 2010 15:18:25 +0000 (16:18 +0100)

completion: add missing configuration variables

Quite a few configuration variables have been added since 226b343
(completion: add missing configuration variables to _git_config(),
2009-05-03). Add these variables to the Bash completion script.

Also remove the obsolete 'add.ignore-errors' and
'color.grep.external', as well as 'diff.renameLimit.', which never
existed and rename the misspelled 'sendemail.aliasesfiletype'.

Signed-off-by: Martin von Zweigbergk <martin.von.zweigbergk@gmail.com>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

ident: die on bogus date formatJeff King Mon, 13 Dec 2010 17:02:25 +0000 (12:02 -0500)

ident: die on bogus date format

If the user gives "git commit --date=foobar", we silently
ignore the --date flag. We should note the error.

This patch puts the fix at the lowest level of fmt_ident,
which means it also handles GIT_AUTHOR_DATE=foobar, as well.

There are two down-sides to this approach:

1. Technically this breaks somebody doing something like
"git commit --date=now", which happened to work because
bogus data is the same as "now". Though we do
explicitly handle the empty string, so anybody passing
an empty variable through the environment will still
work.

If the error is too much, perhaps it can be downgraded
to a warning?

2. The error checking happens _after_ the commit message
is written, which can be annoying to the user. We can
put explicit checks closer to the beginning of
git-commit, but that feels a little hack-ish; suddenly
git-commit has to care about how fmt_ident works. Maybe
we could simply call fmt_ident earlier?

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

fill_textconv(): Don't get/put cache if sha1 is not... Kirill Smelkov Sat, 18 Dec 2010 14:54:12 +0000 (17:54 +0300)

fill_textconv(): Don't get/put cache if sha1 is not valid

When blaming files in the working tree, the filespec is marked with
!sha1_valid, as we have not given the contents an object name yet. The
function to cache textconv results (keyed on the object name), however,
didn't check this condition, and ended up on storing the cached result
under a random object name.

Cc: Axel Bonnet <axel.bonnet@ensimag.imag.fr>
Cc: Clément Poulain <clement.poulain@ensimag.imag.fr>
Cc: Diane Gasselin <diane.gasselin@ensimag.imag.fr>
Cc: Jeff King <peff@peff.net>
Signed-off-by: Kirill Smelkov <kirr@landau.phys.spbu.ru>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t/t8006: Demonstrate blame is broken when cachetextconv... Kirill Smelkov Sat, 18 Dec 2010 14:54:11 +0000 (17:54 +0300)

t/t8006: Demonstrate blame is broken when cachetextconv is on

I have a git repository with lots of .doc and .pdf files. There diff
works ok, but blaming is painfully slow without textconv cache, and with
textconv cache, blame says lots of lines are 'Not Yet Committed' which
is wrong.

Here is a test that demonstrates the problem.

Cc: Axel Bonnet <axel.bonnet@ensimag.imag.fr>
Cc: Clément Poulain <clement.poulain@ensimag.imag.fr>
Cc: Diane Gasselin <diane.gasselin@ensimag.imag.fr>
Cc: Jeff King <peff@peff.net>
Signed-off-by: Kirill Smelkov <kirr@landau.phys.spbu.ru>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Mon, 20 Dec 2010 01:49:42 +0000 (17:49 -0800)

Merge branch 'maint'

* maint:
gitweb: Include links to feeds in HTML header only for '200 OK' response
fsck docs: remove outdated and useless diagnostic
userdiff: fix typo in ruby and python word regexes
trace.c: mark file-local function static
Fix typo in git-gc document.

t9300: use perl "head -c" clone in place of "dd bs... Jonathan Nieder Mon, 13 Dec 2010 09:28:05 +0000 (03:28 -0600)

t9300: use perl "head -c" clone in place of "dd bs=1 count=16000" kluge

It is unfortunate to have to issue thousands of one-byte read calls to
work around dd's refusal to buffer input that would fill a block after
a short read (a3a6f4, 2010-12-13). We could do better by using
"head -c", if it were available on all platforms we cared about.
Replace it with some simple perl.

While doing so, restructure 9300.114 to use a subshell instead of a
script. Subshells can inherit functions (like the new head_c) from
the parent shell while external scripts cannot.

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

t2107: mark passing test as successJeff King Sun, 19 Dec 2010 03:53:58 +0000 (22:53 -0500)

t2107: mark passing test as success

This failed on the branch where it was introduced, but was fixed
by merging with 6e67619 (Merge branch 'jn/parse-options-extra').

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

handle arbitrary ints in git_config_maybe_boolJeff King Sun, 19 Dec 2010 03:36:41 +0000 (22:36 -0500)

handle arbitrary ints in git_config_maybe_bool

This function recently gained the ability to recognize the documented "0"
and "1" values as false/true. However, unlike regular git_config_bool, it
did not treat arbitrary non-zero numbers as true.

While this is undocumented and probably ridiculous for somebody to rely
on, it is safer to behave exactly as git_config_bool would. Because
git_config_maybe_bool can be used to retrofit new non-bool values onto
existing bool options, not behaving in exactly the same way is technically
a regression.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

builtin/rm.c: Use ALLOC_GROW instead of alloc_nr and... Thiago Farina Sun, 19 Dec 2010 11:56:25 +0000 (09:56 -0200)

builtin/rm.c: Use ALLOC_GROW instead of alloc_nr and xrealloc.

Signed-off-by: Thiago Farina <tfransosi@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

builtin/branch.c: Use ALLOC_GROW instead of alloc_nr... Thiago Farina Tue, 14 Dec 2010 01:59:55 +0000 (23:59 -0200)

builtin/branch.c: Use ALLOC_GROW instead of alloc_nr and xrealloc.

Signed-off-by: Thiago Farina <tfransosi@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

gitweb: Include links to feeds in HTML header only... Jakub Narebski Sat, 18 Dec 2010 20:02:13 +0000 (21:02 +0100)

gitweb: Include links to feeds in HTML header only for '200 OK' response

To do that, generating "<link />"s to feeds were refactored into
print_feed_meta() subroutine, to keep nesting (indent) level in
git_header_html() low. This has also the advantage of making code
more clear.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: John 'Warthog9' Hawley <warthog9@eaglescrag.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

fsck docs: remove outdated and useless diagnosticMark Lodato Sat, 18 Dec 2010 05:38:38 +0000 (00:38 -0500)

fsck docs: remove outdated and useless diagnostic

In git-fsck(1), there was a reference to the warning "<tree> has full
pathnames in it". This exact wording has not been used since 2005
(commit f1f0d0889e55), when the wording was changed slightly. More
importantly, the description of that warning was useless, and there were
many other similar warning messages which were not document at all.
Since all these warnings are fairly obvious, there is no need for them
to be in the man page.

Signed-off-by: Mark Lodato <lodatom@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

userdiff: fix typo in ruby and python word regexesThomas Rast Sat, 18 Dec 2010 16:17:53 +0000 (17:17 +0100)

userdiff: fix typo in ruby and python word regexes

Both had an unclosed ] that ruined the safeguard against not matching
a non-space char.

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

trace.c: mark file-local function staticVasyl' Vavrychuk Thu, 16 Dec 2010 22:38:42 +0000 (00:38 +0200)

trace.c: mark file-local function static

Signed-off-by: Vasyl' Vavrychuk <vvavrychuk@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

bash completion: add basic support for git-reflogTay Ray Chuan Thu, 16 Dec 2010 06:56:08 +0000 (14:56 +0800)

bash completion: add basic support for git-reflog

"Promote" the reflog command out of plumbing, so that we now run
completion for it. After all, it's listed under porcelain (ancillary),
and we do run completion for those commands.

Add basic completion for the three subcommands - show, expire, delete.
Try completing refs for these too.

Helped-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix typo in git-gc document.Jiang Xin Thu, 16 Dec 2010 07:16:49 +0000 (15:16 +0800)

Fix typo in git-gc document.

The variable gc.packrefs for git-gc can be set to true, false and
"notbare", not "nobare".

Signed-off-by: Jiang Xin <jiangxin@ossxp.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Update draft release notes to 1.7.4Junio C Hamano Fri, 17 Dec 2010 05:43:08 +0000 (21:43 -0800)

Update draft release notes to 1.7.4

We are getting closer to -rc0 ;-)

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

Merge branch 'maint'Junio C Hamano Fri, 17 Dec 2010 00:36:03 +0000 (16:36 -0800)

Merge branch 'maint'

* maint:
difftool: provide basename to external tools
git-difftool.txt: correct the description of $BASE and describe $MERGED

get_sha1: handle special case $commit^{/}Nguyễn Thái Ngọc Duy Wed, 15 Dec 2010 09:02:54 +0000 (16:02 +0700)

get_sha1: handle special case $commit^{/}

Empty regex pattern should always match. But the exact behavior of
regexec() may vary. Because it always matches anyway, we can just
return 'matched' without calling regex machinery.

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

difftool: provide basename to external toolsMichael J Gruber Tue, 14 Dec 2010 09:18:35 +0000 (10:18 +0100)

difftool: provide basename to external tools

Currently, only configured diff helpers get the basename of the file
being compared. Tools specified with "git difftool -x" only get the
names of temporary files for the different versions.

Export BASE so that an external tool can read the name from the
environment. Rather than using a third argument, this avoids breaking
existing scripts which may somewhat carelessly be using "$@" rather than
"$1" "$2".

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

git-difftool.txt: correct the description of $BASE... Michael J Gruber Tue, 14 Dec 2010 09:18:34 +0000 (10:18 +0100)

git-difftool.txt: correct the description of $BASE and describe $MERGED

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

Merge branch 'kb/diff-C-M-synonym'Junio C Hamano Thu, 16 Dec 2010 20:58:59 +0000 (12:58 -0800)

Merge branch 'kb/diff-C-M-synonym'

* kb/diff-C-M-synonym:
diff: use "find" instead of "detect" as prefix for long forms of -M and -C
diff: add --detect-copies-harder as a synonym for --find-copies-harder

Merge branch 'jn/fast-import-blob-access'Junio C Hamano Thu, 16 Dec 2010 20:58:38 +0000 (12:58 -0800)

Merge branch 'jn/fast-import-blob-access'

* jn/fast-import-blob-access:
t9300: avoid short reads from dd
t9300: remove unnecessary use of /dev/stdin
fast-import: Allow cat-blob requests at arbitrary points in stream
fast-import: let importers retrieve blobs
fast-import: clarify documentation of "feature" command
fast-import: stricter parsing of integer options

Conflicts:
fast-import.c

Merge branch 'jl/fetch-submodule-recursive'Junio C Hamano Thu, 16 Dec 2010 20:57:15 +0000 (12:57 -0800)

Merge branch 'jl/fetch-submodule-recursive'

* jl/fetch-submodule-recursive:
fetch_populated_submodules(): document dynamic allocation
Submodules: Add the "fetchRecurseSubmodules" config option
Add the 'fetch.recurseSubmodules' config setting
fetch/pull: Add the --recurse-submodules option

Conflicts:
builtin/fetch.c

Merge branch 'rj/msvc-fix'Junio C Hamano Thu, 16 Dec 2010 20:55:36 +0000 (12:55 -0800)

Merge branch 'rj/msvc-fix'

* rj/msvc-fix:
msvc: Fix macro redefinition warnings
msvc: Fix build by adding missing INTMAX_MAX define
msvc: git-daemon.exe: Fix linker "unresolved externals" error
msvc: Fix compilation errors in compat/win32/sys/poll.c

Merge branch 'nd/extended-sha1-relpath'Junio C Hamano Thu, 16 Dec 2010 20:51:05 +0000 (12:51 -0800)

Merge branch 'nd/extended-sha1-relpath'

* nd/extended-sha1-relpath:
get_sha1: teach ":$n:<path>" the same relative path logic
get_sha1: support relative path ":path" syntax
Make prefix_path() return char* without const

Conflicts:
sha1_name.c

Merge branch 'aa/status-hilite-branch'Junio C Hamano Thu, 16 Dec 2010 20:50:03 +0000 (12:50 -0800)

Merge branch 'aa/status-hilite-branch'

* aa/status-hilite-branch:
default color.status.branch to "same as header"
status: show branchname with a configurable color

Merge branch 'ak/describe-exact'Junio C Hamano Thu, 16 Dec 2010 20:49:59 +0000 (12:49 -0800)

Merge branch 'ak/describe-exact'

* ak/describe-exact:
describe: Delay looking up commits until searching for an inexact match
describe: Store commit_names in a hash table by commit SHA1
describe: Do not use a flex array in struct commit_name
describe: Use for_each_rawref

Merge branch 'nd/maint-relative'Junio C Hamano Thu, 16 Dec 2010 20:49:48 +0000 (12:49 -0800)

Merge branch 'nd/maint-relative'

* nd/maint-relative:
get_cwd_relative(): do not misinterpret root path

Merge branch 'jn/maint-svn-fe'Junio C Hamano Thu, 16 Dec 2010 20:49:35 +0000 (12:49 -0800)

Merge branch 'jn/maint-svn-fe'

* jn/maint-svn-fe:
t9010 fails when no svn is available
vcs-svn: fix intermittent repo_tree corruption
treap: make treap_insert return inserted node
t9010 (svn-fe): Eliminate dependency on svn perl bindings

Merge branch 'jc/maint-svn-info-test-fix'Junio C Hamano Thu, 16 Dec 2010 20:49:28 +0000 (12:49 -0800)

Merge branch 'jc/maint-svn-info-test-fix'

* jc/maint-svn-info-test-fix:
t9119: do not compare "Text Last Updated" line from "svn info"

Merge branch 'jn/submodule-b-current'Junio C Hamano Thu, 16 Dec 2010 20:49:22 +0000 (12:49 -0800)

Merge branch 'jn/submodule-b-current'

* jn/submodule-b-current:
git submodule: Remove now obsolete tests before cloning a repo
git submodule -b ... of current HEAD fails

Merge branch 'jn/maint-fast-import-object-reuse'Junio C Hamano Thu, 16 Dec 2010 20:49:16 +0000 (12:49 -0800)

Merge branch 'jn/maint-fast-import-object-reuse'

* jn/maint-fast-import-object-reuse:
fast-import: insert new object entries at start of hash bucket

Merge branch 'jn/fast-import-ondemand-checkpoint'Junio C Hamano Thu, 16 Dec 2010 20:49:11 +0000 (12:49 -0800)

Merge branch 'jn/fast-import-ondemand-checkpoint'

* jn/fast-import-ondemand-checkpoint:
fast-import: treat SIGUSR1 as a request to access objects early

Sync with 1.7.3.4Junio C Hamano Wed, 15 Dec 2010 23:30:49 +0000 (15:30 -0800)

Sync with 1.7.3.4

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

Git 1.7.3.4 v1.7.3.4Junio C Hamano Wed, 15 Dec 2010 19:47:40 +0000 (11:47 -0800)

Git 1.7.3.4

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

Git 1.7.2.5 v1.7.2.5Junio C Hamano Wed, 15 Dec 2010 19:45:36 +0000 (11:45 -0800)

Git 1.7.2.5

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

Git 1.7.1.4 v1.7.1.4Junio C Hamano Wed, 15 Dec 2010 19:40:40 +0000 (11:40 -0800)

Git 1.7.1.4

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

Git 1.7.0.9 v1.7.0.9Junio C Hamano Wed, 15 Dec 2010 19:38:19 +0000 (11:38 -0800)

Git 1.7.0.9

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

Git 1.6.6.3 v1.6.6.3Junio C Hamano Wed, 15 Dec 2010 19:32:57 +0000 (11:32 -0800)

Git 1.6.6.3

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

Git 1.6.5.9 v1.6.5.9Junio C Hamano Wed, 15 Dec 2010 19:27:41 +0000 (11:27 -0800)

Git 1.6.5.9

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

Git 1.6.4.5 v1.6.4.5Junio C Hamano Wed, 15 Dec 2010 19:19:11 +0000 (11:19 -0800)

Git 1.6.4.5

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

gitweb: Introduce esc_attr to escape attributes of... Jakub Narebski Tue, 14 Dec 2010 23:34:01 +0000 (00:34 +0100)

gitweb: Introduce esc_attr to escape attributes of HTML elements

It is needed only to escape attributes of handcrafted HTML elements,
and not those generated using CGI.pm subroutines / methods for HTML
generation.

While at it, add esc_url and esc_html where needed, and prefer to use
CGI.pm HTML generating methods than handcrafted HTML code. Most of
those are probably unnecessary (could be exploited only by person with
write access to gitweb config, or at least access to the repository).

This fixes CVE-2010-3906

Reported-by: Emanuele Gentili <e.gentili@tigersecurity.it>
Helped-by: John 'Warthog9' Hawley <warthog9@kernel.org>
Helped-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'master' (early part) into pd/bash-4-compl... Jonathan Nieder Wed, 15 Dec 2010 06:05:33 +0000 (00:05 -0600)

Merge branch 'master' (early part) into pd/bash-4-completion

* 'master' (early part): (529 commits)
completion: fix zsh check under bash with 'set -u'
Fix copy-pasted comments related to tree diff handling.
Git 1.7.3.2
{cvs,svn}import: use the new 'git read-tree --empty'
t/t9001-send-email.sh: fix stderr redirection in 'Invalid In-Reply-To'
Clarify and extend the "git diff" format documentation
git-show-ref.txt: clarify the pattern matching
documentation: git-config minor cleanups
Update test script annotate-tests.sh to handle missing/extra authors
Better advice on using topic branches for kernel development
Documentation: update implicit "--no-index" behavior in "git diff"
Documentation: expand 'git diff' SEE ALSO section
Documentation: diff can compare blobs
Documentation: gitrevisions is in section 7
fast-import: Allow filemodify to set the root
shell portability: no "export VAR=VAL"
CodingGuidelines: reword parameter expansion section
Documentation: update-index: -z applies also to --index-info
gitweb: Improve behavior for actionless path_info gitweb URLs
gitweb: Fix bug in evaluate_path_info
...

Conflicts:
GIT-VERSION-GEN
RelNotes
contrib/completion/git-completion.bash

bash: simple reimplementation of _get_comp_words_by_refJonathan Nieder Wed, 15 Dec 2010 04:57:58 +0000 (22:57 -0600)

bash: simple reimplementation of _get_comp_words_by_ref

Add a minimal implementation of _get_comp_words_by_ref so

$ git show head:g <tab><tab>

on bash 4 can complete paths within the head commit without requiring
the bash_completion functions to be loaded. This is a follow-up to
the previous patch (bash: get --pretty=m<tab> completion to work with
bash v4).

Based on bash-completion 2.x (commit bf763033, 2010-10-26) but tweaked
for simplicity and to allow zsh to parse the code.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Improved-by: SZEDER Gábor <szeder@ira.uka.de>

bash: get --pretty=m<tab> completion to work with bash v4Peter van der Does Thu, 2 Dec 2010 08:17:13 +0000 (02:17 -0600)

bash: get --pretty=m<tab> completion to work with bash v4

Bash's programmable completion provides the COMP_WORDS array variable,
which holds the individual words in the current command line. In bash
versions prior to v4 "words are split on shell metacharacters as the
shell parser would separate them" (quote from bash v3.2.48's man
page). This behavior has changed with bash v4, and the command line
"is split into words as readline would split it, using COMP_WORDBREAKS
as" "the set of characters that the readline library treats as word
separators" (quote from bash v4's man page).

Since COMP_WORDBREAKS contains the characters : and = by default, this
behavior change in bash affects git's completion script. For example,
before bash 4, running

$ git log --pretty=m <tab><tab>

would give a list of pretty-printing formats starting with 'm' but now
it completes on branch names.

It would be possible to work around this by removing '=' and ':' from
COMP_WORDBREAKS, but as noticed in v1.5.6.4~9^2 (bash completion:
Resolve git show ref:path<tab> losing ref: portion, 2008-07-15), that
would break *other* completion scripts. The bash-completion library
includes a better workaround: the _get_comp_words_by_ref function
re-assembles a copy of COMP_WORDS, excluding a collection of word
separators of the caller's choice. Use it.

As a bonus, this also improves behavior when tab is pressed with the
cursor in the middle of a word.

To avoid breaking setups with the bash-completion library not already
loaded, if the _get_comp_words_by_ref function is not defined then a
shim that just reads COMP_WORDS will be used instead (no change from
the current behavior in that case).

Signed-off-by: Peter van der Does <peter@avirtualhome.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Explained-by: SZEDER Gábor <szeder@ira.uka.de>

get_sha1: support $commit^{/regex} syntaxNguyễn Thái Ngọc Duy Mon, 13 Dec 2010 03:01:15 +0000 (10:01 +0700)

get_sha1: support $commit^{/regex} syntax

This works like ":/regex" syntax that finds a recently created commit
starting from all refs, but limits the discovery to those reachable from
the named commit.

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

difftool: Fix failure on CygwinRamsay Jones Tue, 14 Dec 2010 18:27:48 +0000 (18:27 +0000)

difftool: Fix failure on Cygwin

In particular, test 14 'difftool last flag wins' in t7800 fails.
This is caused by git-difftool.perl passing both GIT_DIFFTOOL_NO_PROMPT
(='true') and GIT_DIFFTOOL_PROMPT (='true') to the difftool helper
script. Despite the appropriate key being deleted from the ENV
hash, it seems that once a key has been set in the hash, it gets
passed along to the system() call. (ie deleting the key does not
do the equivalent of unsetenv()).

In order to fix the problem, we keep track of the required prompt
state while processing the arguments, and then set the relevant
ENV hash key only once at the end.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t9501-*.sh: Fix a test failure on CygwinRamsay Jones Tue, 14 Dec 2010 18:26:38 +0000 (18:26 +0000)

t9501-*.sh: Fix a test failure on Cygwin

The first (setup) test attempts to create a file, using the
test_commit function, called 'i can has snapshot?'. On cygwin
(and MinGW) this fails with a "No such file or directory" error.
In order to fix the tests, we simply remove the '?' wildcard
from the name, since the purpose of these tests is not about
creating funny filenames.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

lib-git-svn.sh: Add check for mis-configured web server... Ramsay Jones Tue, 14 Dec 2010 18:25:11 +0000 (18:25 +0000)

lib-git-svn.sh: Add check for mis-configured web server variables

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

lib-git-svn.sh: Avoid setting web server variables... Ramsay Jones Tue, 14 Dec 2010 18:22:29 +0000 (18:22 +0000)

lib-git-svn.sh: Avoid setting web server variables unnecessarily

If the SVN_HTTPD_PORT variable is not set, then we will not even
attempt to start a web server in the start_httpd function (despite
it's name), so there is no need to determine values for the
SVN_HTTPD_PATH and SVN_HTTPD_MODULE_PATH variables.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t9142: Move call to start_httpd into the setup testRamsay Jones Tue, 14 Dec 2010 18:20:38 +0000 (18:20 +0000)

t9142: Move call to start_httpd into the setup test

In addition to being more consistent with the other calls to
start_httpd in tests t9115-*.sh, t9118-*.sh and t9120-*.sh, this
has the added benefit of making the test less noisy. (start_httpd
writes "SVN_HTTPD_PORT is not defined!" on stderr.)

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t3600-rm.sh: Don't pass a non-existent prereq to test #15Ramsay Jones Tue, 14 Dec 2010 18:19:09 +0000 (18:19 +0000)

t3600-rm.sh: Don't pass a non-existent prereq to test #15

Commit c91cfd19 (tests: A SANITY test prereq for testing if we're
root, 2010-08-06) introduced a SANITY prerequisite which had very
similar semantics to RO_DIR. That commit removed the code to set
RO_DIR, but forgot to replace RO_DIR with SANITY in test #15.

In order not to skip test 15 unnecessarily, since RO_DIR will never
be set, we pass the SANITY prerequisite instead.

Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

gitweb: Fix handling of whitespace in generated linksJakub Narebski Tue, 14 Dec 2010 15:54:31 +0000 (16:54 +0100)

gitweb: Fix handling of whitespace in generated links

When creating path_info part of link, don't encode space as '+', because
while $cgi->param('foo') translates '+' in query param to ' ', neither
$ENV{'PATH_INFO'} nor $cgi->path_info() do.

This fixes the issue with pathnames with embedded whitespace and
$feature{'pathinfo'} / path_info links. It is done by using newly
introduced esc_path_info() instead of esc_url() in href() subroutine.

Also while links are more clear not escaping space (' ') characters in
generated links, the trailing space must be URI-encoded, otherwise would
get discarded.

Issue noticed thanks to John 'Warthog9' Hawley.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge git://git.kernel.org/pub/scm/gitk/gitkJunio C Hamano Tue, 14 Dec 2010 17:09:13 +0000 (09:09 -0800)

Merge git://git.kernel.org/pub/scm/gitk/gitk

* git://git.kernel.org/pub/scm/gitk/gitk:
gitk: Add Brazilian Portuguese (pt-BR) translation
gitk: Make text selectable on Mac
gitk: Prevent the text pane from becoming editable
gitk: Add the equivalent of diff --color-words
gitk: Update Swedish translation (290t)
gitk: Show notes by default (like git log does)

Merge branch 'maint'Junio C Hamano Tue, 14 Dec 2010 16:57:38 +0000 (08:57 -0800)

Merge branch 'maint'

* maint:
Prepare for 1.7.3.4
use persistent memory for rejected paths
do not overwrite files in leading path
lstat_cache: optionally return match_len
add function check_ok_to_remove()
t7607: add leading-path tests
t7607: use test-lib functions and check MERGE_HEAD
Do not link with -lcrypto under NO_OPENSSL

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

Prepare for 1.7.3.4Junio C Hamano Tue, 14 Dec 2010 15:51:35 +0000 (07:51 -0800)

Prepare for 1.7.3.4

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

use persistent memory for rejected pathsClemens Buchacher Mon, 15 Nov 2010 19:52:19 +0000 (20:52 +0100)

use persistent memory for rejected paths

An aborted merge prints the list of rejected paths as part of the
error message. Since commit f66caaf9 (do not overwrite files in
leading path), some of those paths do not have static buffers, so
we have to keep a copy. Use string_list's to accomplish this.

This changes the order of the list to the order in which the paths
are processed. Previously, it was reversed.

Signed-off-by: Clemens Buchacher <drizzd@aon.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

do not overwrite files in leading pathClemens Buchacher Sat, 9 Oct 2010 13:53:00 +0000 (15:53 +0200)

do not overwrite files in leading path

If the work tree contains an untracked file x, and
unpack-trees wants to checkout a path x/*, the
file x is removed unconditionally.

Instead, apply the same checks that are normally
used for untracked files, and abort if the file
cannot be removed.

Signed-off-by: Clemens Buchacher <drizzd@aon.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

lstat_cache: optionally return match_lenClemens Buchacher Sat, 9 Oct 2010 13:52:59 +0000 (15:52 +0200)

lstat_cache: optionally return match_len

Return match_len so that the caller can know which leading path
component matched.

Signed-off-by: Clemens Buchacher <drizzd@aon.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

add function check_ok_to_remove()Clemens Buchacher Sat, 9 Oct 2010 13:52:58 +0000 (15:52 +0200)

add function check_ok_to_remove()

This wraps some inline code into the function check_ok_to_remove(),
which will later be used for leading path components as well.

Signed-off-by: Clemens Buchacher <drizzd@aon.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t7607: add leading-path testsClemens Buchacher Sun, 10 Oct 2010 08:38:58 +0000 (10:38 +0200)

t7607: add leading-path tests

Signed-off-by: Clemens Buchacher <drizzd@aon.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t7607: use test-lib functions and check MERGE_HEADClemens Buchacher Sun, 10 Oct 2010 08:35:43 +0000 (10:35 +0200)

t7607: use test-lib functions and check MERGE_HEAD

Use the test_commit and test_path_is_missing
functions from the test library.

Also make sure that a merge which fails due to
pre-merge checks aborts properly and does not
leave MERGE_HEAD behind.

The "will not overwrite removed file" test is an
exception to this. It notices the untracked file
at a stage where the merge is already well under
way. Therefore we cannot abort the merge without
major restructuring. See the following thread for
more details.

http://mid.gmane.org/7vskopwxej.fsf@gitster.siamese.dyndns.org

Signed-off-by: Clemens Buchacher <drizzd@aon.at>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'jc/maint-no-openssl-build-fix' into maintJunio C Hamano Tue, 14 Dec 2010 15:50:20 +0000 (07:50 -0800)

Merge branch 'jc/maint-no-openssl-build-fix' into maint

* jc/maint-no-openssl-build-fix:
Do not link with -lcrypto under NO_OPENSSL

Merge branch 'ja/maint-pull-rebase-doc' into maintJunio C Hamano Tue, 14 Dec 2010 15:36:23 +0000 (07:36 -0800)

Merge branch 'ja/maint-pull-rebase-doc' into maint

* ja/maint-pull-rebase-doc:
git-pull.txt: Mention branch.autosetuprebase

Merge branch 'tc/http-urls-ends-with-slash' into maintJunio C Hamano Tue, 14 Dec 2010 15:36:10 +0000 (07:36 -0800)

Merge branch 'tc/http-urls-ends-with-slash' into maint

* tc/http-urls-ends-with-slash:
http-fetch: rework url handling
http-push: add trailing slash at arg-parse time, instead of later on
http-push: check path length before using it
http-push: Normalise directory names when pushing to some WebDAV servers
http-backend: use end_url_with_slash()
url: add str wrapper for end_url_with_slash()
shift end_url_with_slash() from http.[ch] to url.[ch]
t5550-http-fetch: add test for http-fetch
t5550-http-fetch: add missing '&&'

Merge branch 'nd/maint-hide-checkout-index-from-error... Junio C Hamano Tue, 14 Dec 2010 15:36:00 +0000 (07:36 -0800)

Merge branch 'nd/maint-hide-checkout-index-from-error' into maint

* nd/maint-hide-checkout-index-from-error:
entry.c: remove "checkout-index" from error messages

Merge branch 'jk/maint-reflog-bottom' into maintJunio C Hamano Tue, 14 Dec 2010 15:35:50 +0000 (07:35 -0800)

Merge branch 'jk/maint-reflog-bottom' into maint

* jk/maint-reflog-bottom:
reflogs: clear flags properly in corner case

Merge branch 'mz/rebase-abort-reflog-fix' into maintJunio C Hamano Tue, 14 Dec 2010 15:35:44 +0000 (07:35 -0800)

Merge branch 'mz/rebase-abort-reflog-fix' into maint

* mz/rebase-abort-reflog-fix:
rebase --abort: do not update branch ref

Merge branch 'mz/maint-rebase-stat-config' into maintJunio C Hamano Tue, 14 Dec 2010 15:35:31 +0000 (07:35 -0800)

Merge branch 'mz/maint-rebase-stat-config' into maint

* mz/maint-rebase-stat-config:
rebase: only show stat if configured to true

Merge branch 'gc/http-with-non-ascii-username-url'... Junio C Hamano Tue, 14 Dec 2010 15:35:18 +0000 (07:35 -0800)

Merge branch 'gc/http-with-non-ascii-username-url' into maint

* gc/http-with-non-ascii-username-url:
Fix username and password extraction from HTTP URLs
t5550: test HTTP authentication and userinfo decoding

Conflicts:
t/lib-httpd/apache.conf

gitk: Add Brazilian Portuguese (pt-BR) translationAlexandre Erwin Ittner Tue, 7 Dec 2010 22:56:06 +0000 (20:56 -0200)

gitk: Add Brazilian Portuguese (pt-BR) translation

Translating a SCM is tricky due to amount of jargon, so, I tried to
keep the wording consistent with both the German and Italian git
translations and the pt-BR translation of other SCMs.

Signed-off-by: Alexandre Erwin Ittner <alexandre@ittner.com.br>
Signed-off-by: Paul Mackerras <paulus@samba.org>

t800?-blame.sh: retitle uniquelyMichael J Gruber Mon, 13 Dec 2010 16:12:29 +0000 (17:12 +0100)

t800?-blame.sh: retitle uniquely

Currently we have three test files matching t800?-blame.sh.

Rename the latter two to make it easier to spot where additions would
go.

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

tests: flip executable bit on t9158Jeff King Mon, 13 Dec 2010 17:07:34 +0000 (12:07 -0500)

tests: flip executable bit on t9158

All tests are supposed to be executable.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

tests: add some script lint checksJeff King Mon, 13 Dec 2010 17:22:38 +0000 (12:22 -0500)

tests: add some script lint checks

There are some common but minor errors we tend to make in
writing test scripts:

1. Scripts are left non-executable. This is not usually
noticed immediately because "make test" does not need
the bit, but it is a matter of git policy to make them
executable (and is a slight convenience when running
individual scripts).

2. Two scripts are allocated the same number. Usually this
happens on separate branches, and the problem only
comes about during a merge. But since there is no
textual conflict, the merger would have to be very
observant to notice.

This is also a minor error, but can make GIT_SKIP_TESTS
ambiguous.

This patch introduces a "test-lint" target which checks
both. It is not invoked by default. You can invoke it as
"make test-lint", or you can make it a prerequisite of
running the tests by specifying "TEST_LINT = test-lint" in
your config.mak or on the command line.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Avoid duplicate test number t7609Johannes Sixt Mon, 13 Dec 2010 10:14:02 +0000 (11:14 +0100)

Avoid duplicate test number t7609

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

t9300: avoid short reads from ddJonathan Nieder Mon, 13 Dec 2010 06:31:51 +0000 (00:31 -0600)

t9300: avoid short reads from dd

dd is a thin wrapper around read(2). As open group Issue 7 explains:

It shall read the input one block at a time, using the specified
input block size; it shall then process the block of data
actually returned, which could be smaller than the requested
block size.

Any short read --- for example from a pipe whose capacity cannot fill
a block --- results in that block being truncated. As a result, the
first cat-blob test (9300.114) fails on Mac OS X, where the pipe
capacity is around 8 KiB.

Fix the test by using a block size of 1. Each read will block until
the next byte of input is available.

It would be even nicer to use head -c which expresses the intention
more clearly. Alas, IRIX "head" does not support the -c option.

Reported-by: Brian Gernhardt <brian@gernhardtsoftware.com>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>