gitweb.git
git add: do not add files from a submoduleJohannes Schindelin Fri, 2 Jan 2009 18:08:40 +0000 (19:08 +0100)

git add: do not add files from a submodule

It comes quite as a surprise to an unsuspecting Git user that calling
"git add submodule/file" (which is a mistake, alright) _removes_
the submodule in the index, and adds the file. Instead, complain loudly.

While at it, be nice when the user said "git add submodule/" which is
most likely the consequence of tab-completion, and stage the submodule,
instead of trying to add the contents of that directory.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

GIT 1.6.1 v1.6.1Junio C Hamano Thu, 25 Dec 2008 03:41:08 +0000 (19:41 -0800)

GIT 1.6.1

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

Merge branch 'js/rebase-i-p'Junio C Hamano Wed, 24 Dec 2008 08:14:14 +0000 (00:14 -0800)

Merge branch 'js/rebase-i-p'

* js/rebase-i-p:
rebase -i -p: leave a --cc patch when a merge could not be redone
rebase -i -p: Fix --continue after a merge could not be redone
Show a failure of rebase -p if the merge had a conflict

rebase -i -p: leave a --cc patch when a merge could... Johannes Schindelin Mon, 22 Dec 2008 21:16:51 +0000 (22:16 +0100)

rebase -i -p: leave a --cc patch when a merge could not be redone

The result is easier to review this way, and the merge resolution has to be
done inside the work tree, not by adjusting "the patch" anyway.

t9129: skip the last three tests if UTF-8 locale is... Miklos Vajna Tue, 23 Dec 2008 01:09:24 +0000 (02:09 +0100)

t9129: skip the last three tests if UTF-8 locale is not available

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

GIT 1.6.1-rc4 v1.6.1-rc4Junio C Hamano Mon, 22 Dec 2008 03:20:21 +0000 (19:20 -0800)

GIT 1.6.1-rc4

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

Always show which directory is not a git repositoryRichard Hartmann Sun, 21 Dec 2008 23:17:32 +0000 (00:17 +0100)

Always show which directory is not a git repository

Unify all

fatal: Not a git repository

error messages so they include path information.

Signed-off-by: Richard Hartmann <richih@net.in.tum.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Make help entries alphabeticalRichard Hartmann Sun, 21 Dec 2008 22:28:25 +0000 (23:28 +0100)

Make help entries alphabetical

Signed-off-by: Richard Hartmann <richih@net.in.tum.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Mon, 22 Dec 2008 02:35:54 +0000 (18:35 -0800)

Merge branch 'maint'

* maint:
doc/git-fsck: change the way for getting heads' SHA1s

git-revert documentation: refer to new HOWTO on reverti... Boyd Stephen Smith Jr Mon, 22 Dec 2008 00:26:03 +0000 (18:26 -0600)

git-revert documentation: refer to new HOWTO on reverting faulty merges

Signed-off-by: Boyd Stephen Smith Jr <bss@iguanasuicide.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-revert: record the parent against which a revert... Robin Rosenberg Sun, 21 Dec 2008 22:17:12 +0000 (14:17 -0800)

git-revert: record the parent against which a revert was made

As described in Documentation/howto/revert-a-faulty-merge.txt, re-merging
from a previously reverted a merge of a side branch may need a revert of
the revert beforehand. Record against which parent the revert was made in
the commit, so that later the user can figure out what went on.

Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge git://git.kernel.org/pub/scm/gitk/gitkJunio C Hamano Mon, 22 Dec 2008 02:31:12 +0000 (18:31 -0800)

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

* git://git.kernel.org/pub/scm/gitk/gitk:
gitk: Force the focus to the main window on Windows
gitk: Allow unbalanced quotes/braces in commit headers
gitk: Update German translation
gitk: Mark forgotten strings (header sentence parts in color chooser) for translation
gitk: Ensure that "Reset branch" menu entry is enabled
gitk: Use check-buttons' -text property instead of separate labels
gitk: Map / to focus the search box
gitk: Fix bugs in blaming code

gitk: Force the focus to the main window on WindowsJohannes Sixt Thu, 18 Dec 2008 07:30:49 +0000 (08:30 +0100)

gitk: Force the focus to the main window on Windows

On msysGit, the focus is first on the (Tk) console. This console is then
hidden, but keeps the focus. Work around that by forcing the focus onto
the gitk window.

This fixes msysGit issue 14. Diagnosed and originally fixed by
Johannes Schindelin.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>

gitk: Allow unbalanced quotes/braces in commit headersKevin Ballard Thu, 18 Dec 2008 09:26:48 +0000 (01:26 -0800)

gitk: Allow unbalanced quotes/braces in commit headers

When parsing commits, gitk treats the headers of the commit as tcl
lists. This causes errors if the header contains an unbalanced quote
or open brace. Splitting the line on spaces allows us to treat it as
a set of words instead of as a tcl list, which prevents errors.

Signed-off-by: Kevin Ballard <kevin@sb.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>

gitk: Update German translationChristian Stimming Sat, 6 Dec 2008 19:49:24 +0000 (20:49 +0100)

gitk: Update German translation

Attached to avoid whitespace problems.

Regards,

Christian

From 282060ac531fee722142f9d39c4ff29570723cbb Mon Sep 17 00:00:00 2001
From: Christian Stimming <stimming@tuhh.de>
Date: Sat, 6 Dec 2008 20:47:15 +0100
Subject: [PATCH 2/2] gitk: Update German translation

Merged with most recent "make update-po" result.

Signed-off-by: Christian Stimming <stimming@tuhh.de>
Signed-off-by: Paul Mackerras <paulus@samba.org>

gitk: Mark forgotten strings (header sentence parts... Christian Stimming Sat, 6 Dec 2008 19:48:30 +0000 (20:48 +0100)

gitk: Mark forgotten strings (header sentence parts in color chooser) for translation

Signed-off-by: Paul Mackerras <paulus@samba.org>

gitk: Ensure that "Reset branch" menu entry is enabledJohannes Sixt Wed, 3 Dec 2008 12:43:20 +0000 (13:43 +0100)

gitk: Ensure that "Reset branch" menu entry is enabled

Consider this sequence of events:

1. Detach HEAD and fire up gitk
2. Call the context menu on some commit. Notice that the last menu entry
says "Detached HEAD: can't reset" and it is disabled.
3. Now checkout some regular branch (e.g. 'master') using the context menu.
4. Call the context menu again on some commit.

Previously, at this point the last menu entry said "Reset master branch
to here", but it was still disabled. With this fix it is now enabled again.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>

gitk: Use check-buttons' -text property instead of... Johannes Sixt Tue, 2 Dec 2008 20:42:16 +0000 (21:42 +0100)

gitk: Use check-buttons' -text property instead of separate labels

Previously the check-buttons' labels in the Preferences were separate
widgets. This had the disadvantage that in order to toggle the
check-button with the mouse the check-box had to be clicked. With
this change the check-box can also be toggled by clicking the label.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>

gitk: Map / to focus the search boxGiuseppe Bilotta Tue, 2 Dec 2008 01:19:22 +0000 (02:19 +0100)

gitk: Map / to focus the search box

The / key is often used to initiate searches (less, vim, some web
browsers). This changes the binding for the / (slash) key from 'find
next' to 'focus the search box' to follow this convention.

Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>

doc/git-fsck: change the way for getting heads' SHA1sMarkus Heidelberg Sun, 21 Dec 2008 16:30:22 +0000 (17:30 +0100)

doc/git-fsck: change the way for getting heads' SHA1s

The straightforward way with using 'cat .git/refs/heads/*' doesn't work
with packed refs as well as branches of the form topic/topic1. So let's
use git-for-each-ref for getting the heads' SHA1s in this example.

Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation/git-show-branch: work around "single... Markus Heidelberg Sun, 21 Dec 2008 10:00:31 +0000 (02:00 -0800)

Documentation/git-show-branch: work around "single quote" typesetting glitch

The displayed example is typeset with acute accents around the string that
should be surrounded by a pair of single quotes in manpage. Replace them
with double quotes (the semantics of the example does not change).

Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

send-email: futureproof split_addrs() subJunio C Hamano Sun, 21 Dec 2008 09:57:59 +0000 (01:57 -0800)

send-email: futureproof split_addrs() sub

Matt Kraai points out that calling parse_line() assuming that the caller
ever passes only one argument is a bug waiting to happen, and he is
right.

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

Make sure lockfiles are unlocked when dying on SIGPIPEJunio C Hamano Fri, 19 Dec 2008 01:31:57 +0000 (17:31 -0800)

Make sure lockfiles are unlocked when dying on SIGPIPE

We cleaned up lockfiles upon receiving the usual suspects HUP, TERM, QUIT
but a wicked user could kill us of asphyxiation by piping our output to a
pipe that does not read. Protect ourselves by catching SIGPIPE and clean
up the lockfiles as well in such a case.

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

fast-import.c: stricter strtoul check, silence compiler... René Scharfe Sun, 21 Dec 2008 01:28:48 +0000 (02:28 +0100)

fast-import.c: stricter strtoul check, silence compiler warning

Store the return value of strtoul() in order to avoid compiler
warnings on Ubuntu 8.10.

Also check errno after each call, which is the only way to notice
an overflow without making ULONG_MAX an illegal date.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

connect.c: stricter port validation, silence compiler... René Scharfe Sun, 21 Dec 2008 01:12:11 +0000 (02:12 +0100)

connect.c: stricter port validation, silence compiler warning

In addition to checking if the provided port is numeric, also check
that the string isn't empty and that the port number is within the
valid range. Incidentally, this silences a compiler warning about
ignoring strtol's return value.

Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Add a documentat on how to revert a faulty mergeNanako Shiraishi Sat, 20 Dec 2008 11:27:02 +0000 (20:27 +0900)

Add a documentat on how to revert a faulty merge

Linus and Junio explained issues that are involved in reverting a merge
and how to continue working with a branch that was updated since such a
revert on the mailing list. This is to help new people who did not see
these messages.

Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Remove the requirement opaquelocktoken uri schemeKirill A. Korinskiy Sat, 20 Dec 2008 06:19:46 +0000 (09:19 +0300)

Remove the requirement opaquelocktoken uri scheme

The program flow of pushing over http is:

- call lock_remote() to issue a DAV_LOCK request to the server to lock
info/refs and branch refs being pushed into; handle_new_lock_ctx() is
used to parse its response to populate "struct remote_lock" that is
returned from lock_remote();

- send objects;

- call unlock_remote() to drop the lock.

The handle_new_lock_ctx() function assumed that the server will use a
lock token in opaquelocktoken URI scheme, which may have been an Ok
assumption under RFC 2518, but under RFC 4918 which obsoletes the older
standard it is not necessarily true.

This resulted in push failure (often resulted in "cannot lock existing
info/refs" error message) when talking to a server that does not use
opaquelocktoken URI scheme.

Signed-off-by: Kirill A. Korinskiy <catap@catap.ru>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-sh-setup: Fix scripts whose PWD is a symlink into... Marcel M. Cary Mon, 15 Dec 2008 17:34:37 +0000 (09:34 -0800)

git-sh-setup: Fix scripts whose PWD is a symlink into a git work-dir

I want directories of my working tree to be linked to from various
paths on my filesystem where third-party components expect them, both
in development and production environments. A build system's install
step could solve this, but I develop scripts and web pages that don't
need to be built. Git's submodule system could solve this, but we
tend to develop, branch, and test those directories all in unison, so
one big repository feels more natural. We prefer to edit and commit
on the symlinked paths, not the canonical ones, and in that setting,
"git pull" fails to find the top-level directory of the repository
while other commands work fine.

"git pull" fails because POSIX shells have a notion of current working
directory that is different from getcwd(). The shell stores this path
in PWD. As a result, "cd ../" can be interpreted differently in a
shell script than chdir("../") in a C program. The shell interprets
"../" by essentially stripping the last textual path component from
PWD, whereas C chdir() follows the ".." link in the current directory
on the filesystem. When PWD is a symlink, these are different
destinations. As a result, Git's C commands find the correct
top-level working tree, and shell scripts do not.

Changes:

* When interpreting a relative upward (../) path in cd_to_toplevel,
prepend the cwd without symlinks, given by /bin/pwd
* Add tests for cd_to_toplevel and "git pull" in a symlinked
directory that failed before this fix, plus contrasting scenarios
that already worked

Signed-off-by: Marcel M. Cary <marcel@oak.homeunix.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

rebase -i -p: Fix --continue after a merge could not... Johannes Sixt Mon, 15 Dec 2008 10:05:31 +0000 (11:05 +0100)

rebase -i -p: Fix --continue after a merge could not be redone

When a merge that has a conflict was rebased, then rebase stopped to let
the user resolve the conflicts. However, thereafter --continue failed
because the author-script was not saved. (This is rebase -i's way to
preserve a commit's authorship.) This fixes it by doing taking the same
failure route after a merge that is also taken after a normal cherry-pick.

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

Show a failure of rebase -p if the merge had a conflictJohannes Sixt Mon, 15 Dec 2008 10:05:30 +0000 (11:05 +0100)

Show a failure of rebase -p if the merge had a conflict

This extends t3409-rebase-preserve-merges by a case where the merge that
is rebased has a conflict. Therefore, the rebase stops and expects that
the user resolves the conflict. However, currently rebase --continue
fails because .git/rebase-merge/author-script is missing.

The test script had allocated two identical clones, but only one of them
(clone2) was used. Now we use both as indicated in the comment. Also,
two instances of && was missing in the setup part.

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

Documentation: fix typos, grammar, asciidoc syntaxMarkus Heidelberg Fri, 19 Dec 2008 12:14:18 +0000 (13:14 +0100)

Documentation: fix typos, grammar, asciidoc syntax

[jc: the original patch was against master but 99% of it
applied to maint; this commit splits out the part that
applies only to master.]

Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint' to sync with GIT 1.6.0.6Junio C Hamano Sat, 20 Dec 2008 03:32:29 +0000 (19:32 -0800)

Merge branch 'maint' to sync with GIT 1.6.0.6

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

GIT 1.6.0.6 v1.6.0.6Junio C Hamano Sat, 20 Dec 2008 03:27:06 +0000 (19:27 -0800)

GIT 1.6.0.6

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

fast-import: make tagger information optionalJunio C Hamano Fri, 19 Dec 2008 22:41:21 +0000 (14:41 -0800)

fast-import: make tagger information optional

Even though newer Porcelain tools always record the tagger information
when creating new tags, export/import pair should be able to faithfully
reproduce ancient tag objects that lack tagger information.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Acked-by: Shawn O. Pearce <spearce@spearce.org>

fast-export: deal with tag objects that do not have... Johannes Schindelin Sat, 20 Dec 2008 00:00:27 +0000 (01:00 +0100)

fast-export: deal with tag objects that do not have a tagger

When no tagger was found (old Git produced tags like this),
no "tagger" line is printed (but this is incompatible with the current
git fast-import).

Alternatively, you can pass the option --fake-missing-tagger, forcing
fast-export to fake a tagger

Unspecified Tagger <no-tagger>

with a tag date of the beginning of (Unix) time in the case of a missing
tagger, so that fast-import is still able to import the result.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

SubmittingPatches: mention the usage of real name in... Miklos Vajna Sat, 20 Dec 2008 00:52:17 +0000 (01:52 +0100)

SubmittingPatches: mention the usage of real name in Signed-off-by: lines

Especially with something that is supposed to hopefully have some legal
value down the line if somebody starts making noises, it really would be
nice to have a real person to associate things with. Suggest this in the
SubmittingPatches document.

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

git-mergetool: properly handle "git mergetool -- filename"David Aguilar Sat, 20 Dec 2008 01:01:01 +0000 (17:01 -0800)

git-mergetool: properly handle "git mergetool -- filename"

Like many git commands, git-mergetool allows "--" to signal
the end of option processing. This adds a missing "shift"
statement so that this is correctly handled.

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

git-send-email: handle email address with quoted commaWu Fengguang Fri, 19 Dec 2008 08:10:10 +0000 (16:10 +0800)

git-send-email: handle email address with quoted comma

Correctly handle email addresses containing quoted commas, e.g.

"Zhu, Yi" <yi.zhu@intel.com>, "Li, Shaohua" <shaohua.li@intel.com>

The commas inside the double quotes are not separators.

Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation: fix typos, grammar, asciidoc syntaxMarkus Heidelberg Fri, 19 Dec 2008 12:14:18 +0000 (13:14 +0100)

Documentation: fix typos, grammar, asciidoc syntax

Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation: sync example output with git outputMarkus Heidelberg Fri, 19 Dec 2008 12:14:52 +0000 (13:14 +0100)

Documentation: sync example output with git output

Don't confuse the user with old git messages.

Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix type-mismatch compiler warning from diff_populate_f... René Scharfe Thu, 18 Dec 2008 16:56:51 +0000 (17:56 +0100)

Fix type-mismatch compiler warning from diff_populate_filespec()

The type of the size member of filespec is ulong, while strbuf_detach expects
a size_t pointer. This patch should fix the warning:

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

test overlapping ignore patternsMichael J Gruber Thu, 18 Dec 2008 17:11:18 +0000 (18:11 +0100)

test overlapping ignore patterns

Add a test which checks that negated patterns such as "!foo.html" can
override previous patterns such as "*.html". This is documented
behaviour but had not been tested so far.

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

Merge branch 'lt/readlink'Junio C Hamano Thu, 18 Dec 2008 06:28:03 +0000 (22:28 -0800)

Merge branch 'lt/readlink'

* lt/readlink:
combine-diff.c: use strbuf_readlink()
builtin-blame.c: use strbuf_readlink()
make_absolute_path(): check bounds when seeing an overlong symlink
Make 'prepare_temp_file()' ignore st_size for symlinks
Make 'diff_populate_filespec()' use the new 'strbuf_readlink()'
Make 'index_path()' use 'strbuf_readlink()'
Make 'ce_compare_link()' use the new 'strbuf_readlink()'
Add generic 'strbuf_readlink()' helper function

Enable threaded delta search on Mac OS X/DarwinArjen Laarhoven Wed, 17 Dec 2008 08:20:25 +0000 (09:20 +0100)

Enable threaded delta search on Mac OS X/Darwin

Signed-off-by: Arjen Laarhoven <arjen@yaph.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Clarify documentation of "git checkout <tree-ish> paths... Nanako Shiraishi Thu, 18 Dec 2008 03:34:56 +0000 (12:34 +0900)

Clarify documentation of "git checkout <tree-ish> paths" syntax

The SYNOPSIS section of the manual writes:

git checkout [options] [<tree-ish>] [--] <paths>...

but the DESCRIPTION says that this form checks the paths out "from the
index, or from a named commit." A later sentence refers to the same
argument as "<tree-ish> argument", but it is not clear that these two
sentences are talking about the same command line argument for first-time
readers.

Signed-off-by: Nanako Shiraishi <nanako3@lavabit.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge git://repo.or.cz/git-guiJunio C Hamano Thu, 18 Dec 2008 05:56:48 +0000 (21:56 -0800)

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

* git://repo.or.cz/git-gui:
git-gui 0.12
git-gui: Get rid of the last remnants of GIT_CONFIG_LOCAL
git-gui: Update Hungarian translation for 0.12
git-gui: Fixed typos in Swedish translation.
git-gui: Updated Swedish translation (515t0f0u).
git gui: update Italian translation
git-gui: Update Japanese translation for 0.12
git-gui: Starting translation for Norwegian
git-gui: Update German (completed) translation.
git-gui: Update po template to include 'Mirroring %s' message
git-gui: Fix commit encoding handling.
git-gui: Fix handling of relative paths in blame.

git-gui 0.12 gitgui-0.12.0Shawn O. Pearce Thu, 18 Dec 2008 04:15:17 +0000 (20:15 -0800)

git-gui 0.12

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

githooks documentation: add a note about the +x modeMiklos Vajna Wed, 17 Dec 2008 21:29:06 +0000 (22:29 +0100)

githooks documentation: add a note about the +x mode

In a freshly initialized repo it is only necessary to rename the .sample
hooks, but when using older repos (initialized with older git init)
enabled the +x mode is still necessary - docuement this.

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

combine-diff.c: use strbuf_readlink()Junio C Hamano Wed, 17 Dec 2008 20:37:58 +0000 (12:37 -0800)

combine-diff.c: use strbuf_readlink()

When showing combined diff using work tree contents, use strbuf_readlink()
to read symbolic links.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Acked-by: Linus Torvalds <torvalds@linux-foundation.org>

builtin-blame.c: use strbuf_readlink()Junio C Hamano Wed, 17 Dec 2008 20:37:53 +0000 (12:37 -0800)

builtin-blame.c: use strbuf_readlink()

When faking a commit out of the work tree contents, use strbuf_readlink()
to read the contents of symbolic links.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Acked-by: Linus Torvalds <torvalds@linux-foundation.org>

make_absolute_path(): check bounds when seeing an overl... Junio C Hamano Wed, 17 Dec 2008 20:37:48 +0000 (12:37 -0800)

make_absolute_path(): check bounds when seeing an overlong symlink

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Acked-by: Linus Torvalds <torvalds@linux-foundation.org>

Make 'prepare_temp_file()' ignore st_size for symlinksLinus Torvalds Wed, 17 Dec 2008 18:31:36 +0000 (10:31 -0800)

Make 'prepare_temp_file()' ignore st_size for symlinks

The code was already set up to not really need it, so this just massages
it a bit to remove the use entirely.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Make 'diff_populate_filespec()' use the new 'strbuf_rea... Linus Torvalds Wed, 17 Dec 2008 18:26:13 +0000 (10:26 -0800)

Make 'diff_populate_filespec()' use the new 'strbuf_readlink()'

This makes all tests pass on a system where 'lstat()' has been hacked to
return bogus data in st_size for symlinks.

Of course, the test coverage isn't complete, but it's a good baseline.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Make 'index_path()' use 'strbuf_readlink()'Linus Torvalds Wed, 17 Dec 2008 17:51:53 +0000 (09:51 -0800)

Make 'index_path()' use 'strbuf_readlink()'

This makes us able to properly index symlinks even on filesystems where
st_size doesn't match the true size of the link.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Make 'ce_compare_link()' use the new 'strbuf_readlink()'Linus Torvalds Wed, 17 Dec 2008 17:47:27 +0000 (09:47 -0800)

Make 'ce_compare_link()' use the new 'strbuf_readlink()'

This simplifies the code, and also makes ce_compare_link now able to
handle filesystems with odd 'st_size' return values for symlinks.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Add generic 'strbuf_readlink()' helper functionLinus Torvalds Wed, 17 Dec 2008 17:36:40 +0000 (09:36 -0800)

Add generic 'strbuf_readlink()' helper function

It was already what 'git apply' did in read_old_data(), just export it
as a real function, and make it be more generic.

In particular, this handles the case of the lstat() st_size data not
matching the readlink() return value properly (which apparently happens
at least on NTFS under Linux). But as a result of this you could also
use the new function without even knowing how big the link is going to
be, and it will allocate an appropriately sized buffer.

So we pass in the st_size of the link as just a hint, rather than a
fixed requirement.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-gui: Get rid of the last remnants of GIT_CONFIG_LOCALJohannes Schindelin Sun, 14 Dec 2008 22:12:49 +0000 (23:12 +0100)

git-gui: Get rid of the last remnants of GIT_CONFIG_LOCAL

In dc871831(Only use GIT_CONFIG in "git config", not other programs),
GIT_CONFIG_LOCAL was rested in peace, in favor of not reading
/etc/gitconfig and $HOME/.gitconfig at all when GIT_CONFIG is set.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

doc/git-reset: add reference to git-stashMarkus Heidelberg Wed, 17 Dec 2008 02:59:36 +0000 (03:59 +0100)

doc/git-reset: add reference to git-stash

The "Interrupted workflow" situation is a good example for using
git-stash.

Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation: fix description for enabling hooksMarkus Heidelberg Wed, 17 Dec 2008 02:59:23 +0000 (03:59 +0100)

Documentation: fix description for enabling hooks

Since f98f8cb (Ship sample hooks with .sample suffix, 2008-06-24) hooks
are not enabled by making them executable anymore, but by removing the
'.sample' suffix from the filename.

Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-daemon documentation: use {tilde}Miklos Vajna Tue, 16 Dec 2008 15:48:12 +0000 (16:48 +0100)

git-daemon documentation: use {tilde}

Use '{tilde}' instead of '~', becase the later does not appear in the
manpage version, just in the HTML one.

Noticed by gonzzor on IRC.

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

gitweb: do not run "git diff" that is PorcelainJunio C Hamano Wed, 17 Dec 2008 03:42:02 +0000 (19:42 -0800)

gitweb: do not run "git diff" that is Porcelain

Jakub says that legacy-style URI to view two blob differences are never
generated since 1.4.3. This codepath runs "git diff" Porcelain from the
gitweb, which is a no-no.

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

GIT 1.5.6.6 v1.5.6.6Junio C Hamano Wed, 17 Dec 2008 06:13:36 +0000 (22:13 -0800)

GIT 1.5.6.6

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

GIT 1.5.5.6 v1.5.5.6Junio C Hamano Wed, 17 Dec 2008 06:08:22 +0000 (22:08 -0800)

GIT 1.5.5.6

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

GIT 1.5.4.7 v1.5.4.7Junio C Hamano Wed, 17 Dec 2008 06:03:29 +0000 (22:03 -0800)

GIT 1.5.4.7

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

gitweb: do not run "git diff" that is PorcelainJunio C Hamano Wed, 17 Dec 2008 03:42:02 +0000 (19:42 -0800)

gitweb: do not run "git diff" that is Porcelain

Jakub says that legacy-style URI to view two blob differences are never
generated since 1.4.3. This codepath runs "git diff" Porcelain from the
gitweb, which is a no-no. It can trigger diff.external command that is
specified in the configuration file of the repository being viewed.

This patch applies to v1.5.4 and later.

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

bash completion: Sync config variables with their man... Lee Marlow Mon, 15 Dec 2008 17:45:49 +0000 (10:45 -0700)

bash completion: Sync config variables with their man pages

Add 'normal' to config color options.
Add 'mergeoptions' to branch config options.
Add 'proxy' and 'mirror' to remote config options.

Signed-off-by: Lee Marlow <lee.marlow@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

bash completion: Sort config completion variablesLee Marlow Mon, 15 Dec 2008 17:45:48 +0000 (10:45 -0700)

bash completion: Sort config completion variables

Sort the config variables to make sync-ing them with
Documents/config.txt easier in the future.

Signed-off-by: Lee Marlow <lee.marlow@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Tue, 16 Dec 2008 07:06:13 +0000 (23:06 -0800)

Merge branch 'maint'

* maint:
fast-import: close pack before unlinking it
pager: do not dup2 stderr if it is already redirected
git-show: do not segfault when showing a bad tag

fast-import: close pack before unlinking itJohannes Schindelin Mon, 15 Dec 2008 21:11:40 +0000 (22:11 +0100)

fast-import: close pack before unlinking it

This is sort of a companion patch to 4723ee9(Close files opened by
lock_file() before unlinking.): on Windows, you cannot delete what
is still open.

This makes test 9300-fast-import pass on Windows for me; quite a few
fast-imports leave temporary packs until the test "blank lines not
necessary after other commands" actually tests for the number of files
in .git/objects/pack/, which has a few temporary packs now.

I guess that 8b4eb6b(Do not perform cross-directory renames when
creating packs) was "responsible" for the breakage.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

pager: do not dup2 stderr if it is already redirectedJunio C Hamano Mon, 15 Dec 2008 08:33:34 +0000 (00:33 -0800)

pager: do not dup2 stderr if it is already redirected

An earlier commit 61b8050 (sending errors to stdout under $PAGER,
2008-02-16) avoided losing the error messages that are sent to the
standard error when $PAGER is in effect by dup2'ing fd 2 to the pager.
his way, showing a tag object that points to a bad object:

$ git show tag-foo

would give the error message to the pager. However, it was not quite
right if the user did:

$ git show 2>error.log tag-foo

i.e. use the pager but store the errors in a separate file.

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

git-show: do not segfault when showing a bad tagJunio C Hamano Mon, 15 Dec 2008 08:36:56 +0000 (00:36 -0800)

git-show: do not segfault when showing a bad tag

When a tag points at a bad or nonexistent object, we should diagnose the
breakage and exit. An earlier commit 4f3dcc2 (Fix 'git show' on signed
tag of signed tag of commit, 2008-07-01) lost this check and made it
segfault instead; not good.

This fixes it.

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

Get rid of the last remnants of GIT_CONFIG_LOCAL v1.6.1-rc3Johannes Schindelin Sun, 14 Dec 2008 22:10:52 +0000 (23:10 +0100)

Get rid of the last remnants of GIT_CONFIG_LOCAL

In dc871831(Only use GIT_CONFIG in "git config", not other programs),
GIT_CONFIG_LOCAL was rested in peace, in favor of not reading
/etc/gitconfig and $HOME/.gitconfig at all when GIT_CONFIG is set.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation: Describe git-gui Tools menu configuratio... Alexander Gavrilov Sun, 14 Dec 2008 19:44:32 +0000 (22:44 +0300)

Documentation: Describe git-gui Tools menu configuration options.

Now git gui has a customizable Tools menu, so this adds
information about variables that are used to configure it.

Signed-off-by: Alexander Gavrilov <angavrilov@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-fast-import possible memory corruption problemYONETANI Tomokazu Sun, 14 Dec 2008 02:08:22 +0000 (11:08 +0900)

git-fast-import possible memory corruption problem

Internal "allocate in bulk, we will never free this memory anyway"
allocator used in fast-import had a logic to round up the size of the
requested memory block in a wrong place (it computed if the available
space is enough to fit the request first, and then carved a chunk of
memory by size rounded up to the alignment, which could go beyond the
actually available space).

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

builtin-commit: remove unused message variableMarkus Heidelberg Sat, 13 Dec 2008 19:05:34 +0000 (20:05 +0100)

builtin-commit: remove unused message variable

builtin-commit uses commit_tree() from builtin-commit-tree since
6bb6b03 (builtin-commit: use commit_tree(), 2008-09-10), where the
same message is used.

Signed-off-by: Markus Heidelberg <markus.heidelberg@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Sat, 13 Dec 2008 05:50:34 +0000 (21:50 -0800)

Merge branch 'maint'

* maint:
git-config.txt: fix a typo

git-branch: display sha1 on branch deletionBrandon Casey Fri, 12 Dec 2008 23:20:07 +0000 (17:20 -0600)

git-branch: display sha1 on branch deletion

Make it easier to recover from a mistaken branch deletion by displaying the
sha1 of the branch's tip commit.

Update t3200 test to match the change in output.

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

git-config.txt: fix a typoJim Meyering Fri, 12 Dec 2008 09:00:41 +0000 (10:00 +0100)

git-config.txt: fix a typo

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

Merge branch 'maint'Junio C Hamano Thu, 11 Dec 2008 08:36:31 +0000 (00:36 -0800)

Merge branch 'maint'

* maint:
fsck: reduce stack footprint
make sure packs to be replaced are closed beforehand

fsck: reduce stack footprintLinus Torvalds Thu, 11 Dec 2008 03:44:37 +0000 (19:44 -0800)

fsck: reduce stack footprint

The logic to mark all objects that are reachable from tips of refs were
implemented as a set of recursive functions. In a repository with a deep
enough history, this can easily eat up all the available stack space.

Restructure the code to require less stackspace by using an object array
to keep track of the objects that still need to be processed.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

rebase: improve error messages about dirty stateJeff King Wed, 10 Dec 2008 09:25:19 +0000 (04:25 -0500)

rebase: improve error messages about dirty state

If you have unstaged changes in your working tree and try to
rebase, you will get the cryptic "foo: needs update"
message, but nothing else. If you have staged changes, you
get "your index is not up-to-date".

Let's improve this situation in two ways:

- for unstaged changes, let's also tell them we are
canceling the rebase, and why (in addition to the "needs
update" lines)

- for the staged changes case, let's use language that is a
little more clear to the user: their index contains
uncommitted changes

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

make sure packs to be replaced are closed beforehandNicolas Pitre Tue, 9 Dec 2008 19:26:52 +0000 (14:26 -0500)

make sure packs to be replaced are closed beforehand

Especially on Windows where an opened file cannot be replaced, make
sure pack-objects always close packs it is about to replace. Even on
non Windows systems, this could save potential bad results if ever
objects were to be read from the new pack file using offset from the old
index.

This should fix t5303 on Windows.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Tested-by: Johannes Sixt <j6t@kdbg.org> (MinGW)
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix typo in comment in builtin-add.cAlexander Potashev Wed, 10 Dec 2008 22:27:44 +0000 (01:27 +0300)

Fix typo in comment in builtin-add.c

Reported-by: Tim Daly <daly@axiom-developer.org>
Signed-off-by: Alexander Potashev <aspotashev@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-gui: Update Hungarian translation for 0.12Miklos Vajna Wed, 10 Dec 2008 14:03:13 +0000 (15:03 +0100)

git-gui: Update Hungarian translation for 0.12

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

git-gui: Fixed typos in Swedish translation.Peter Krefting Wed, 10 Dec 2008 08:51:27 +0000 (09:51 +0100)

git-gui: Fixed typos in Swedish translation.

Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

Fix t4031Junio C Hamano Wed, 10 Dec 2008 19:39:07 +0000 (11:39 -0800)

Fix t4031

When I tweaked the patch to use $SHELL_PATH instead of a hard-coded
"#!/bin/sh" to produce 3aa1f7c (diff: respect textconv in rewrite diffs,
2008-12-09), I screwed up. This should fix it.

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

Merge branch 'maint'Junio C Hamano Wed, 10 Dec 2008 06:41:27 +0000 (22:41 -0800)

Merge branch 'maint'

* maint:
work around Python warnings from AsciiDoc
git-svn: Make following parents atomic

diff: respect textconv in rewrite diffsJeff King Tue, 9 Dec 2008 08:13:21 +0000 (03:13 -0500)

diff: respect textconv in rewrite diffs

Currently we just skip rewrite diffs for binary files; this
patch makes an exception for files which will be textconv'd,
and actually performs the textconv before generating the
diff.

Conceptually, rewrite diffs should be in the exact same
format as the a non-rewrite diff, except that we refuse to
share any context. Thus it makes very little sense for "git
diff" to show a textconv'd diff, but for "git diff -B" to
show "Binary files differ".

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

diff: fix handling of binary rewrite diffsJeff King Tue, 9 Dec 2008 08:12:28 +0000 (03:12 -0500)

diff: fix handling of binary rewrite diffs

The current emit_rewrite_diff code always writes a text patch without
checking whether the content is binary. This means that if you end up with
a rewrite diff for a binary file, you get lots of raw binary goo in your
patch.

Instead, if we have binary files, then let's just skip emit_rewrite_diff
altogether. We will already have shown the "dissimilarity index" line, so
it is really about the diff contents. If binary diffs are turned off, the
"Binary files a/file and b/file differ" message should be the same in
either case. If we do have binary patches turned on, there isn't much
point in making a less-efficient binary patch that does a total rewrite;
no human is going to read it, and since binary patches don't apply with
any fuzz anyway, the result of application should be the same.

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

Fix typos in documentationAlexander Potashev Tue, 9 Dec 2008 17:26:22 +0000 (20:26 +0300)

Fix typos in documentation

Signed-off-by: Alexander Potashev <aspotashev@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-p4: Fix regression in p4Where method.Tor Arvid Lund Tue, 9 Dec 2008 15:41:50 +0000 (16:41 +0100)

git-p4: Fix regression in p4Where method.

Unfortunately, I introduced a bug in commit 7f705dc36 (git-p4: Fix bug in
p4Where method). This happens because sometimes the result from
"p4 where <somepath>" doesn't contain a "depotFile" key, but instead a
"data" key that needs further parsing. This commit should ensure that both
of these cases are checked.

Signed-off-by: Tor Arvid Lund <torarvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Improve language in git-merge.txt and related docsRalf Wildenhues Tue, 9 Dec 2008 06:23:51 +0000 (07:23 +0100)

Improve language in git-merge.txt and related docs

Improve some minor language and format issues like hyphenation,
phrases, spacing, word order, comma, attributes.

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

work around Python warnings from AsciiDocJunio C Hamano Mon, 8 Dec 2008 02:38:46 +0000 (18:38 -0800)

work around Python warnings from AsciiDoc

It appears that a reference to an anchor defined as [[anchor-name]] from
another place using <<anchor-name>> syntax, when the anchor name contains
a string "-with-" in its name, triggers these warnings from Python
interpreter.

asciidoc -b docbook -d book user-manual.txt
<string>:1: Warning: 'with' will become a reserved keyword in Python 2.6
<string>:1: Warning: 'with' will become a reserved keyword in Python 2.6
<string>:1: Warning: 'with' will become a reserved keyword in Python 2.6
<string>:1: Warning: 'with' will become a reserved keyword in Python 2.6

There currently is no reference to "Finding comments with given content",
but for consistency and for futureproofing, the anchor is also updated as
the other ones that are actually used and trigger these warnings.

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

git-gui: Updated Swedish translation (515t0f0u).Peter Krefting Tue, 9 Dec 2008 15:26:46 +0000 (16:26 +0100)

git-gui: Updated Swedish translation (515t0f0u).

Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

git gui: update Italian translationMichele Ballabio Thu, 4 Dec 2008 17:28:21 +0000 (18:28 +0100)

git gui: update Italian translation

Signed-off-by: Michele Ballabio <barra_cuda@katamail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

git-gui: Update Japanese translation for 0.12Nanako Shiraishi Tue, 9 Dec 2008 03:42:17 +0000 (12:42 +0900)

git-gui: Update Japanese translation for 0.12

Adds translation for one new message string.

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

Define linkgit macro in [macros] sectionAlexey Borzenkov Mon, 8 Dec 2008 18:29:09 +0000 (21:29 +0300)

Define linkgit macro in [macros] section

Starting with asciidoc 8.3.0 linkgit macro is no longer recognized by
asciidoc and user guide suggests
(http://www.methods.co.nz/asciidoc/userguide.html#_macro_definitions)
that macros are supposed to be defined in [macros] section. I'm not
sure whether undefined linkgit macro was working by pure chance or it
is a regression in asciidoc 8.3.0, but this patch adds proper
definition for the linkgit macro, allowing it to work on 8.3.0.

Signed-off-by: Alexey Borzenkov <snaury@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-svn: Make following parents atomicDeskin Miller Mon, 8 Dec 2008 13:31:31 +0000 (08:31 -0500)

git-svn: Make following parents atomic

find_parent_branch generates branch@rev type branches when one has to
look back through SVN history to properly get the history for a branch
copied from somewhere not already being tracked by git-svn. If in the
process of fetching this history, git-svn is interrupted, then when one
fetches again, it will use whatever was last fetched as the parent
commit and fail to fetch any more history which it didn't get to before
being terminated. This is especially troubling in that different
git-svn copies of the same SVN repository can end up with different
commit sha1s, incorrectly showing the history as divergent and
precluding easy collaboration using git push and fetch.

To fix this, when we initialise the Git::SVN object $gs to search for
and perhaps fetch history, we check if there are any commits in SVN in
the range between the current revision $gs is at, and the top revision
for which we were asked to fill history. If there are commits we're
missing in that range, we continue the fetch from the current revision
to the top, properly getting all history before using it as the parent
for the branch we're trying to create.

Signed-off-by: Deskin Miller <deskinm@umich.edu>
Acked-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

git-gui: Starting translation for NorwegianFredrik Skolmli Mon, 8 Dec 2008 16:36:57 +0000 (17:36 +0100)

git-gui: Starting translation for Norwegian

This file have been used locally for some time, and is near
completion. Will put an effort into completing it later on,
or just leave it as an excercise for other Norwegians.

Signed-off-by: Fredrik Skolmli <fredrik@frsk.net>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>

gitweb: Fix bug in insert_file() subroutineJakub Narebski Mon, 8 Dec 2008 13:13:21 +0000 (14:13 +0100)

gitweb: Fix bug in insert_file() subroutine

In insert_file() subroutine (which is used to insert HTML fragments as
custom header, footer, hometext (for projects list view), and per
project README.html (for summary view)) we used:

map(to_utf8, <$fd>);

This doesn't work, and other form has to be used:

map { to_utf8($_) } <$fd>;

Now with test for t9600 added, for $GIT_DIR/README.html.

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