gitweb.git
Merge branch 'th/git-diffall'Junio C Hamano Fri, 16 Mar 2012 04:54:42 +0000 (21:54 -0700)

Merge branch 'th/git-diffall'

* th/git-diffall:
contrib/diffall: fix cleanup trap on Windows
contrib/diffall: eliminate duplicate while loops
contrib/diffall: eliminate use of tar
contrib/diffall: create tmp dirs without mktemp
contrib/diffall: comment actual reason for 'cdup'

Merge branch 'th/doc-diff-submodule-option'Junio C Hamano Fri, 16 Mar 2012 04:54:30 +0000 (21:54 -0700)

Merge branch 'th/doc-diff-submodule-option'

* th/doc-diff-submodule-option:
Documentation/diff-options: reword description of --submodule option

Git 1.7.10-rc1 v1.7.10-rc1Junio C Hamano Wed, 14 Mar 2012 22:38:47 +0000 (15:38 -0700)

Git 1.7.10-rc1

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

contrib/diffall: fix cleanup trap on WindowsTim Henigan Wed, 14 Mar 2012 16:38:06 +0000 (12:38 -0400)

contrib/diffall: fix cleanup trap on Windows

Prior to this commit, the cleanup trap that removes the tmp dir
created by the script would fail on Windows. The error was silently
ignored by the script.

On Windows, a directory cannot be removed while it is the working
directory of the process (thanks to Johannes Sixt on the Git list
for this info [1]).

This commit eliminates the 'cd' into the tmp directory that caused
the error.

[1]: http://article.gmane.org/gmane.comp.version-control.git/193086

Signed-off-by: Tim Henigan <tim.henigan@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

contrib/diffall: eliminate duplicate while loopsTim Henigan Wed, 14 Mar 2012 16:38:05 +0000 (12:38 -0400)

contrib/diffall: eliminate duplicate while loops

There were 3 instances of a 'while read; do' that used identical logic
to populate '/tmp/right_dir'. This commit groups them into a single loop.

Signed-off-by: Tim Henigan <tim.henigan@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

contrib/diffall: eliminate use of tarTim Henigan Wed, 14 Mar 2012 16:38:04 +0000 (12:38 -0400)

contrib/diffall: eliminate use of tar

The 'tar' utility is not available on all platforms (some only support
'gnutar'). An earlier commit created a work-around for this problem,
but a better solution is to eliminate the use of 'tar' completely.

Signed-off-by: Tim Henigan <tim.henigan@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

contrib/diffall: create tmp dirs without mktempTim Henigan Wed, 14 Mar 2012 16:38:03 +0000 (12:38 -0400)

contrib/diffall: create tmp dirs without mktemp

mktemp is not available on all platforms. Instead of littering the code
with a work-around, this commit replaces mktemp with a one-line Perl
script.

Signed-off-by: Tim Henigan <tim.henigan@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

contrib/diffall: comment actual reason for 'cdup'Tim Henigan Wed, 14 Mar 2012 16:38:02 +0000 (12:38 -0400)

contrib/diffall: comment actual reason for 'cdup'

The comment from an earlier commit did not reflect the actual reason this
operation is needed.

Signed-off-by: Tim Henigan <tim.henigan@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation/diff-options: reword description of ... Tim Henigan Wed, 14 Mar 2012 17:00:55 +0000 (13:00 -0400)

Documentation/diff-options: reword description of --submodule option

The previous description was confusing. This rewrite makes it easier
to understand.

Signed-off-by: Tim Henigan <tim.henigan@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'jc/i18n-shell-script-gettext'Junio C Hamano Tue, 13 Mar 2012 19:36:28 +0000 (12:36 -0700)

Merge branch 'jc/i18n-shell-script-gettext'

The auto detection was testing if a fixed string that is known to be
non-empty is empty by mistake.

* jc/i18n-shell-script-gettext:
i18n: fix auto detection of gettext scheme for shell scripts

Merge branch 'jc/maint-undefined-i18n-observation-test'Junio C Hamano Tue, 13 Mar 2012 19:36:09 +0000 (12:36 -0700)

Merge branch 'jc/maint-undefined-i18n-observation-test'

It was unclear what a test in t0204 wanted to check; it turns out
that it was only to observe an undefined behaviour of the system,
and did not anticipate one kind of reasonable error behaviour.

* jc/maint-undefined-i18n-observation-test:
t0204: clarify the "observe undefined behaviour" test

Merge branch 'ms/maint-config-error-at-eol-linecount'Junio C Hamano Tue, 13 Mar 2012 19:35:53 +0000 (12:35 -0700)

Merge branch 'ms/maint-config-error-at-eol-linecount'

When "git config" diagnoses an error in a configuration file and
shows the line number for the offending line, it miscounted if the
error was at the end of line.

By Martin Stenberg
* ms/maint-config-error-at-eol-linecount:
config: report errors at the EOL with correct line number

Conflicts:
t/t1300-repo-config.sh

Merge branch 'ph/rerere-doc'Junio C Hamano Tue, 13 Mar 2012 19:35:22 +0000 (12:35 -0700)

Merge branch 'ph/rerere-doc'

By Phil Hord
* ph/rerere-doc:
rerere: Document 'rerere remaining'

am: officially deprecate -b/--binary optionJunio C Hamano Tue, 13 Mar 2012 18:38:27 +0000 (11:38 -0700)

am: officially deprecate -b/--binary option

We have had these options as harmless no-op for more than 3 years without
officially deprecating them. Let's announce the deprecation and start
warning against their use, but without failing the command just not yet,
so that we can later repurpose the option if we want to in the future.

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

Update draft release notes to 1.7.10 before -rc1Junio C Hamano Mon, 12 Mar 2012 22:59:06 +0000 (15:59 -0700)

Update draft release notes to 1.7.10 before -rc1

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

Merge branch 'az/verify-tag-use-gpg-config'Junio C Hamano Mon, 12 Mar 2012 22:55:53 +0000 (15:55 -0700)

Merge branch 'az/verify-tag-use-gpg-config'

"git tag -s" honored "gpg.program" configuration variable since
1.7.9, but "git tag -v" and "git verify-tag" didn't.

By Alex Zepeda
* az/verify-tag-use-gpg-config:
verify-tag: Parse GPG configuration options.

Sync with 1.7.9.4Junio C Hamano Mon, 12 Mar 2012 22:54:21 +0000 (15:54 -0700)

Sync with 1.7.9.4

Git 1.7.9.4 v1.7.9.4Junio C Hamano Mon, 12 Mar 2012 22:52:52 +0000 (15:52 -0700)

Git 1.7.9.4

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

Merge branch 'tr/maint-bundle-boundary' into maintJunio C Hamano Mon, 12 Mar 2012 22:46:53 +0000 (15:46 -0700)

Merge branch 'tr/maint-bundle-boundary' into maint

"git bundle" did not record boundary commits correctly when there
are many of them.

By Thomas Rast
* tr/maint-bundle-boundary:
bundle: keep around names passed to add_pending_object()
t5510: ensure we stay in the toplevel test dir
t5510: refactor bundle->pack conversion

Merge branch 'jc/maint-diff-patch-header' into maintJunio C Hamano Mon, 12 Mar 2012 22:46:32 +0000 (15:46 -0700)

Merge branch 'jc/maint-diff-patch-header' into maint

"git diff-index" and its friends at the plumbing level showed the
"diff --git" header and nothing else for a path whose cached stat
info is dirty without actual difference when asked to produce a
patch. This was a longstanding bug that we could have fixed long
time ago.

By Junio C Hamano
* jc/maint-diff-patch-header:
diff -p: squelch "diff --git" header for stat-dirty paths
t4011: illustrate "diff-index -p" on stat-dirty paths
t4011: modernise style

Merge branch 'jn/maint-do-not-match-with-unsanitized... Junio C Hamano Mon, 12 Mar 2012 22:45:57 +0000 (15:45 -0700)

Merge branch 'jn/maint-do-not-match-with-unsanitized-searchtext' into maint

"gitweb" did use quotemeta() to prepare search string when asked to
do a fixed-string project search, but did not use it by mistake and
used the user-supplied string instead.

By Jakub Narebski
* jn/maint-do-not-match-with-unsanitized-searchtext:
gitweb: Fix fixed string (non-regexp) project search

Merge branch 'jc/am-3-nonstandard-popt' into maintJunio C Hamano Mon, 12 Mar 2012 22:43:06 +0000 (15:43 -0700)

Merge branch 'jc/am-3-nonstandard-popt' into maint

The code to synthesize the fake ancestor tree used by 3-way merge
fallback in "git am" was not prepared to read a patch created with
a non-standard -p<num> value.

* jc/am-3-nonstandard-popt:
test: "am -3" can accept non-standard -p<num>
am -3: allow nonstandard -p<num> option

git-am: error out when seeing -b/--binaryThomas Rast Mon, 12 Mar 2012 21:47:19 +0000 (22:47 +0100)

git-am: error out when seeing -b/--binary

The --binary option to git-apply has been a no-op since 2b6eef9 (Make
apply --binary a no-op., 2006-09-06) and was deprecated in cb3a160
(git-am: ignore --binary option, 2008-08-09).

We could remove it outright, but let's be nice to people who still
have scripts saying 'git am -b' (if they exist) and tell them the
reason for the sudden failure.

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

i18n: fix auto detection of gettext scheme for shell... Junio C Hamano Mon, 12 Mar 2012 21:41:15 +0000 (14:41 -0700)

i18n: fix auto detection of gettext scheme for shell scripts

A new code added by ad17ea7 (add a Makefile switch to avoid gettext
translation in shell scripts, 2012-01-23) tried to optionally force
a gettext scheme to "fallthrough", but ended up forcing it to everybody.

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

config: report errors at the EOL with correct line... Martin Stenberg Fri, 9 Mar 2012 21:57:54 +0000 (22:57 +0100)

config: report errors at the EOL with correct line number

A section in a config file with a missing "]" reports the next line
as bad, same goes to a value with a missing end quote.

This happens because the error is not detected until the end of the
line, when line number is already increased. Fix this by decreasing
line number by one for these cases.

Signed-off-by: Martin Stenberg <martin@gnutiken.se>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge https://github.com/git-l10n/git-poJunio C Hamano Mon, 12 Mar 2012 16:03:20 +0000 (09:03 -0700)

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

Updates to localized messages for zn_CN and sv locales.

via Jiang Xin
* https://github.com/git-l10n/git-po:
l10n: Improve zh_CN translation for msg "not something we can merge"
l10n: Improve zh_CN trans for msg that cannot fast-forward
l10n: Update zh_CN translation for 1.7.10-rc0
Update Swedish translation (732t0f0u).
po/sv.po: add Swedish translation
l10n: Update git.pot (1 new message)
l10n: Update zh_CN translation for 1.7.9.2
l10n: Improve commit msg for zh_CN translation
l10n: Improve zh_CN translation for msg that make empty commit when amend.
l10n: Improve zh_CN translation for empty cherry-pick msg.
l10n: Improve zh_CN translation for msg about branch deletion deny
l10n: Improve zh_CN translation for lines insertion and deletion.

t0204: clarify the "observe undefined behaviour" testJunio C Hamano Wed, 7 Mar 2012 23:36:59 +0000 (15:36 -0800)

t0204: clarify the "observe undefined behaviour" test

This test asks for an impossible conversion to the system by
preparing an UTF-8 translation with characters that cannot be
expressed in ISO-8859-1, and then asking the message shown in
ISO-8859-1. Even though the behaviour against such a request is
undefined, it may be interesting to see what the system does, and
the purpose of this test is to see if there are platforms that
exhibit behaviour that we haven't seen.

The original recognized two known modes of behaviour:

- the key used to query the message catalog ("TEST: Old English
Runes"), saying "I cannot do that i18n".
- impossible characters replaced with ASCII "?", saying "I punt".

but they were treated totally differently. The test simply issued
an informational message "Your system punts on this one" for the
first error mode, while it diagnosed the latter as "Your system is
good; you pass!".

It turns out that Mac OS X exhibits a third mode of error behaviour,
to spew out the raw value stored in the message catalog. The test
diagnosed this behaviour as "broken", but it is merely trying to do
its best to respond to an impossible request by saying "I punt" in a
way that is slightly different from the second one.

Update the offending test to make it clear what is (and is not)
being tested, update the code structure so that newly discovered
error mode can easily be added to it later, and reword the message
that comes from a failing case to clarify that it is not the system
that is broken when it fails, but merely that the behaviour is not
something we have seen.

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

p4000: use -3000 when promising -3000Thomas Rast Fri, 9 Mar 2012 09:52:54 +0000 (10:52 +0100)

p4000: use -3000 when promising -3000

The 'log -3000 (baseline)' test accidentally still used -1000 from an
earlier version.

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

rerere: Document 'rerere remaining'Phil Hord Thu, 8 Mar 2012 21:08:50 +0000 (16:08 -0500)

rerere: Document 'rerere remaining'

This adds the 'remaining' command to the documentation of
'git rerere'. This command was added in ac49f5ca (Feb 16 2011;
Martin von Zweigbergk <martin.von.zweigbergk@gmail.com>) but
it was never documented.

Touch up the other rerere commands to reduce noise.

First noticed by Vincent van Ravesteijn.

Signed-off-by: Phil Hord <phil.hord@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

verify-tag: Parse GPG configuration options.Alex Zepeda Thu, 8 Mar 2012 20:07:20 +0000 (12:07 -0800)

verify-tag: Parse GPG configuration options.

Modify verify-tag to load relevant GPG variables from the git
configuratio file. This allows git tag -v to use an alternative
GPG binary in the same way that git tag -s does.

Signed-off-by: Alex Zepeda <alex@inferiorhumanorgans.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Update draft release notes to 1.7.10Junio C Hamano Thu, 8 Mar 2012 21:08:26 +0000 (13:08 -0800)

Update draft release notes to 1.7.10

Also apply typofixes people on the list helped spotting and
correcting.

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

Merge branch 'kb/maint-prune-rmdir-closedir'Junio C Hamano Thu, 8 Mar 2012 21:05:04 +0000 (13:05 -0800)

Merge branch 'kb/maint-prune-rmdir-closedir'

By Karsten Blees
* kb/maint-prune-rmdir-closedir:
fix deletion of .git/objects sub-directories in git-prune/repack

Merge branch 'jl/maint-submodule-relative'Junio C Hamano Thu, 8 Mar 2012 21:04:52 +0000 (13:04 -0800)

Merge branch 'jl/maint-submodule-relative'

By Jens Lehmann (3) and Johannes Sixt (1)
* jl/maint-submodule-relative:
submodules: fix ambiguous absolute paths under Windows
submodules: refactor computation of relative gitdir path
submodules: always use a relative path from gitdir to work tree
submodules: always use a relative path to gitdir

Merge branch 'jn/maint-do-not-match-with-unsanitized... Junio C Hamano Thu, 8 Mar 2012 21:04:49 +0000 (13:04 -0800)

Merge branch 'jn/maint-do-not-match-with-unsanitized-searchtext'

By Jakub Narebski
* jn/maint-do-not-match-with-unsanitized-searchtext:
gitweb: Fix fixed string (non-regexp) project search

Conflicts:
gitweb/gitweb.perl

Merge branch 'vr/branch-doc'Junio C Hamano Thu, 8 Mar 2012 21:04:44 +0000 (13:04 -0800)

Merge branch 'vr/branch-doc'

By Vincent van Ravesteijn
* vr/branch-doc:
Documentation/git-branch: add default for --contains
Documentation/git-branch: fix a typo
Documentation/git-branch: cleanups

perf: export some important test-lib variablesThomas Rast Thu, 8 Mar 2012 08:54:55 +0000 (09:54 +0100)

perf: export some important test-lib variables

The only bug right now is that $GIT_TEST_CMP is needed for test_cmp to
work.

However, we also export the three most important paths for tests:

TEST_DIRECTORY
TRASH_DIRECTORY
GIT_BUILD_DIR

Since they are available within test_expect_success, a future test
writer may expect them to also be defined in test_perf.

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

perf: load test-lib-functions from the correct directoryThomas Rast Thu, 8 Mar 2012 08:54:54 +0000 (09:54 +0100)

perf: load test-lib-functions from the correct directory

Loading it in the subshells still referred to $TEST_DIRECTORY/..,
which was only correct in preliminary versions of perf-lib.sh

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

l10n: Improve zh_CN translation for msg "not something... Thynson Sat, 3 Mar 2012 01:03:27 +0000 (09:03 +0800)

l10n: Improve zh_CN translation for msg "not something we can merge"

Signed-off-by: Thynson <lanxingcan@gmail.com>

l10n: Improve zh_CN trans for msg that cannot fast... Thynson Sat, 3 Mar 2012 00:34:28 +0000 (08:34 +0800)

l10n: Improve zh_CN trans for msg that cannot fast-forward

Signed-off-by: Thynson <lanxingcan@gmail.com>

l10n: Update zh_CN translation for 1.7.10-rc0Jiang Xin Thu, 8 Mar 2012 04:06:53 +0000 (12:06 +0800)

l10n: Update zh_CN translation for 1.7.10-rc0

Translate 1 new message from Git 1.7.10-rc0.

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

Update Swedish translation (732t0f0u).Peter Krefting Thu, 8 Mar 2012 09:56:37 +0000 (10:56 +0100)

Update Swedish translation (732t0f0u).

This update includes a replay of some review fixes from the initial
translation run in 2010, which I cannot find having committed anywhere.

Add myself to the po/TEAMS file as well.

Signed-off-by: Peter Krefting <peter@softwolves.pp.se>

po/sv.po: add Swedish translationPeter Krefting Sun, 12 Sep 2010 20:10:21 +0000 (21:10 +0100)

po/sv.po: add Swedish translation

Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
(cherry picked from commit 54ce07007c7988268d43619c580e81fbca09d37b)

l10n: Update git.pot (1 new message)Jiang Xin Thu, 8 Mar 2012 02:20:20 +0000 (10:20 +0800)

l10n: Update git.pot (1 new message)

Update file 'po/git.pot' to v1.7.10-rc0:

* Add 1 new l10n string in the new generated "git.pot" file at line:
191

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

Merge v1.7.10-rc0 for git l10n updateJiang Xin Thu, 8 Mar 2012 02:17:21 +0000 (10:17 +0800)

Merge v1.7.10-rc0 for git l10n update

Git 1.7.10-rc0 v1.7.10-rc0Junio C Hamano Wed, 7 Mar 2012 20:51:55 +0000 (12:51 -0800)

Git 1.7.10-rc0

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

Merge branch 'jc/pickaxe-ignore-case'Junio C Hamano Wed, 7 Mar 2012 20:12:59 +0000 (12:12 -0800)

Merge branch 'jc/pickaxe-ignore-case'

By Junio C Hamano (2) and Ramsay Jones (1)
* jc/pickaxe-ignore-case:
ctype.c: Fix a sparse warning
pickaxe: allow -i to search in patch case-insensitively
grep: use static trans-case table

fix deletion of .git/objects sub-directories in git... Karsten Blees Tue, 6 Mar 2012 09:18:41 +0000 (10:18 +0100)

fix deletion of .git/objects sub-directories in git-prune/repack

Both git-prune and git-repack (and thus, git-gc) try to rmdir while
holding a DIR* handle on the directory. This can leave dangling
empty directories in the .git/objects on platforms where directory
cannot be removed while they are open.

First call closedir() and then rmdir(); that is more logical ordering.

Reported-by: John Chen <john0312@gmail.com>
Reported-by: Stefan Naewe <stefan.naewe@gmail.com>
Signed-off-by: Karsten Blees <blees@dcon.de>
Improved-and-Acked-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'jh/threadable-symlink-check'Junio C Hamano Tue, 6 Mar 2012 22:53:07 +0000 (14:53 -0800)

Merge branch 'jh/threadable-symlink-check'

By Jared Hance
* jh/threadable-symlink-check:
Add threaded versions of functions in symlinks.c.

Merge branch 'jc/maint-diff-patch-header'Junio C Hamano Tue, 6 Mar 2012 22:53:07 +0000 (14:53 -0800)

Merge branch 'jc/maint-diff-patch-header'

By Junio C Hamano
* jc/maint-diff-patch-header:
diff -p: squelch "diff --git" header for stat-dirty paths
t4011: illustrate "diff-index -p" on stat-dirty paths
t4011: modernise style

Merge branch 'th/mergetools-deltawalker'Junio C Hamano Tue, 6 Mar 2012 22:53:07 +0000 (14:53 -0800)

Merge branch 'th/mergetools-deltawalker'

By Tim Henigan
* th/mergetools-deltawalker:
mergetools: add a plug-in to support DeltaWalker

Merge branch 'cn/pull-rebase-message'Junio C Hamano Tue, 6 Mar 2012 22:53:06 +0000 (14:53 -0800)

Merge branch 'cn/pull-rebase-message'

By Carlos Martín Nieto
* cn/pull-rebase-message:
Make git-{pull,rebase} message without tracking information friendlier

Merge branch 'sl/modern-t0000'Junio C Hamano Tue, 6 Mar 2012 22:53:06 +0000 (14:53 -0800)

Merge branch 'sl/modern-t0000'

By Stefano Lattarini
* sl/modern-t0000:
t0000: modernise style

Merge branch 'nl/http-proxy-auth'Junio C Hamano Tue, 6 Mar 2012 22:53:06 +0000 (14:53 -0800)

Merge branch 'nl/http-proxy-auth'

By Nelson Benitez Leon
* nl/http-proxy-auth:
http: support proxies that require authentication

Merge branch 'tr/maint-bundle-boundary'Junio C Hamano Tue, 6 Mar 2012 22:53:06 +0000 (14:53 -0800)

Merge branch 'tr/maint-bundle-boundary'

By Thomas Rast
* tr/maint-bundle-boundary:
bundle: keep around names passed to add_pending_object()
t5510: ensure we stay in the toplevel test dir
t5510: refactor bundle->pack conversion

Merge branch 'zj/diff-stat-dyncol'Junio C Hamano Tue, 6 Mar 2012 22:53:06 +0000 (14:53 -0800)

Merge branch 'zj/diff-stat-dyncol'

By Zbigniew Jędrzejewski-Szmek (8) and Junio C Hamano (1)
* zj/diff-stat-dyncol:
: This breaks tests. Perhaps it is not worth using the decimal-width stuff
: for this series, at least initially.
diff --stat: add config option to limit graph width
diff --stat: enable limiting of the graph part
diff --stat: add a test for output with COLUMNS=40
diff --stat: use a maximum of 5/8 for the filename part
merge --stat: use the full terminal width
log --stat: use the full terminal width
show --stat: use the full terminal width
diff --stat: use the full terminal width
diff --stat: tests for long filenames and big change counts

Merge branch 'maint'Junio C Hamano Tue, 6 Mar 2012 22:53:02 +0000 (14:53 -0800)

Merge branch 'maint'

By Thomas Rast
* maint:
t5704: fix nonportable sed/grep usages
Document the --histogram diff option

gitweb: Fix fixed string (non-regexp) project searchJakub Narebski Fri, 2 Mar 2012 22:34:24 +0000 (23:34 +0100)

gitweb: Fix fixed string (non-regexp) project search

Use $search_regexp, where regex metacharacters are quoted, for
searching projects list, rather than $searchtext, which contains
original search term.

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

t5704: fix nonportable sed/grep usagesThomas Rast Tue, 6 Mar 2012 14:50:37 +0000 (15:50 +0100)

t5704: fix nonportable sed/grep usages

OS X's sed and grep would complain with (respectively)

sed: 1: "/^-/{p;q}": extra characters at the end of q command
grep: Regular expression too big

For sed, use an explicit ; to terminate the q command.

For grep, spell the "40 hex digits" explicitly in the regex, which
should be safe as other tests already use this and we haven't got
breakage reports on OS X about them.

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

Merge branch 'maint-1.7.8' into maintJunio C Hamano Tue, 6 Mar 2012 20:05:09 +0000 (12:05 -0800)

Merge branch 'maint-1.7.8' into maint

By Thomas Rast
* maint-1.7.8:
Document the --histogram diff option

Merge branch 'maint-1.7.7' into maint-1.7.8Junio C Hamano Tue, 6 Mar 2012 20:04:48 +0000 (12:04 -0800)

Merge branch 'maint-1.7.7' into maint-1.7.8

By Thomas Rast
* maint-1.7.7:
Document the --histogram diff option

Document the --histogram diff optionThomas Rast Tue, 6 Mar 2012 13:15:02 +0000 (14:15 +0100)

Document the --histogram diff option

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

perf: compare diff algorithmsThomas Rast Tue, 6 Mar 2012 13:15:01 +0000 (14:15 +0100)

perf: compare diff algorithms

8c912ee (teach --histogram to diff, 2011-07-12) claimed histogram diff
was faster than both Myers and patience.

We have since incorporated a performance testing framework, so add a
test that compares the various diff tasks performed in a real 'log -p'
workload. This does indeed show that histogram diff slightly beats
Myers, while patience is much slower than the others.

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

Documentation/git-branch: add default for --containsVincent van Ravesteijn Tue, 6 Mar 2012 09:32:45 +0000 (10:32 +0100)

Documentation/git-branch: add default for --contains

Indicate that the commit parameter of --contains defaults to HEAD.

Signed-off-by: Vincent van Ravesteijn <vfr@lyx.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation/git-branch: fix a typoVincent van Ravesteijn Tue, 6 Mar 2012 09:32:44 +0000 (10:32 +0100)

Documentation/git-branch: fix a typo

Fix a typo by replacing 'tag' with 'branch'.

Signed-off-by: Vincent van Ravesteijn <vfr@lyx.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation/git-branch: cleanupsVincent van Ravesteijn Tue, 6 Mar 2012 09:32:43 +0000 (10:32 +0100)

Documentation/git-branch: cleanups

Most of the exact option strings to be typed by end users are
already set in typewriter font by using `--option`, but a few places
used '--option' to call for italics or with no quoting. Uniformly
use `--option`.

Also add a full-stop after a sentence that missed one.

Signed-off-by: Vincent van Ravesteijn <vfr@lyx.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Sync with 1.7.9.3Junio C Hamano Mon, 5 Mar 2012 22:29:50 +0000 (14:29 -0800)

Sync with 1.7.9.3

Git 1.7.9.3 v1.7.9.3Junio C Hamano Mon, 5 Mar 2012 22:29:07 +0000 (14:29 -0800)

Git 1.7.9.3

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

Merge branch 'jc/doc-merge-options' into maintJunio C Hamano Mon, 5 Mar 2012 22:28:14 +0000 (14:28 -0800)

Merge branch 'jc/doc-merge-options' into maint

* jc/doc-merge-options:
Documentation/merge-options.txt: group "ff" related options together

Merge branch 'cn/maint-rev-list-doc' into maintJunio C Hamano Mon, 5 Mar 2012 22:27:36 +0000 (14:27 -0800)

Merge branch 'cn/maint-rev-list-doc' into maint

* cn/maint-rev-list-doc:
Documentation: use {asterisk} in rev-list-options.txt when needed

fsck doc: a minor typofixJunio C Hamano Mon, 5 Mar 2012 19:32:08 +0000 (11:32 -0800)

fsck doc: a minor typofix

Reword the misspelled "squelch" noticed by Hermann Gaustere to say
"omit", which would sit better anyway.

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

fast-import: zero all of 'struct tag' to silence valgrindThomas Rast Mon, 5 Mar 2012 13:48:49 +0000 (14:48 +0100)

fast-import: zero all of 'struct tag' to silence valgrind

When running t9300, valgrind (correctly) complains about an
uninitialized value in write_crash_report:

==2971== Use of uninitialised value of size 8
==2971== at 0x4164F4: sha1_to_hex (hex.c:70)
==2971== by 0x4073E4: die_nicely (fast-import.c:468)
==2971== by 0x43284C: die (usage.c:86)
==2971== by 0x40420D: main (fast-import.c:2731)
==2971== Uninitialised value was created by a heap allocation
==2971== at 0x4C29B3D: malloc (vg_replace_malloc.c:263)
==2971== by 0x433645: xmalloc (wrapper.c:35)
==2971== by 0x405DF5: pool_alloc (fast-import.c:619)
==2971== by 0x407755: pool_calloc.constprop.14 (fast-import.c:634)
==2971== by 0x403F33: main (fast-import.c:3324)

Fix this by zeroing all of the 'struct tag'. We would only need to
zero out the 'sha1' field, but this way seems more future-proof.

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

mergetools: add a plug-in to support DeltaWalkerTim Henigan Mon, 5 Mar 2012 14:28:07 +0000 (09:28 -0500)

mergetools: add a plug-in to support DeltaWalker

DeltaWalker is a non-free tool popular among some users. Add a
plug-in to support it from difftool and mergetool.

Note that the $(pwd)/ in front of $MERGED should not be necessary.
However without it, DeltaWalker crashes with a JRE exception.

Signed-off-by: Tim Henigan <tim.henigan@gmail.com>
Helped-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Update draft release notes to 1.7.10Junio C Hamano Mon, 5 Mar 2012 07:38:02 +0000 (23:38 -0800)

Update draft release notes to 1.7.10

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

Merge branch 'jk/symbolic-ref-short'Junio C Hamano Mon, 5 Mar 2012 07:35:23 +0000 (23:35 -0800)

Merge branch 'jk/symbolic-ref-short'

* jk/symbolic-ref-short:
symbolic-ref --short: abbreviate the output unambiguously

Merge branch 'jn/gitweb-hilite-regions'Junio C Hamano Mon, 5 Mar 2012 07:35:18 +0000 (23:35 -0800)

Merge branch 'jn/gitweb-hilite-regions'

* jn/gitweb-hilite-regions:
gitweb: Highlight matched part of shortened project description
gitweb: Highlight matched part of project description when searching projects
gitweb: Highlight matched part of project name when searching projects
gitweb: Introduce esc_html_match_hl and esc_html_hl_regions

Merge branch 'jc/am-3-nonstandard-popt'Junio C Hamano Mon, 5 Mar 2012 07:35:12 +0000 (23:35 -0800)

Merge branch 'jc/am-3-nonstandard-popt'

* jc/am-3-nonstandard-popt:
test: "am -3" can accept non-standard -p<num>
am -3: allow nonstandard -p<num> option

Make git-{pull,rebase} message without tracking informa... Carlos Martín Nieto Sun, 4 Mar 2012 04:41:26 +0000 (05:41 +0100)

Make git-{pull,rebase} message without tracking information friendlier

The current message is too long and at too low a level for anybody
to understand it if they don't know about the configuration format
already.

The text about setting up a remote is superfluous and doesn't help
understand or recover from the error that has happened. Show the
usage more prominently and explain how to set up the tracking
information. If there is only one remote, that name is used instead
of the generic <remote>.

Also simplify the message we print on detached HEAD to remove
unnecessary information which is better left for the documentation.

Signed-off-by: Carlos Martín Nieto <cmn@elego.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'maint'Junio C Hamano Mon, 5 Mar 2012 06:21:52 +0000 (22:21 -0800)

Merge branch 'maint'

* maint:
Update draft release notes to 1.7.9.3 for the last time
http.proxy: also mention https_proxy and all_proxy
t0300: work around bug in dash 0.5.6
t5512 (ls-remote): modernize style
tests: fix spurious error when run directly with Solaris /usr/xpg4/bin/sh

Update draft release notes to 1.7.9.3 for the last... Junio C Hamano Mon, 5 Mar 2012 06:21:30 +0000 (22:21 -0800)

Update draft release notes to 1.7.9.3 for the last time

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

Merge branch 'cn/maint-branch-with-bad' into maintJunio C Hamano Mon, 5 Mar 2012 06:17:52 +0000 (22:17 -0800)

Merge branch 'cn/maint-branch-with-bad' into maint

* cn/maint-branch-with-bad:
branch: don't assume the merge filter ref exists

Conflicts:
t/t3200-branch.sh

Merge branch 'jn/maint-gitweb-invalid-regexp' into... Junio C Hamano Mon, 5 Mar 2012 06:17:47 +0000 (22:17 -0800)

Merge branch 'jn/maint-gitweb-invalid-regexp' into maint

* jn/maint-gitweb-invalid-regexp:
gitweb: Handle invalid regexp in regexp search

Merge branch 'nd/maint-verify-objects' into maintJunio C Hamano Mon, 5 Mar 2012 06:17:41 +0000 (22:17 -0800)

Merge branch 'nd/maint-verify-objects' into maint

* nd/maint-verify-objects:
rev-list: fix --verify-objects --quiet becoming --objects
rev-list: remove BISECT_SHOW_TRIED flag

Merge branch 'jk/maint-avoid-streaming-filtered-content... Junio C Hamano Mon, 5 Mar 2012 06:16:40 +0000 (22:16 -0800)

Merge branch 'jk/maint-avoid-streaming-filtered-contents' into maint

* jk/maint-avoid-streaming-filtered-contents:
do not stream large files to pack when filters are in use
teach dry-run convert_to_git not to require a src buffer
teach convert_to_git a "dry run" mode

Merge branch 'jb/filter-ignore-sigpipe' into maintJunio C Hamano Mon, 5 Mar 2012 06:16:35 +0000 (22:16 -0800)

Merge branch 'jb/filter-ignore-sigpipe' into maint

* jb/filter-ignore-sigpipe:
Ignore SIGPIPE when running a filter driver

Merge branch 'sp/smart-http-failure-to-push' into maintJunio C Hamano Mon, 5 Mar 2012 06:16:33 +0000 (22:16 -0800)

Merge branch 'sp/smart-http-failure-to-push' into maint

* sp/smart-http-failure-to-push:
: Mask SIGPIPE on the command channel going to a transport helper
disconnect from remote helpers more gently

Conflicts:
transport-helper.c

Merge branch 'tr/maint-bundle-long-subject' into maintJunio C Hamano Mon, 5 Mar 2012 06:16:30 +0000 (22:16 -0800)

Merge branch 'tr/maint-bundle-long-subject' into maint

* tr/maint-bundle-long-subject:
t5704: match tests to modern style
strbuf: improve strbuf_get*line documentation
bundle: use a strbuf to scan the log for boundary commits
bundle: put strbuf_readline_fd in strbuf.c with adjustments

l10n: Update zh_CN translation for 1.7.9.2Jiang Xin Mon, 5 Mar 2012 05:16:27 +0000 (13:16 +0800)

l10n: Update zh_CN translation for 1.7.9.2

In order to show detailed dirty status of submodules in long format,
git stripped the last ", " from the concatenate sting by a two-byte
backstep. So for keeping the two-byte backstep valid, won't touch the
end ", " for translation.

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

submodules: fix ambiguous absolute paths under WindowsJohannes Sixt Sun, 4 Mar 2012 21:16:19 +0000 (22:16 +0100)

submodules: fix ambiguous absolute paths under Windows

Under Windows the "git rev-parse --git-dir" and "pwd" commands may return
either drive-letter-colon or POSIX style paths. This makes module_clone()
behave badly because it expects absolute paths to always start with a '/'.

Fix that by always converting the "c:/" notation into "/c/" when computing
the relative paths from gitdir to the submodule work tree and back.

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

submodules: refactor computation of relative gitdir... Jens Lehmann Sun, 4 Mar 2012 21:15:36 +0000 (22:15 +0100)

submodules: refactor computation of relative gitdir path

In module_clone() the rel_gitdir variable was computed differently when
"git rev-parse --git-dir" returned a relative path than when it returned
an absolute path. This is not optimal, as different code paths are used
depending on the return value of that command.

Fix that by reusing the differing path components computed for setting the
core.worktree config setting, which leaves a single code path for setting
both instead of having three and makes the code much shorter.

This also fixes the bug that in the computation of how many directories
have to be traversed up to hit the root directory of the submodule the
name of the submodule was used where the path should have been used. This
lead to problems after renaming submodules into another directory level.

Even though the "(cd $somewhere && pwd)" approach breaks the flexibility
of symlinks, that is no issue here as we have to have one relative path
pointing from the work tree to the gitdir and another pointing back, which
will never work anyway when a symlink along one of those paths is changed
because the directory it points to was moved.

Also add a test moving a submodule into a deeper directory to catch any
future breakage here and to document what has to be done when a submodule
needs to be moved until git mv learns to do that. Simply moving it to the
new location doesn't work, as the core.worktree and possibly the gitfile
setting too will be wrong. So it has to be removed from filesystem and
index, then the new location has to be added into the index and the
.gitmodules file has to be updated. After that a git submodule update will
check out the submodule at the new location.

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

submodules: always use a relative path from gitdir... Jens Lehmann Sun, 4 Mar 2012 21:15:08 +0000 (22:15 +0100)

submodules: always use a relative path from gitdir to work tree

Since recently a submodule with name <name> has its git directory in the
.git/modules/<name> directory of the superproject while the work tree
contains a gitfile pointing there. To make that work the git directory has
the core.worktree configuration set in its config file to point back to
the work tree.

That core.worktree is an absolute path set by the initial clone of the
submodule. A relative path is preferable here because it allows the
superproject to be moved around without invalidating that setting, so
compute and set that relative path after cloning or reactivating the
submodule.

This also fixes a bug when moving a submodule around inside the
superproject, as the current code forgot to update the setting to the new
submodule work tree location.

Enhance t7400 to ensure that future versions won't re-add absolute paths
by accident and that moving a superproject won't break submodules.

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

submodules: always use a relative path to gitdirJens Lehmann Sun, 4 Mar 2012 21:14:30 +0000 (22:14 +0100)

submodules: always use a relative path to gitdir

Since recently a submodule with name <name> has its git directory in the
.git/modules/<name> directory of the superproject while the work tree
contains a gitfile pointing there. When the submodule git directory needs
to be cloned because it is not found in .git/modules/<name> the clone
command will write an absolute path into the gitfile. When no clone is
necessary the git directory will be reactivated by the git-submodule.sh
script by writing a relative path into the gitfile.

This is inconsistent, as the behavior depends on the submodule having been
cloned before into the .git/modules of the superproject. A relative path
is preferable here because it allows the superproject to be moved around
without invalidating the gitfile. We do that by always writing the
relative path into the gitfile, which overwrites the absolute path the
clone command may have written there.

This is only the first step to make superprojects movable again like they
were before the separate-git-dir approach was introduced. The second step
is to use a relative path in core.worktree too.

Enhance t7400 to ensure that future versions won't re-add absolute paths
by accident.

While at it also replace an if/else construct evaluating the presence
of the 'reference' option with a single line of bash code.

Reported-by: Antony Male <antony.male@gmail.com>
Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

ctype.c: Fix a sparse warningRamsay Jones Sun, 4 Mar 2012 19:10:57 +0000 (19:10 +0000)

ctype.c: Fix a sparse warning

In particular, sparse complains as follows:

SP ctype.c
ctype.c:30:12: warning: symbol 'tolower_trans_tbl' was not declared.\
Should it be static?

An appropriate extern declaration for the 'tolower_trans_tbl' symbol
is included in the "cache.h" header file. In order to suppress the
warning, therefore, we could replace the "git-compat-util.h" header
inclusion with "cache.h", since "cache.h" includes "git-compat-util.h"
in turn. Here, however, we choose to move the extern declaration for
'tolower_trans_tbl' into "git-compat-util.h", alongside the other
extern declaration from ctype.c for 'sane_ctype'.

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

http.proxy: also mention https_proxy and all_proxyClemens Buchacher Sun, 4 Mar 2012 16:50:43 +0000 (17:50 +0100)

http.proxy: also mention https_proxy and all_proxy

The current wording of the http.proxy documentation suggests that
http_proxy is somehow equivalent to http.proxy. However, while
http.proxy (by the means of curl's CURLOPT_PROXY option) overrides the
proxy for both HTTP and HTTPS protocols, the http_proxy environment
variable is used only for HTTP. But since the docs mention only
http_proxy, a user might expect it to apply to all HTTP-like protocols.

Avoid any such misunderstanding by explicitly mentioning https_proxy and
all_proxy as well.

Also replace linkgit:curl[1] with a literal 'curl(1)', because the
former gets translated to a dead link in the HTML pages.

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

parse-options: typo check for unknown switchesRené Scharfe Sat, 3 Mar 2012 11:00:29 +0000 (12:00 +0100)

parse-options: typo check for unknown switches

The user specifies a long option but forgets to type the second
leading dash, we currently detect and report that fact if its first
letter is a valid short option. This is done for safety, to avoid
ambiguity between short options (and their arguments) and a long
option with a missing dash.

This diagnostic message is also helpful for long options whose first
letter is not a valid short option, however. Print it in that case,
too, as a courtesy.

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

Add threaded versions of functions in symlinks.c.Jared Hance Sat, 3 Mar 2012 02:31:15 +0000 (21:31 -0500)

Add threaded versions of functions in symlinks.c.

check_leading_path() and has_dirs_only_path() both always use the default
cache, which could be a caveat for adding parallelism (which is a concern
and even a GSoC proposal).

Reimplement these two in terms of new threaded_check_leading_path() and
threaded_has_dirs_only_path() that take their own copy of the cache.

Signed-off-by: Jared Hance <jaredhance@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t0300: work around bug in dash 0.5.6Michael J Gruber Sat, 3 Mar 2012 00:37:35 +0000 (19:37 -0500)

t0300: work around bug in dash 0.5.6

The construct 'while IFS== read' makes dash 0.5.6 execute
read without changing IFS, which results in test breakages
all over the place in t0300. Neither dash 0.5.5.1 and older
nor dash 0.5.7 and newer are affected: The problem was
introduded resp. fixed by the commits

55c46b7 ([BUILTIN] Honor tab as IFS whitespace when
splitting fields in readcmd, 2009-08-11)

1d806ac ([VAR] Do not poplocalvars prematurely on regular
utilities, 2010-05-27)

in http://git.kernel.org/?p=utils/dash/dash.git

Putting 'IFS==' before that line makes all versions of dash
work.

This looks like a dash bug, not a misinterpretation of the
standard. However, it's worth working around for two
reasons. One, this version of dash was released in Fedora
14-16, so the bug is found in the wild. And two, at least
one other shell, Solaris /bin/sh, choked on this by
persisting IFS after the read invocation. That is not a
shell we usually care about, and I think this use of IFS is
acceptable by POSIX (which allows other behavior near
"special builtins", but "read" is not one of those). But it
seems that this may be a subtle, not-well-tested case for
some shells. Given that the workaround is so simple, it's
worth just being defensive.

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

t5512 (ls-remote): modernize styleTom Grennan Sat, 3 Mar 2012 02:15:34 +0000 (18:15 -0800)

t5512 (ls-remote): modernize style

Prepare expected output inside test_expect_success that uses it.
Also remove excess blank lines.

Signed-off-by: Tom Grennan <tmgrennan@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

gitweb: Fix passing parameters to git_project_search_formJakub Narebski Fri, 2 Mar 2012 22:50:01 +0000 (23:50 +0100)

gitweb: Fix passing parameters to git_project_search_form

The git_project_search_form() subroutine, introduced in a1e1b2d
(gitweb: improve usability of projects search form, 2012-01-31) didn't
get its arguments from caller correctly. Gitweb worked correctly
thanks to sticky-ness of form fields in CGI.pm... but it make UTF-8
fix for project search not working.

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

t0000: modernise styleStefano Lattarini Fri, 2 Mar 2012 09:08:28 +0000 (10:08 +0100)

t0000: modernise style

Match the style to more modern test scripts, namely:

- Prefer tabs for indentation.

- The first line of each test has prereq, title and opening sq for the
script body.

- Move cleanup or initialization of data used by a test inside the test
itself.

- Put a newline before the closing sq for each test.

- Don't conclude the test descriptions with a full stop.

- Prefer 'test_line_count = COUNT FILE' over 'test $(wc -l <FILE) = COUNT'

- Prefer 'test_line_count = 0 FILE' over 'cmp -s /dev/null FILE'

- Use '<<-EOF' style for here documents, so that they can be indented
as well. Bot don't do that in case the resulting lines would be too
long. Also when there is no $variable_substitution in the body of a
here document, quote \EOF.

- Don't redirect the output of commands to /dev/null unconditionally,
the git testing framework should already take care of handling test
verbosity transparently and uniformly.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

tests: fix spurious error when run directly with Solari... Stefano Lattarini Fri, 2 Mar 2012 18:48:36 +0000 (19:48 +0100)

tests: fix spurious error when run directly with Solaris /usr/xpg4/bin/sh

If any test script is run directly with Solaris 10 /usr/xpg4/bin/sh or
/bin/ksh, it fails spuriously with a message like:

t0000-basic.sh[31]: unset: bad argument count

This happens because those shells bail out when encountering a call to
"unset" with no arguments, and such unset call could take place in
'test-lib.sh'. Fix that issue, and add a proper comment to ensure we
don't regress in this respect.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>