gitweb.git
Merge git://github.com/ralfth/git-po-deJiang Xin Tue, 7 Aug 2012 23:23:01 +0000 (07:23 +0800)

Merge git://github.com/ralfth/git-po-de

* git://github.com/ralfth/git-po-de:
l10n: de.po: translate 77 new messages

prune.c: only print informational message in show_only... Brandon Casey Tue, 7 Aug 2012 05:01:49 +0000 (22:01 -0700)

prune.c: only print informational message in show_only or verbose mode

"git prune" reports removal of loose object files that are no longer
necessary only under the "-v" option, but unconditionally reports
removal of temporary files that are no longer needed.

The original thinking was that the presence of a leftover temporary
file should be an unusual occurrence that may indicate an earlier
failure of some sort, and the user may want to be reminded of it.
Removing an unnecessary loose object file, on the other hand, is
just part of the normal operation. That is why the former is always
printed out and the latter only when -v is used.

But neither report is particularly useful. Hide both of these
behind the "-v" option for consistency.

Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

docs: monospace listings in docbook outputJeff King Tue, 7 Aug 2012 20:07:38 +0000 (16:07 -0400)

docs: monospace listings in docbook output

When asciidoc converts a listing block like:

----------------------
$ git log --merge
----------------------

it marks it to be displayed in a monospace font. This works
fine when generating HTML output. However, when generating
docbook output, we override the expansion of a listingblock
to work around bugs in some versions of the docbook
toolchain. Our override did not mark the listingblock with
the "monospaced" class.

The main output that uses docbook as an intermediate format
is the manpages. We didn't notice any issue there because
the monospaced class seems to be ignored when generating
roff from the docbook manpages.

However, when generating texinfo to make info pages, docbook
does respect this class. The resulting texinfo output
properly uses "@example" blocks to display the listing in
this case. Besides possibly looking prettier in some texinfo
backends, one important effect is that the monospace font
suppresses texinfo's expansion of "--" and "---" into
en-dashes and em-dashes. With the current code, the example
above ends up looking like "git log -merge", which is
confusing and wrong.

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

Git 1.7.12-rc2 v1.7.12-rc2Junio C Hamano Tue, 7 Aug 2012 17:39:34 +0000 (10:39 -0700)

Git 1.7.12-rc2

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

l10n: de.po: translate 77 new messagesRalf Thielow Thu, 2 Aug 2012 16:06:12 +0000 (18:06 +0200)

l10n: de.po: translate 77 new messages

Translate 77 new messages came from git.pot update
in 3b6137f (l10n: Update git.pot (76 new, 4 removed
messages)) and bb2ba06 (l10n: Update one message in
git.pot).

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Signed-off-by: Thomas Rast <trast@student.ethz.ch>

receive-pack: do not leak output from auto-gc to standa... Junio C Hamano Tue, 7 Aug 2012 05:31:10 +0000 (22:31 -0700)

receive-pack: do not leak output from auto-gc to standard output

The standard output channel of receive-pack is a structured protocol
channel, and subprocesses must never be allowed to leak anything
into it by writing to their standard output.

Use RUN_COMMAND_STDOUT_TO_STDERR option to run_command_v_opt() just
like we do when running hooks to prevent output from "gc" leaking to
the standard output.

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

t/t5400: demonstrate breakage caused by informational... Brandon Casey Tue, 7 Aug 2012 05:01:48 +0000 (22:01 -0700)

t/t5400: demonstrate breakage caused by informational message from prune

When receive-pack triggers 'git gc --auto' and 'git prune' is called to
remove a stale temporary object, 'git prune' prints an informational
message to stdout about the file that it will remove. Since this message
is written to stdout, it is sent back over the transport channel to the git
client which tries to interpret it as part of the pack protocol and then
promptly terminates with a complaint about a protocol error.

Introduce a test which exercises the auto-gc functionality of receive-pack
and demonstrates this breakage.

Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Enable HAVE_DEV_TTY for SolarisBen Walton Tue, 7 Aug 2012 03:07:42 +0000 (23:07 -0400)

Enable HAVE_DEV_TTY for Solaris

Now that git_terminal_prompt can cleanly interact with /dev/tty on
Solaris, enable HAVE_DEV_TTY so that this code path is used for
credential reading instead of relying on the crippled getpass().

Signed-off-by: Ben Walton <bwalton@artsci.utoronto.ca>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

terminal: seek when switching between reading and writingJeff King Tue, 7 Aug 2012 04:10:26 +0000 (00:10 -0400)

terminal: seek when switching between reading and writing

When a stdio stream is opened in update mode (e.g., "w+"),
the C standard forbids switching between reading or writing
without an intervening positioning function. Many
implementations are lenient about this, but Solaris libc
will flush the recently-read contents to the output buffer.
In this instance, that meant writing the non-echoed password
that the user just typed to the terminal.

Fix it by inserting a no-op fseek between the read and
write.

The opposite direction (writing followed by reading) is also
disallowed, but our intervening fflush is an acceptable
positioning function for that alternative.

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

l10n: vi.po: update one messageTran Ngoc Quan Tue, 7 Aug 2012 00:18:01 +0000 (07:18 +0700)

l10n: vi.po: update one message

* Translate message that updated from commit bb2ba06

Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>

Drop 1.7.11.x items from 1.7.12 release notesJunio C Hamano Mon, 6 Aug 2012 22:58:38 +0000 (15:58 -0700)

Drop 1.7.11.x items from 1.7.12 release notes

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

Sync with maintJunio C Hamano Mon, 6 Aug 2012 22:53:33 +0000 (15:53 -0700)

Sync with maint

Prepare for 1.7.11.5Junio C Hamano Mon, 6 Aug 2012 22:51:58 +0000 (15:51 -0700)

Prepare for 1.7.11.5

Hopefully that will be the final 1.7.11.x maintenance release.

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

Merge branch 'jn/block-sha1' into maintJunio C Hamano Mon, 6 Aug 2012 22:40:00 +0000 (15:40 -0700)

Merge branch 'jn/block-sha1' into maint

* jn/block-sha1:
Makefile: BLK_SHA1 does not require fast htonl() and unaligned loads
block-sha1: put expanded macro parameters in parentheses
block-sha1: avoid pointer conversion that violates alignment constraints

Merge branch 'jn/make-assembly-in-right-directory'... Junio C Hamano Mon, 6 Aug 2012 22:39:38 +0000 (15:39 -0700)

Merge branch 'jn/make-assembly-in-right-directory' into maint

* jn/make-assembly-in-right-directory:
Makefile: fix location of listing produced by "make subdir/foo.s"

Merge branch 'ms/daemon-doc-typo' into maintJunio C Hamano Mon, 6 Aug 2012 22:39:16 +0000 (15:39 -0700)

Merge branch 'ms/daemon-doc-typo' into maint

* ms/daemon-doc-typo:
Documentation/git-daemon: add missing word

Merge branch 'lm/git-blame-el' into maintJunio C Hamano Mon, 6 Aug 2012 22:37:54 +0000 (15:37 -0700)

Merge branch 'lm/git-blame-el' into maint

* lm/git-blame-el:
git-blame.el: Do not use bare 0 to mean (point-min)
git-blame.el: Use with-current-buffer where appropriate
git-blame.el: Do not use goto-line in lisp code

Merge branch 'rs/ipv6-ssh-url' into maintJunio C Hamano Mon, 6 Aug 2012 22:37:43 +0000 (15:37 -0700)

Merge branch 'rs/ipv6-ssh-url' into maint

* rs/ipv6-ssh-url:
git: Wrong parsing of ssh urls with IPv6 literals ignores port

Merge branch 'rs/git-blame-mapcar-mapc' into maintJunio C Hamano Mon, 6 Aug 2012 22:37:28 +0000 (15:37 -0700)

Merge branch 'rs/git-blame-mapcar-mapc' into maint

* rs/git-blame-mapcar-mapc:
git-blame.el: use mapc instead of mapcar

Merge branch 'rr/doc-commit' into maintJunio C Hamano Mon, 6 Aug 2012 22:37:09 +0000 (15:37 -0700)

Merge branch 'rr/doc-commit' into maint

* rr/doc-commit:
commit: document a couple of options

doc: A few minor copy edits.Štěpán Němec Sat, 14 Jul 2012 22:20:36 +0000 (00:20 +0200)

doc: A few minor copy edits.

- (glossary) the quotes around the Wikipedia URL prevented its
linkification in frontends that support it; remove them

- (manual) newer version (SHA-1) == following, older == preceding, not
the other way around

- trivial typo and wording fixes

Signed-off-by: Štěpán Němec <stepnem@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'jk/maint-checkout-orphan-check-fix' into... Junio C Hamano Mon, 6 Aug 2012 22:31:16 +0000 (15:31 -0700)

Merge branch 'jk/maint-checkout-orphan-check-fix' into maint

* jk/maint-checkout-orphan-check-fix:
checkout: don't confuse ref and object flags

Merge branch 'mh/maint-revisions-doc' into maintJunio C Hamano Mon, 6 Aug 2012 22:30:57 +0000 (15:30 -0700)

Merge branch 'mh/maint-revisions-doc' into maint

* mh/maint-revisions-doc:
Enumerate revision range specifiers in the documentation
Make <refname> documentation more consistent.

Merge branch 'jc/mergetool-tool-help' into maintJunio C Hamano Mon, 6 Aug 2012 22:30:18 +0000 (15:30 -0700)

Merge branch 'jc/mergetool-tool-help' into maint

* jc/mergetool-tool-help:
mergetool: support --tool-help option like difftool does

Makefile: use overridable $(FIND) instead of hard-coded... Johannes Sixt Mon, 6 Aug 2012 21:06:14 +0000 (23:06 +0200)

Makefile: use overridable $(FIND) instead of hard-coded 'find'

The Makefile already offers the variable $(FIND) and uses it except in one
place. Fix it.

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

Documentation: do not mention .git/refs/* directoriesJunio C Hamano Mon, 6 Aug 2012 20:36:47 +0000 (13:36 -0700)

Documentation: do not mention .git/refs/* directories

It is an implementation detail that a new tag is created by adding a
file in the .git/refs/tags directory. The only thing the user needs
to know is that a "git tag" creates a ref in the refs/tags namespace,
and without "-f", it does not overwrite an existing tag.

Inspired by a report from 乙酸鋰 <ch3cooli@gmail.com>; I think I
caught all the existing mention in Documentation/ directory in the
tip of 1.7.9.X maintenance track, but we may have added new ones
since then.

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

l10n: zh_CN.po: update one translationJiang Xin Mon, 6 Aug 2012 17:10:34 +0000 (01:10 +0800)

l10n: zh_CN.po: update one translation

Translate 1 new messages came from git.pot update in bb2ba06
(l10n: Update one message in git.pot)

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>

read_index_from: remove bogus errno assignmentsNguyễn Thái Ngọc Duy Mon, 6 Aug 2012 11:27:09 +0000 (18:27 +0700)

read_index_from: remove bogus errno assignments

These assignments comes from the very first commit e83c516 (Initial
revision of "git", the information manager from hell - 2005-04-07).
Back then we did not die() when errors happened so correct errno was
required.

Since 5d1a5c0 ([PATCH] Better error reporting for "git status" -
2005-10-01), read_index_from() learned to die rather than just return
-1 and these assignments became irrelevant. Remove them.

While at it, move die_errno() next to xmmap() call because it's the
mmap's error code that we care about. Otherwise if close(fd); fails,
it could overwrite mmap's errno.

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

l10n: Update one message in git.potJiang Xin Mon, 6 Aug 2012 15:48:08 +0000 (23:48 +0800)

l10n: Update one message in git.pot

This update comes from commit v1.7.12-rc1-18-ge0453
(merge-recursive: separate message for common ancestors).

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>

Merge git://github.com/git-l10n/git-poJunio C Hamano Mon, 6 Aug 2012 03:51:05 +0000 (20:51 -0700)

Merge git://github.com/git-l10n/git-po

* git://github.com/git-l10n/git-po:
l10n: zh_CN.po: translate 76 new messages
l10n: vi.po update to follow POT in 3b613
l10n: Update git.pot (76 new, 4 removed messages)

apply: delete unused deflate_origlen from patch structPaul Gortmaker Thu, 2 Aug 2012 22:25:30 +0000 (18:25 -0400)

apply: delete unused deflate_origlen from patch struct

It hasn't been used since 2006, as of commit 3cd4f5e8

"git-apply --binary: clean up and prepare for --reverse"

Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Fix '\ No newline...' annotation in rewrite diffsAdam Butcher Sat, 4 Aug 2012 21:07:35 +0000 (21:07 +0000)

Fix '\ No newline...' annotation in rewrite diffs

When a file that ends with an incomplete line is expressed as a
complete rewrite with the -B option, git diff incorrectly
appends the incomplete line indicator "\ No newline at end of
file" after such a line, rather than writing it on a line of its
own (the output codepath for normal output without -B does not
have this problem). Add a LF after the incomplete line before
writing the "\ No newline ..." out to fix this.

Add a couple of tests to confirm that the indicator comment is
generated on its own line in both plain diff and rewrite mode.

Signed-off-by: Adam Butcher <dev.lists@jessamine.co.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

merge-recursive: separate message for common ancestorsRalf Thielow Sun, 5 Aug 2012 17:56:38 +0000 (19:56 +0200)

merge-recursive: separate message for common ancestors

The function "merge_recursive" prints the count of common ancestors
as "found %u common ancestor(s):". We should use a singular and a
plural form of this message to help translators.

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

l10n: zh_CN.po: translate 76 new messagesJiang Xin Thu, 2 Aug 2012 03:50:59 +0000 (11:50 +0800)

l10n: zh_CN.po: translate 76 new messages

Translate 76 new messages came from git.pot update in 3b6137f
(l10n: Update git.pot (76 new, 4 removed messages))

Thynson reviewed this update and also contributed other improvements:

* blob -> 二进制对象(blob)
* 共用 -> 同时使用

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
Reviewed-by: Thynson <lanxingcan@gmail.com>

tests: Introduce test_seqMichał Kiedrowicz Fri, 3 Aug 2012 22:21:04 +0000 (00:21 +0200)

tests: Introduce test_seq

Jeff King wrote:

The seq command is GNU-ism, and is missing at least in older BSD
releases and their derivatives, not to mention antique
commercial Unixes.

We already purged it in b3431bc (Don't use seq in tests, not
everyone has it, 2007-05-02), but a few new instances have crept
in. They went unnoticed because they are in scripts that are not
run by default.

Replace them with test_seq that is implemented with a Perl snippet
(proposed by Jeff). This is better than inlining this snippet
everywhere it's needed because it's easier to read and it's easier
to change the implementation (e.g. to C) if we ever decide to remove
Perl from the test suite.

Note that test_seq is not a complete replacement for seq(1). It
just has what we need now, in addition that it makes it possible for
us to do something like "test_seq a m" if we wanted to in the
future.

There are also many places that do `for i in 1 2 3 ...` but I'm not sure
if it's worth converting them to test_seq. That would introduce running
more processes of Perl.

Signed-off-by: Michał Kiedrowicz <michal.kiedrowicz@gmail.com>
Acked-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

include agent identifier in capability stringJeff King Fri, 3 Aug 2012 16:19:16 +0000 (12:19 -0400)

include agent identifier in capability string

Instead of having the client advertise a particular version
number in the git protocol, we have managed extensions and
backwards compatibility by having clients and servers
advertise capabilities that they support. This is far more
robust than having each side consult a table of
known versions, and provides sufficient information for the
protocol interaction to complete.

However, it does not allow servers to keep statistics on
which client versions are being used. This information is
not necessary to complete the network request (the
capabilities provide enough information for that), but it
may be helpful to conduct a general survey of client
versions in use.

We already send the client version in the user-agent header
for http requests; adding it here allows us to gather
similar statistics for non-http requests.

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

merge-recursive: eliminate flush_buffer() in favor... Thomas Rast Fri, 3 Aug 2012 12:16:25 +0000 (14:16 +0200)

merge-recursive: eliminate flush_buffer() in favor of write_in_full()

flush_buffer() is a thin wrapper around write_in_full() with two very
confusing properties:

* It runs a loop to handle short reads, ensuring that we write
everything. But that is precisely what write_in_full() does!

* It checks for a return value of 0 from write_in_full(), which cannot
happen: it returns this value only if count=0, but flush_buffer()
will never call write_in_full() in this case.

Remove it.

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

diff_setup_done(): return voidThomas Rast Fri, 3 Aug 2012 12:16:24 +0000 (14:16 +0200)

diff_setup_done(): return void

diff_setup_done() has historically returned an error code, but lost
the last nonzero return in 943d5b7 (allow diff.renamelimit to be set
regardless of -M/-C, 2006-08-09). The callers were in a pretty
confused state: some actually checked for the return code, and some
did not.

Let it return void, and patch all callers to take this into account.
This conveniently also gets rid of a handful of different(!) error
messages that could never be triggered anyway.

Note that the function can still die().

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

git-remote-mediawiki: replace TODO-list in comment... Matthieu Moy Fri, 3 Aug 2012 08:40:23 +0000 (10:40 +0200)

git-remote-mediawiki: replace TODO-list in comment by appropriate link

My account on Github is now used as wiki and issue tracking. This will be
more flexible than in-tree management of a TODO-list.

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

setup: clarify error messages for file/revisions ambiguityMatthieu Moy Fri, 3 Aug 2012 08:21:20 +0000 (10:21 +0200)

setup: clarify error messages for file/revisions ambiguity

The previous "Use '--' to separate filenames from revisions" may sound
obvious for an old-time Unix user, but does not make it clear how to use
this '--'. In addition to mentionning this '--', give an idea of what the
new command should look like.

Ideally, we could provide cut-and-paste ready commands based on the
command that just failed, but we have no easy access to argv[] in this
place of the code.

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

l10n: vi.po update to follow POT in 3b613Tran Ngoc Quan Fri, 3 Aug 2012 07:15:23 +0000 (14:15 +0700)

l10n: vi.po update to follow POT in 3b613

* Translated 76 new messages

Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>

l10n: Update git.pot (76 new, 4 removed messages)Jiang Xin Thu, 2 Aug 2012 01:35:23 +0000 (09:35 +0800)

l10n: Update git.pot (76 new, 4 removed messages)

Generate po/git.pot from v1.7.12-rc1-16-g05a20, and there are 76 new,
4 removed l10n messages.

* 76 new messages are added at lines:

230, 337-580, 4972, 4984, 4998, 5017, 5280-5378, 5654

* 4 old messages are deleted from the previous version at lines:

230, 4729, 4764, 5295

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>

Merge git://github.com/git-l10n/git-poJunio C Hamano Wed, 1 Aug 2012 22:59:08 +0000 (15:59 -0700)

Merge git://github.com/git-l10n/git-po

* git://github.com/git-l10n/git-po:
l10n: de.po: translate 4 new messages
l10n: vi.po: translate 4 new messages
l10n: zh_CN.po: translate 4 new messages
l10n: Update git.pot (4 new, 3 removed messages)

git-rebase.sh: fix typo in an error messageRalf Thielow Wed, 1 Aug 2012 17:09:09 +0000 (19:09 +0200)

git-rebase.sh: fix typo in an error message

Fix a typo in the error messages which is shown if it seems that a
rebase is already in progress.

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

send-email: improve RFC2047 quote parsingThomas Rast Mon, 30 Jul 2012 19:25:40 +0000 (21:25 +0200)

send-email: improve RFC2047 quote parsing

The RFC2047 unquoting, used to parse email addresses in From and Cc
headers, is broken in several ways:

* It erroneously substitutes ' ' for '_' in *the whole* header, even
outside the quoted field. [Noticed by Christoph.]

* It is too liberal in its matching, and happily matches the start
of one quoted chunk against the end of another, or even just
something that looks like such an end. [Noticed by Junio.]

* It fundamentally cannot cope with encodings that are not a
superset of ASCII, nor several (incompatible) encodings in the
same header.

This patch fixes the first two by doing a more careful decoding of
the outer quoting (e.g. "=AB" to represent an octet whose value is
0xAB). Fixing the fundamental issues is left for a future, more
intrusive, patch.

Noticed-by: Christoph Miebach <christoph.miebach@web.de>
Helped-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

sane_execvp(): ignore non-directory on $PATHJunio C Hamano Tue, 31 Jul 2012 19:51:30 +0000 (12:51 -0700)

sane_execvp(): ignore non-directory on $PATH

When you have a non-directory on your PATH, a funny thing happens:

$ PATH=$PATH:/bin/sh git foo
fatal: cannot exec 'git-foo': Not a directory?

Worse yet, as real commands always take precedence over aliases,
this behaviour interacts rather badly with them:

$ PATH=$PATH:/bin/sh git -c alias.foo=show git foo -s
fatal: cannot exec 'git-foo': Not a directory?

This is because an ENOTDIR error from the underlying execvp(2) is
reported back to the caller of our sane_execvp() wrapper as-is.

Translating it to ENOENT, just like the case where we _might_ have
the command in an unreadable directory, fixes it. Without an alias,
we would get

git: 'foo' is not a git command. See 'git --help'.

and we use the 'foo' alias when it is available, of course.

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

Merge branch 'nd/maint-i18n-diffstat'Junio C Hamano Tue, 31 Jul 2012 16:43:07 +0000 (09:43 -0700)

Merge branch 'nd/maint-i18n-diffstat'

* nd/maint-i18n-diffstat:
i18n: leave \n out of translated diffstat

Merge branch 'jx/i18n-1.7.11'Junio C Hamano Tue, 31 Jul 2012 16:41:51 +0000 (09:41 -0700)

Merge branch 'jx/i18n-1.7.11'

Add i18n support for scripted Porcelains, and mark strings in
merge(-recursive), am, and rebase for i18n.

* jx/i18n-1.7.11:
i18n: merge-recursive: mark strings for translation
Remove dead code which contains bad gettext block
i18n: am: mark more strings for translation
rebase: remove obsolete and unused LONG_USAGE which breaks xgettext
i18n: Rewrite gettext messages start with dash
i18n: rebase: mark messages for translation
i18n: New keywords for xgettext extraction from sh

l10n: de.po: translate 4 new messagesRalf Thielow Mon, 30 Jul 2012 15:50:53 +0000 (17:50 +0200)

l10n: de.po: translate 4 new messages

Translate 4 new messages came from git.pot update in 0bbe5b4
(l10n: Update git.pot (4 new, 3 removed messages)).

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>

l10n: vi.po: translate 4 new messagesTran Ngoc Quan Tue, 31 Jul 2012 00:45:53 +0000 (07:45 +0700)

l10n: vi.po: translate 4 new messages

Update Vietnamse translation to POT file in 0bbe5b4

Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>

l10n: zh_CN.po: translate 4 new messagesJiang Xin Mon, 30 Jul 2012 22:45:33 +0000 (06:45 +0800)

l10n: zh_CN.po: translate 4 new messages

Translate 4 new messages came from git.pot update in 0bbe5b4
(l10n: Update git.pot (4 new, 3 removed messages))

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>

Git 1.7.12-rc1 v1.7.12-rc1Junio C Hamano Mon, 30 Jul 2012 20:00:03 +0000 (13:00 -0700)

Git 1.7.12-rc1

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

Sync with 1.7.11.4Junio C Hamano Mon, 30 Jul 2012 20:17:31 +0000 (13:17 -0700)

Sync with 1.7.11.4

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

Git 1.7.11.4 v1.7.11.4Junio C Hamano Mon, 30 Jul 2012 20:09:25 +0000 (13:09 -0700)

Git 1.7.11.4

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

Merge branch 'jk/maint-commit-document-editmsg' into... Junio C Hamano Mon, 30 Jul 2012 20:05:36 +0000 (13:05 -0700)

Merge branch 'jk/maint-commit-document-editmsg' into maint

"$GIT_DIR/COMMIT_EDITMSG" file that is used to hold the commit log
message user edits was not documented.

* jk/maint-commit-document-editmsg:
commit: document the temporary commit message file

Merge branch 'jk/maint-advise-vaddf' into maintJunio C Hamano Mon, 30 Jul 2012 20:05:25 +0000 (13:05 -0700)

Merge branch 'jk/maint-advise-vaddf' into maint

The advise() function did not use varargs correctly to format
its message.

* jk/maint-advise-vaddf:
advice: pass varargs to strbuf_vaddf, not strbuf_addf

Merge branch 'kk/maint-commit-tree' into maintJunio C Hamano Mon, 30 Jul 2012 20:05:13 +0000 (13:05 -0700)

Merge branch 'kk/maint-commit-tree' into maint

"git commit-tree" learned a more natural "-p <parent> <tree>" order
of arguments long time ago, but recently forgot it by mistake.

* kk/maint-commit-tree:
Revert "git-commit-tree(1): update synopsis"
commit-tree: resurrect command line parsing updates

Merge branch 'jv/maint-no-ext-diff' into maintJunio C Hamano Mon, 30 Jul 2012 20:04:59 +0000 (13:04 -0700)

Merge branch 'jv/maint-no-ext-diff' into maint

"git diff --no-ext-diff" did not output anything for a typechange
filepair when GIT_EXTERNAL_DIFF is in effect.

* jv/maint-no-ext-diff:
diff: test precedence of external diff drivers
diff: correctly disable external_diff with --no-ext-diff

Merge branch 'pg/maint-1.7.9-am-where-is-patch' into... Junio C Hamano Mon, 30 Jul 2012 20:04:39 +0000 (13:04 -0700)

Merge branch 'pg/maint-1.7.9-am-where-is-patch' into maint

When "git am" failed, old timers knew to check .git/rebase-apply/patch
to see what went wrong, but we never told the users about it.

* pg/maint-1.7.9-am-where-is-patch:
am: indicate where a failed patch is to be found

Merge branch 'jl/maint-1.7.10-recurse-submodules-with... Junio C Hamano Mon, 30 Jul 2012 20:04:18 +0000 (13:04 -0700)

Merge branch 'jl/maint-1.7.10-recurse-submodules-with-symlink' into maint

When "git submodule add" clones a submodule repository, it can get
confused where to store the resulting submodule repository in the
superproject's .git/ directory when there is a symbolic link in the
path to the current directory.

* jl/maint-1.7.10-recurse-submodules-with-symlink:
submodules: don't stumble over symbolic links when cloning recursively

Merge branch 'jc/maint-filter-branch-epoch-date' into... Junio C Hamano Mon, 30 Jul 2012 20:03:40 +0000 (13:03 -0700)

Merge branch 'jc/maint-filter-branch-epoch-date' into maint

In 1.7.9 era, we taught "git rebase" about the raw timestamp format
but we did not teach the same trick to "filter-branch", which rolled
a similar logic on its own.

* jc/maint-filter-branch-epoch-date:
t7003: add test to filter a branch with a commit at epoch
date.c: Fix off by one error in object-header date parsing
filter-branch: do not forget the '@' prefix to force git-timestamp

Merge branch 'rj/maint-grep-remove-redundant-test'Junio C Hamano Mon, 30 Jul 2012 19:56:42 +0000 (12:56 -0700)

Merge branch 'rj/maint-grep-remove-redundant-test'

"git grep" stopped spawning an external "grep" long time ago, but a
duplicated test to check internal and external "grep" was left
behind.

* rj/maint-grep-remove-redundant-test:
t7810-*.sh: Remove redundant test

Merge branch 'dg/submodule-in-dismembered-working-tree'Junio C Hamano Mon, 30 Jul 2012 19:56:25 +0000 (12:56 -0700)

Merge branch 'dg/submodule-in-dismembered-working-tree'

Finishing touches to the new test script.

* dg/submodule-in-dismembered-working-tree:
t7409: make sure submodule is initialized and updated in more detail

t7409: make sure submodule is initialized and updated... Daniel Graña Mon, 30 Jul 2012 17:51:59 +0000 (14:51 -0300)

t7409: make sure submodule is initialized and updated in more detail

The earlier test did not even make sure that the correct commit is
checked out in the submodule directory. Inspect the result in a bit
more detail.

Signed-off-by: Daniel Graña <dangra@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'hv/link-alt-odb-entry'Junio C Hamano Mon, 30 Jul 2012 19:55:01 +0000 (12:55 -0700)

Merge branch 'hv/link-alt-odb-entry'

The code to avoid mistaken attempt to add the object directory
itself as its own alternate could read beyond end of a string while
comparison.

* hv/link-alt-odb-entry:
link_alt_odb_entry: fix read over array bounds reported by valgrind

Add explanatory comment for transport-helpers refs... Florian Achleitner Mon, 30 Jul 2012 14:31:18 +0000 (16:31 +0200)

Add explanatory comment for transport-helpers refs mapping.

The patch below adds a comment to fetch_with_import() explaining the
loop that saves the fetched commit names after 'git fast-import' has
done its work. It avoids some confusion about which refs the
fast-import stream is supposed to use to write its result.

Signed-off-by: Florian Achleitner <florian.achleitner.2.6.31@gmail.com>
Helped-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t7406: fix misleading "rev-parse --max-count=1 HEAD"Junio C Hamano Mon, 30 Jul 2012 17:51:52 +0000 (10:51 -0700)

t7406: fix misleading "rev-parse --max-count=1 HEAD"

The test happened to use "rev-parse --max-count=1 HEAD" consistently
to prepare the expected output and the actual output, so the
comparison between them gave us a correct success/failure because
both output had irrelevant "--max-count=1" in it.

But that is not an excuse to keep it broken. Replace it a more
meaningful construct "rev-parse --verify HEAD".

Noticed by Daniel Graña while working on his submodule tests.

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

config: "git config baa" should exit with status 1Junio C Hamano Sun, 29 Jul 2012 20:43:21 +0000 (13:43 -0700)

config: "git config baa" should exit with status 1

We instead failed with an undocumented exit status 255.
Also define a "catch-all" status and document it.

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

l10n: Update git.pot (4 new, 3 removed messages)Jiang Xin Mon, 30 Jul 2012 02:24:47 +0000 (10:24 +0800)

l10n: Update git.pot (4 new, 3 removed messages)

Generate po/git.pot from v1.7.12-rc0-54-g9e211, and there are 4 new,
3 removed l10n messages.

* 4 new messages are added at lines:
1254, 1264, 1459, 1523

* 3 old messages are deleted from the previous version at lines:
1254, 1273, 2854

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>

t7810-*.sh: Remove redundant testRamsay Jones Sat, 28 Jul 2012 18:50:49 +0000 (19:50 +0100)

t7810-*.sh: Remove redundant test

Since commit bbc09c22 ("grep: rip out support for external grep",
12-01-2010), test number 60 ("grep -C1 hunk mark between files") is
essentially the same as test number 59.

Test 59 was intended to verify the behaviour of git-grep resulting
from multiple invocations of an external grep. As part of the test,
it creates and adds 1024 files to the index, which is now wasted
effort.

Remove test 59, since it is now redundant.

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

t1100-*.sh: Fix an intermittent test failureRamsay Jones Sat, 28 Jul 2012 18:48:06 +0000 (19:48 +0100)

t1100-*.sh: Fix an intermittent test failure

In particular, the final test ('flags and then non flags') fails
intermittently, depending on how much time elapsed between the
invocations of "git commit-tree" when creating the commits which
later have their commit id's compared. For example, if the commits
for childid-3 and childid-4 are created 1 or more seconds apart,
then the commits, which would otherwise be identical, will have
different commit id's.

In order to make the test reproducible, we remove the variability
by setting the author and committer times to a well defined state.
We accomplish this with a single call to 'test_tick' at the start
of the test.

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

link_alt_odb_entry: fix read over array bounds reported... Heiko Voigt Sat, 28 Jul 2012 15:46:36 +0000 (17:46 +0200)

link_alt_odb_entry: fix read over array bounds reported by valgrind

pfxlen can be longer than the path in objdir when relative_base
contains the path to gits object directory. Here we are interested
in checking if ent->base[] (the part that corresponds to .git/objects)
is the same string as objdir, and the code NUL-terminated ent->base[]
to

LEADING PATH\0XX/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\0

in preparation for these "duplicate check" step (before we return
from the function, the first NUL is turned into '/' so that we can
fill XX when probing for loose objects). All we need to do is to
compare the string with the path to our object directory.

Signed-off-by: Heiko Voigt <hvoigt@hvoigt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t: add missing executable bit to t7409Jeff King Sat, 28 Jul 2012 15:18:29 +0000 (11:18 -0400)

t: add missing executable bit to t7409

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

fsck: detect null sha1 in tree entriesJeff King Sat, 28 Jul 2012 15:06:29 +0000 (11:06 -0400)

fsck: detect null sha1 in tree entries

Short of somebody happening to beat the 1 in 2^160 odds of
actually generating content that hashes to the null sha1, we
should never see this value in a tree entry. So let's have
fsck warn if it it seen.

As in the previous commit, we test both blob and submodule
entries to future-proof the test suite against the
implementation depending on connectivity to notice the
error.

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

do not write null sha1s to on-disk indexJeff King Sat, 28 Jul 2012 15:05:24 +0000 (11:05 -0400)

do not write null sha1s to on-disk index

We should never need to write the null sha1 into an index
entry (short of the 1 in 2^160 chance that somebody actually
has content that hashes to it). If we attempt to do so, it
is much more likely that it is a bug, since we use the null
sha1 as a sentinel value to mean "not valid".

The presence of null sha1s in the index (which can come
from, among other things, "update-index --cacheinfo", or by
reading a corrupted tree) can cause problems for later
readers, because they cannot distinguish the literal null
sha1 from its use a sentinel value. For example, "git
diff-files" on such an entry would make it appear as if it
is stat-dirty, and until recently, the diff code assumed
such an entry meant that we should be diffing a working tree
file rather than a blob.

Ideally, we would stop such entries from entering even our
in-core index. However, we do sometimes legitimately add
entries with null sha1s in order to represent these sentinel
situations; simply forbidding them in add_index_entry breaks
a lot of the existing code. However, we can at least make
sure that our in-core sentinel representation never makes it
to disk.

To be thorough, we will test an attempt to add both a blob
and a submodule entry. In the former case, we might run into
problems anyway because we will be missing the blob object.
But in the latter case, we do not enforce connectivity
across gitlink entries, making this our only point of
enforcement. The current implementation does not care which
type of entry we are seeing, but testing both cases helps
future-proof the test suite in case that changes.

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

diff: do not use null sha1 as a sentinel valueJeff King Sat, 28 Jul 2012 15:03:01 +0000 (11:03 -0400)

diff: do not use null sha1 as a sentinel value

The diff code represents paths using the diff_filespec
struct. This struct has a sha1 to represent the sha1 of the
content at that path, as well as a sha1_valid member which
indicates whether its sha1 field is actually useful. If
sha1_valid is not true, then the filespec represents a
working tree file (e.g., for the no-index case, or for when
the index is not up-to-date).

The diff_filespec is only used internally, though. At the
interfaces to the diff subsystem, callers feed the sha1
directly, and we create a diff_filespec from it. It's at
that point that we look at the sha1 and decide whether it is
valid or not; callers may pass the null sha1 as a sentinel
value to indicate that it is not.

We should not typically see the null sha1 coming from any
other source (e.g., in the index itself, or from a tree).
However, a corrupt tree might have a null sha1, which would
cause "diff --patch" to accidentally diff the working tree
version of a file instead of treating it as a blob.

This patch extends the edges of the diff interface to accept
a "sha1_valid" flag whenever we accept a sha1, and to use
that flag when creating a filespec. In some cases, this
means passing the flag through several layers, making the
code change larger than would be desirable.

One alternative would be to simply die() upon seeing
corrupted trees with null sha1s. However, this fix more
directly addresses the problem (while bogus sha1s in a tree
are probably a bad thing, it is really the sentinel
confusion sending us down the wrong code path that is what
makes it devastating). And it means that git is more capable
of examining and debugging these corrupted trees. For
example, you can still "diff --raw" such a tree to find out
when the bogus entry was introduced; you just cannot do a
"--patch" diff (just as you could not with any other
corrupted tree, as we do not have any content to diff).

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

Update draft release notes to 1.7.12Junio C Hamano Sat, 28 Jul 2012 05:25:19 +0000 (22:25 -0700)

Update draft release notes to 1.7.12

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

Merge branch 'extract-remaining' of git://git.bogomips... Junio C Hamano Sat, 28 Jul 2012 04:48:27 +0000 (21:48 -0700)

Merge branch 'extract-remaining' of git://git.bogomips.org/git-svn

* 'extract-remaining' of git://git.bogomips.org/git-svn:
Extract Git::SVN::GlobSpec from git-svn.
Move Git::IndexInfo into its own file.
Load all the modules in one place and before running code.
Extract Git::SVN::Migration from git-svn.
Prepare Git::SVN::Migration for extraction from git-svn.
Extract Git::SVN::Log from git-svn.
Prepare Git::SVN::Log for extraction from git-svn.

Merge git://git.bogomips.org/git-svnJunio C Hamano Sat, 28 Jul 2012 04:18:09 +0000 (21:18 -0700)

Merge git://git.bogomips.org/git-svn

* git://git.bogomips.org/git-svn:
Move initialization of Git::SVN variables into Git::SVN.
Extract Git::SVN from git-svn into its own .pm file.
Prepare Git::SVN for extraction into its own file.
Extract some utilities from git-svn to allow extracting Git::SVN.
perl: detect new files in MakeMaker builds
The Makefile.PL will now find .pm files itself.
Don't lose Error.pm if $@ gets clobbered.
Quiet warning if Makefile.PL is run with -w and no --localedir

Merge branch 'jk/autoident-test'Junio C Hamano Sat, 28 Jul 2012 04:17:00 +0000 (21:17 -0700)

Merge branch 'jk/autoident-test'

Fix test breakages by a builder who does not have a valid user name
in his /etc/password entry.

* jk/autoident-test:
t7502: test early quit from commit with bad ident
t7502: handle systems where auto-identity is broken
t7502: drop confusing test_might_fail call
t7502: narrow checks for author/committer name in template
t7502: properly quote GIT_EDITOR
t7502: clean up fake_editor tests

Merge branch 'jk/help-plug-memleak'Junio C Hamano Sat, 28 Jul 2012 04:16:45 +0000 (21:16 -0700)

Merge branch 'jk/help-plug-memleak'

Plug a few trivial memory leaks.

* jk/help-plug-memleak:
help.c::exclude_cmds(): plug a leak
help.c::uniq: plug a leak

Merge branch 'dg/submodule-in-dismembered-working-tree'Junio C Hamano Sat, 28 Jul 2012 04:13:46 +0000 (21:13 -0700)

Merge branch 'dg/submodule-in-dismembered-working-tree'

In a superproject that has repository outside of its working tree,
"git submodule add" failed to clone a new submodule, as GIT_DIR and
GIT_WORK_TREE environment variables necessary to work in such a
superproject interfered with access to the submodule repository.

* dg/submodule-in-dismembered-working-tree:
git-submodule: work with GIT_DIR/GIT_WORK_TREE

Merge branch 'jk/maint-checkout-orphan-check-fix'Junio C Hamano Sat, 28 Jul 2012 04:11:33 +0000 (21:11 -0700)

Merge branch 'jk/maint-checkout-orphan-check-fix'

"git checkout <branchname>" to come back from a detached HEAD state
incorrectly computed reachability of the detached HEAD, resulting in
unnecessary warnings.

* jk/maint-checkout-orphan-check-fix:
checkout: don't confuse ref and object flags

Extract Git::SVN::GlobSpec from git-svn.Michael G. Schwern Fri, 27 Jul 2012 00:26:06 +0000 (17:26 -0700)

Extract Git::SVN::GlobSpec from git-svn.

Straight cut & paste. That's the last class.

* Make Git::SVN load it on its own, its the only thing that needs it.

Signed-off-by: Eric Wong <normalperson@yhbt.net>

Move Git::IndexInfo into its own file.Michael G. Schwern Fri, 27 Jul 2012 00:26:05 +0000 (17:26 -0700)

Move Git::IndexInfo into its own file.

Straight cut & paste. Didn't require any fixing.

Signed-off-by: Eric Wong <normalperson@yhbt.net>

Load all the modules in one place and before running... Michael G. Schwern Fri, 27 Jul 2012 00:26:04 +0000 (17:26 -0700)

Load all the modules in one place and before running code.

Just makes the code easier to follow. No functional change.

Also eliminate an unused lexical $SVN.

Signed-off-by: Eric Wong <normalperson@yhbt.net>

Extract Git::SVN::Migration from git-svn.Michael G. Schwern Fri, 27 Jul 2012 00:26:03 +0000 (17:26 -0700)

Extract Git::SVN::Migration from git-svn.

Straight cut & paste.

Signed-off-by: Eric Wong <normalperson@yhbt.net>

Prepare Git::SVN::Migration for extraction from git... Michael G. Schwern Fri, 27 Jul 2012 00:26:02 +0000 (17:26 -0700)

Prepare Git::SVN::Migration for extraction from git-svn.

* Load Git command functions on its own.
* Load Git::SVN modules on its own.

Drive by refactorings...
* Use our() instead of use vars.
* Eliminate the auto loading of Git functions.

Signed-off-by: Eric Wong <normalperson@yhbt.net>

Extract Git::SVN::Log from git-svn.Michael G. Schwern Fri, 27 Jul 2012 00:26:01 +0000 (17:26 -0700)

Extract Git::SVN::Log from git-svn.

Straight cut & paste.

Also noticed Git::SVN::Ra wasn't in the compile test. It is now.

Signed-off-by: Eric Wong <normalperson@yhbt.net>

Prepare Git::SVN::Log for extraction from git-svn.Michael G. Schwern Fri, 27 Jul 2012 00:26:00 +0000 (17:26 -0700)

Prepare Git::SVN::Log for extraction from git-svn.

* Load Git command functions itself.

* Can't access the git-svn switch lexical any more, but its only used by
Git::SVN::Log so turn it into a Git::SVN::Log global.

* Load Git::SVN as needed. No need to load it always, its only used twice.

* Moved a state variable to the routine it's used for. (Drive by refactoring)

Signed-off-by: Eric Wong <normalperson@yhbt.net>

Move initialization of Git::SVN variables into Git... Michael G. Schwern Thu, 26 Jul 2012 23:22:25 +0000 (16:22 -0700)

Move initialization of Git::SVN variables into Git::SVN.

Also it can compile on its own now, yay!

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Eric Wong <normalperson@yhbt.net>

Extract Git::SVN from git-svn into its own .pm file.Michael G. Schwern Thu, 26 Jul 2012 23:22:24 +0000 (16:22 -0700)

Extract Git::SVN from git-svn into its own .pm file.

Except for adding the 1; at the end, this is a straight copy & paste.

Tests still pass, but its doubtful Git::SVN will compile on its own
without git-svn being loaded. Next commit will fix that.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Eric Wong <normalperson@yhbt.net>

Prepare Git::SVN for extraction into its own file.Michael G. Schwern Thu, 26 Jul 2012 23:22:23 +0000 (16:22 -0700)

Prepare Git::SVN for extraction into its own file.

This means it should be able to load without git-svn being loaded.

* Load Git.pm on its own and all the needed command functions.

* It needs to grab at a git-svn lexical $_prefix representing the --prefix
option. Provide opt_prefix() for that. This is a refactoring artifact.
The prefix should really be passed into Git::SVN->new.

* Unqualify unnecessarily fully qualified globals like
$Git::SVN::default_repo_id.

* Lexically isolate the class just to make sure nothing is leaking out.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Eric Wong <normalperson@yhbt.net>

Extract some utilities from git-svn to allow extracting... Michael G. Schwern Thu, 26 Jul 2012 23:22:22 +0000 (16:22 -0700)

Extract some utilities from git-svn to allow extracting Git::SVN.

Put them in a new module called Git::SVN::Utils. Yeah, not terribly
original and it will be a dumping ground. But its better than having
them in the main git-svn program. At least they can be documented
and tested.

* fatal() is used by many classes.
* Change the $can_compress lexical into a function.

This should be enough to extract Git::SVN.

Signed-off-by: Michael G. Schwern <schwern@pobox.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Eric Wong <normalperson@yhbt.net>

perl: detect new files in MakeMaker buildsJunio C Hamano Fri, 27 Jul 2012 20:04:20 +0000 (20:04 +0000)

perl: detect new files in MakeMaker builds

While Makefile.PL now finds .pm files on its own, it does not
detect new files after it generates perl/perl.mak.

[ew: commit message, minor tweaks]

ref: http://mid.gmane.org/7vlii51xz4.fsf@alter.siamese.dyndns.org

Signed-off-by: Eric Wong <normalperson@yhbt.net>

The Makefile.PL will now find .pm files itself.Michael G. Schwern Wed, 25 Jul 2012 03:21:11 +0000 (20:21 -0700)

The Makefile.PL will now find .pm files itself.

It is no longer necessary to manually add new .pm files to the
Makefile.PL. This makes it easier to add modules.

It is still necessary to add them to the Makefile, but that extra work
should be removed at a future date.

Signed-off-by: Michael G Schwern <schwern@pobox.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Eric Wong <normalperson@yhbt.net>

Don't lose Error.pm if $@ gets clobbered.Michael G. Schwern Wed, 25 Jul 2012 03:21:10 +0000 (20:21 -0700)

Don't lose Error.pm if $@ gets clobbered.

In older Perls, sometimes $@ can become unset between the eval and
checking $@. Its safer to check the eval directly.

Signed-off-by: Michael G Schwern <schwern@pobox.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Eric Wong <normalperson@yhbt.net>

Quiet warning if Makefile.PL is run with -w and no... Michael G. Schwern Wed, 25 Jul 2012 03:21:09 +0000 (20:21 -0700)

Quiet warning if Makefile.PL is run with -w and no --localedir

Usually it isn't, but its nice if it can be run with warnings on.

Signed-off-by: Michael G Schwern <schwern@pobox.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Eric Wong <normalperson@yhbt.net>

test-lib: provide UTF8 behaviour as a prerequisiteMichael J Gruber Thu, 26 Jul 2012 13:39:56 +0000 (15:39 +0200)

test-lib: provide UTF8 behaviour as a prerequisite

UTF8 behaviour of the filesystem (conversion from nfd to nfc) plays a
role in several tests and is tested in several tests. Therefore, move
the test from t0050 into the test lib and use the prerequisite in t0050.

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

t0050: use the SYMLINKS test prereqMichael J Gruber Thu, 26 Jul 2012 13:39:55 +0000 (15:39 +0200)

t0050: use the SYMLINKS test prereq

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