gitweb.git
t5541: become resilient to GETTEXT_POISONVasco Almeida Thu, 30 Jun 2016 16:49:18 +0000 (16:49 +0000)

t5541: become resilient to GETTEXT_POISON

Use test_i18n* functions for testing text already marked for
translation.

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

i18n: branch: mark comment when editing branch descript... Vasco Almeida Fri, 17 Jun 2016 21:54:15 +0000 (21:54 +0000)

i18n: branch: mark comment when editing branch description for translation

When one issues git branch --edit-description branch_name, a edit with
that message commented out is opened. Mark that message for translation
in to order to be localized.

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

i18n: unmark die messages for translationVasco Almeida Fri, 17 Jun 2016 21:54:14 +0000 (21:54 +0000)

i18n: unmark die messages for translation

These messages are relevant for the programmer only, not for the end
user. Thus, they can be unmarked for translation, saving translator
some work.

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

i18n: submodule: escape shell variables inside eval_gettextVasco Almeida Fri, 17 Jun 2016 21:54:13 +0000 (21:54 +0000)

i18n: submodule: escape shell variables inside eval_gettext

According to the gettext manual [1], references to shell variables inside
eval_gettext call must be escaped so that eval_gettext receives the
translatable string before the variable values are substituted into it.

[1] http://www.gnu.org/software/gettext/manual/html_node/Preparing-Shell-Scripts.html

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

i18n: submodule: join strings marked for translationVasco Almeida Fri, 17 Jun 2016 21:54:12 +0000 (21:54 +0000)

i18n: submodule: join strings marked for translation

Join strings marked for translation since that would facilitate and
improve translations result.

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

i18n: init-db: join message piecesVasco Almeida Fri, 17 Jun 2016 21:54:11 +0000 (21:54 +0000)

i18n: init-db: join message pieces

Join message displayed during repository initialization in one entire
sentence. That would improve translations since it's easier translate
an entire sentence than translating each piece.

Update Icelandic translation to reflect the changes. The Icelandic
translation of these messages is used with test
t0204-gettext-reencode-sanity.sh and not updating the translation would
fail the test.

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

i18n: remote: allow translations to reorder messageVasco Almeida Fri, 17 Jun 2016 20:21:22 +0000 (20:21 +0000)

i18n: remote: allow translations to reorder message

Before this patch, translations couldn't place the branch name
where it was better fit in the message "and with remote <branch_name>".
Allow translations that, instead of forcing the branch name to display
right of the message.

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

i18n: remote: mark URL fallback text for translationVasco Almeida Fri, 17 Jun 2016 20:21:21 +0000 (20:21 +0000)

i18n: remote: mark URL fallback text for translation

Marks fallback text for translation that may be displayed in git remote
show output.

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

i18n: standardise messagesVasco Almeida Fri, 17 Jun 2016 20:21:20 +0000 (20:21 +0000)

i18n: standardise messages

Standardise messages in order to save translators some work.

Nuances fixed in this commit:
"failed to read %s"
"read of %s failed"

"detach the HEAD at named commit"
"detach HEAD at named commit"

"removing '%s' failed"
"failed to remove '%s'"

"index file corrupt"
"corrupt index file"

"failed to read %s"
"read of %s failed"

"detach the HEAD at named commit"
"detach HEAD at named commit"

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

i18n: sequencer: add period to error messageVasco Almeida Fri, 17 Jun 2016 20:21:19 +0000 (20:21 +0000)

i18n: sequencer: add period to error message

Add a period to error message so it matches others instances in
sequencer.c. Now translator would have to translate such message only
once.

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

i18n: merge: change command option help to lowercaseVasco Almeida Fri, 17 Jun 2016 20:21:18 +0000 (20:21 +0000)

i18n: merge: change command option help to lowercase

Change command option description to lowercase, matching pull
counterpart option. Translators would have to translate such message
only once.

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

i18n: merge: mark messages for translationVasco Almeida Fri, 17 Jun 2016 20:21:17 +0000 (20:21 +0000)

i18n: merge: mark messages for translation

Mark messages shown to the user for translation.

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

i18n: notes: mark options for translationVasco Almeida Fri, 17 Jun 2016 20:21:15 +0000 (20:21 +0000)

i18n: notes: mark options for translation

Mark options description of git prune for translation.

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

i18n: notes: mark strings for translationVasco Almeida Fri, 17 Jun 2016 20:21:14 +0000 (20:21 +0000)

i18n: notes: mark strings for translation

Mark strings of messages for the user as translatable.

Update tests t3310-notes-merge-manual-resolve.sh and
t3320-notes-merge-worktrees.sh to reflect new translatable messages.

Tests that grep for .git/NOTES_MERGE_WORKTREE reflect the translatable
string "Automatic notes merge failed. Fix conflicts in %s and [...]".

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

i18n: transport-helper.c: change N_() call to _()Vasco Almeida Fri, 17 Jun 2016 20:21:13 +0000 (20:21 +0000)

i18n: transport-helper.c: change N_() call to _()

The N_() no-op call currently marks the string to be extracted by
xgettext but doesn't trigger the retrieval of the translation at run
time, whereas _() does both. Meaning that, in spite of having
translations available, they were never retrieved to make use of them.

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

i18n: bisect: mark strings for translationVasco Almeida Fri, 17 Jun 2016 20:21:12 +0000 (20:21 +0000)

i18n: bisect: mark strings for translation

In the last message, involving Q_(), try to mark the message in such way
that is suited for RTL (Right to Left) languages.

Update test t6030-bisect-porcelain.sh to reflect the changes.

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t5523: use test_i18ngrep for negationVasco Almeida Fri, 17 Jun 2016 20:21:11 +0000 (20:21 +0000)

t5523: use test_i18ngrep for negation

Replace the first form with the second one:

! grep expected actual
test_i18ngrep ! expected actual

The latter syntax is supported by test_i18ngrep defined in
t/test-lib.sh.

Although the test already passes whether GETTEXT_POSION is enabled, use
the i18n grep variant for the sake of consistency and also to make
obvious that those strings are subject to i18n.

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t4153: fix negated test_i18ngrep callVasco Almeida Fri, 17 Jun 2016 20:21:10 +0000 (20:21 +0000)

t4153: fix negated test_i18ngrep call

The function test_i18ngrep fakes success when run under GETTEXT_POISON.
Hence, running in the following manner will always fail under gettext
poison:

! test_i18ngrep expected actual

Use correct syntax: test_i18ngrep ! expected actual

For other instance of this issue see 41ca19b ("tests: fix negated
test_i18ngrep calls", 2014-08-13).

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t9003: become resilient to GETTEXT_POISONVasco Almeida Fri, 17 Jun 2016 20:21:09 +0000 (20:21 +0000)

t9003: become resilient to GETTEXT_POISON

The test t9003-help-autocorrect.sh fails when run under GETTEXT_POISON,
because it's expecting to filter out the original output. Accommodate
gettext poison case by also filtering out the default simulated output.

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

tests: unpack-trees: update to use test_i18n* functionsVasco Almeida Fri, 17 Jun 2016 20:21:08 +0000 (20:21 +0000)

tests: unpack-trees: update to use test_i18n* functions

Use functions test_i18ncmp and test_i18ngrep to successfully pass tests
running under GETTEXT_POISON.

The output strings compared to in these test were marked for translation
in ed47fdf ("i18n: unpack-trees: mark strings for translation",
2016-04-09) and later improved in 2e3926b ("i18n: unpack-trees: avoid
substituting only a verb in sentences", 2016-05-12).

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

tests: use test_i18n* functions to suppress false positivesVasco Almeida Fri, 17 Jun 2016 20:21:07 +0000 (20:21 +0000)

tests: use test_i18n* functions to suppress false positives

The test functions test_i18ncmp and test_i18ngrep pretend success if run
under GETTEXT_POISON. By using those functions to test output which is
correctly marked as translatable, enables one to detect if the strings
newly marked for translation are from plumbing output. If they are
indeed from plumbing, the test would fail, and the string should be
unmarked, since it is not seen by users.

Thus, it is productive to not have false positives when running the test
under GETTEXT_POISON. This commit replaces normal test functions by
their i18n aware variants in use-cases know to be correctly marked for
translation, suppressing false positives.

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

i18n: setup: mark strings for translationVasco Almeida Fri, 17 Jun 2016 20:21:06 +0000 (20:21 +0000)

i18n: setup: mark strings for translation

Update tests that compare the strings newly marked for translation to
succeed when running under GETTEXT_POISON.

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

i18n: rebase-interactive: mark comments of squash for... Vasco Almeida Fri, 17 Jun 2016 20:21:05 +0000 (20:21 +0000)

i18n: rebase-interactive: mark comments of squash for translation

Mark comment messages of squash/fixup file ($squash_msg) for
translation.

Helper functions this_nth_commit_message and skip_nth_commit_message
replace the previous method of making the comment messages (such as
"This is the 2nd commit message:") aided by nth_string helper function.
This step was taken as a workaround to enabled translation of entire
sentences. However, doesn't change any text seen in English by the user,
except for string "The first commit's message is:" which was changed to
match the style of other instances.

The test t3404-rebase-interactive.sh resorts to set_fake_editor which
didn't account for GETTEXT_POISON. Fix it by assuming success when we
find dummy gettext poison output where was supposed to find the first
comment line "This is a combination of $count commits.".

For that same message, use plural aware eval_ngettext instead of
eval_gettext, since other languages have more complex plural forms.

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

i18n: rebase-interactive: mark here-doc strings for... Vasco Almeida Fri, 17 Jun 2016 20:21:04 +0000 (20:21 +0000)

i18n: rebase-interactive: mark here-doc strings for translation

Use pipe to send gettext output to git stripspace instead of the
original method of using shell here-document, because command
substitution '$(...)' would not take place inside the here-documents.
The exception is the case of the last here-document redirecting to cat,
in which commands substitution works and, thus, is preserved in this
commit.

t3404: adapt test to the strings newly marked for translation
Test t3404-rebase-interactive.sh would fail under GETTEXT_POISON unless
using test_i18ngrep.

Add eval_ngettext fallback functions to be called when running, for
instance, under GETTEXT_POISON. Otherwise, tests would fail under
GETTEXT_POISON, or other build that doesn't support the GNU gettext,
because that function could not be found.

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

i18n: rebase-interactive: mark strings for translationVasco Almeida Fri, 17 Jun 2016 20:21:03 +0000 (20:21 +0000)

i18n: rebase-interactive: mark strings for translation

Mark strings in git-rebase--interactive.sh for translation. There is no
need to source git-sh-i18n since git-rebase.sh already does so.

Add git-rebase--interactive.sh to LOCALIZED_SH in Makefile in order to
enable extracting strings marked for translation by xgettext.

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

i18n: git-sh-setup.sh: mark strings for translationVasco Almeida Fri, 17 Jun 2016 20:21:02 +0000 (20:21 +0000)

i18n: git-sh-setup.sh: mark strings for translation

Positional arguments, such as $0, $1, etc, need to be stored on shell
variables for use in translatable strings, according to gettext manual
[1].

Add git-sh-setup.sh to LOCALIZED_SH variable in Makefile to enable
extraction of string marked for translation by xgettext.

Source git-sh-i18n in git-sh-setup.sh for gettext support.
git-sh-setup.sh is a shell library to be sourced by other shell scripts.
In order to avoid other scripts from sourcing git-sh-i18n twice, remove
line that sources it from them. Not sourcing git-sh-i18n in any script
that uses gettext would lead to failure due to, for instance, gettextln
not being found.

[1] http://www.gnu.org/software/gettext/manual/html_node/Preparing-Shell-Scripts.html

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

t6030: update to use test_i18ncmpVasco Almeida Fri, 17 Jun 2016 20:21:01 +0000 (20:21 +0000)

t6030: update to use test_i18ncmp

Since the git bisect output tested here is subject to translation, the
helper function test_i18ncmp should be used over test_cmp.

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

i18n: bisect: simplify error message for i18nVasco Almeida Fri, 17 Jun 2016 20:21:00 +0000 (20:21 +0000)

i18n: bisect: simplify error message for i18n

The message was not being extracted by xgettext, although it was marked
for translation, seemingly because it contained a command substitution.
Moreover, eval_gettext should be used instead of gettext for strings
with substitution.

See step 4. of section 15.5.2.1 Preparing Shell Scripts for
Internationalization from gettext manual [1]:
"Simplify translatable strings so that they don't contain command
substitution ("`...`" or "$(...)") [...]"

[1] http://www.gnu.org/software/gettext/manual/html_node/Preparing-Shell-Scripts.html

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

i18n: rebase: mark placeholder for translationVasco Almeida Fri, 17 Jun 2016 20:20:59 +0000 (20:20 +0000)

i18n: rebase: mark placeholder for translation

Mark placeholder "<branch>" in git-rebase.sh for translation. The string
containing the named placeholder is passed to shell function
error_on_missing_default_upstream in git-parse-remote.sh which uses it
to display a command hint for the user.

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

i18n: rebase: fix marked string to use eval_gettext... Vasco Almeida Fri, 17 Jun 2016 20:20:58 +0000 (20:20 +0000)

i18n: rebase: fix marked string to use eval_gettext variant

The string message marked for translation should use eval_gettext
variant instead of the gettext one, since we want to dollar-substitute
$head_name in the result.

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

merge-octopus: use die shell function from git-sh-setup.shVasco Almeida Fri, 17 Jun 2016 20:20:57 +0000 (20:20 +0000)

merge-octopus: use die shell function from git-sh-setup.sh

Source git-sh-setup in order to use die shell function from
git-sh-setup.sh library instead of using the one defined in
git-merge-octopus.sh. Remove the former die function.

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

i18n: merge-octopus: mark messages for translationVasco Almeida Fri, 17 Jun 2016 20:20:56 +0000 (20:20 +0000)

i18n: merge-octopus: mark messages for translation

Mark messages in git-merge-octopus.sh for translation.

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

i18n: sequencer: mark string for translationVasco Almeida Fri, 17 Jun 2016 20:20:55 +0000 (20:20 +0000)

i18n: sequencer: mark string for translation

Mark informative string "<action_name>: fast-forward" for translation.

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

i18n: sequencer: mark entire sentences for translationVasco Almeida Fri, 17 Jun 2016 20:20:54 +0000 (20:20 +0000)

i18n: sequencer: mark entire sentences for translation

Mark entire sentences of error message rather than assembling one using
placeholders (e.g. "Cannot %s during a %s").

That would facilitate translation work because it is easier to translate
a entire sentence than translating pieces. We would have better
translations at the expense of source code verbosity.

Moreover, translators can now 1) translate the terms "revert" and
"cherry-pick" if they please 2) have more leeway to adapt their
translations.

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

i18n: transport: mark strings for translationVasco Almeida Fri, 17 Jun 2016 20:20:53 +0000 (20:20 +0000)

i18n: transport: mark strings for translation

Mark one printf string and one error string for translation.

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

i18n: advice: internationalize message for conflictsVasco Almeida Fri, 17 Jun 2016 20:20:52 +0000 (20:20 +0000)

i18n: advice: internationalize message for conflicts

Mark message for translation telling the user she has conflicts to
resolve. Expose each particular use case, in order to enable translating
entire sentences which would facilitate translating into other
languages.

Change "Pull" to lowercase to match other instances. Update test
t5520-pull.sh, that relied on the old error message, to use the new one.

Although we loose in source code conciseness, we would gain better
translations because translators can 1) translate the entire sentence,
including those terms concerning Git (committing, merging, etc) 2) have
leeway to adapt to their languages.

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

i18n: advice: mark string about detached head for trans... Vasco Almeida Fri, 17 Jun 2016 20:20:51 +0000 (20:20 +0000)

i18n: advice: mark string about detached head for translation

Mark string with advice seen by the user when in detached head.

Update test t7201-co.sh to pass under GETTEXT_POISON build. Pretend
success if the number of lines of "git checkout renamer^" output is not
greater than 1 and test are running under GETTEXT_POISON.

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

i18n: builtin/remote.c: fix mark for translationVasco Almeida Fri, 17 Jun 2016 20:20:50 +0000 (20:20 +0000)

i18n: builtin/remote.c: fix mark for translation

The second string inside _() was not being extracted for translation by
xgettext, meaning that, although the string was passed to gettext, there
was no translation available.

Mark each individual string instead of marking the result of ternary if.

Signed-off-by: Vasco Almeida <vascomalmeida@sapo.pt>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'jc/t2300-setup' into HEADJunio C Hamano Tue, 7 Jun 2016 21:28:53 +0000 (14:28 -0700)

Merge branch 'jc/t2300-setup' into HEAD

* jc/t2300-setup:
t2300: run git-sh-setup in an environment that better mimics the real life
More topics for 2.8.4

t2300: run git-sh-setup in an environment that better... Junio C Hamano Wed, 1 Jun 2016 20:30:47 +0000 (13:30 -0700)

t2300: run git-sh-setup in an environment that better mimics the real life

When we run scripted Porcelains, "git" potty has set up the $PATH by
prepending $GIT_EXEC_PATH, the path given by "git --exec-path=$there
$cmd", etc. already. Because of this, scripted Porcelains can
dot-source shell script library like git-sh-setup with simple dot
without specifying any path.

t2300 however dot-sources git-sh-setup without adjusting $PATH like
the real "git" potty does. This has not been a problem so far, but
once git-sh-setup wants to rely on the $PATH adjustment, just like
any scripted Porcelains already do, it would become one. It cannot
for example dot-source another shell library without specifying the
full path to it by prefixing $(git --exec-path).

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

More topics for 2.8.4Junio C Hamano Tue, 31 May 2016 21:11:38 +0000 (14:11 -0700)

More topics for 2.8.4

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

Merge branch 'sb/submodule-deinit-all' into maintJunio C Hamano Tue, 31 May 2016 21:09:46 +0000 (14:09 -0700)

Merge branch 'sb/submodule-deinit-all' into maint

Correct faulty recommendation to use "git submodule deinit ." when
de-initialising all submodules, which would result in a strange
error message in a pathological corner case.

* sb/submodule-deinit-all:
submodule deinit: require '--all' instead of '.' for all submodules

Merge branch 'bn/http-cookiefile-config' into maintJunio C Hamano Tue, 31 May 2016 21:08:28 +0000 (14:08 -0700)

Merge branch 'bn/http-cookiefile-config' into maint

"http.cookieFile" configuration variable clearly wants a pathname,
but we forgot to treat it as such by e.g. applying tilde expansion.

* bn/http-cookiefile-config:
http: expand http.cookieFile as a path
Documentation: config: improve word ordering for http.cookieFile

Merge branch 'jk/test-send-sh-x-trace-elsewhere' into... Junio C Hamano Tue, 31 May 2016 21:08:27 +0000 (14:08 -0700)

Merge branch 'jk/test-send-sh-x-trace-elsewhere' into maint

Running tests with '-x' option to trace the individual command
executions is a useful way to debug test scripts, but some tests
that capture the standard error stream and check what the command
said can be broken with the trace output mixed in. When running
our tests under "bash", however, we can redirect the trace output
to another file descriptor to keep the standard error of programs
being tested intact.

* jk/test-send-sh-x-trace-elsewhere:
test-lib: set BASH_XTRACEFD automatically

Merge branch 'js/name-rev-use-oldest-ref' into maintJunio C Hamano Tue, 31 May 2016 21:08:26 +0000 (14:08 -0700)

Merge branch 'js/name-rev-use-oldest-ref' into maint

"git describe --contains" often made a hard-to-justify choice of
tag to give name to a given commit, because it tried to come up
with a name with smallest number of hops from a tag, causing an old
commit whose close descendant that is recently tagged were not
described with respect to an old tag but with a newer tag. It did
not help that its computation of "hop" count was further tweaked to
penalize being on a side branch of a merge. The logic has been
updated to favor using the tag with the oldest tagger date, which
is a lot easier to explain to the end users: "We describe a commit
in terms of the (chronologically) oldest tag that contains the
commit."

* js/name-rev-use-oldest-ref:
name-rev: include taggerdate in considering the best name

Sync with maintJunio C Hamano Thu, 26 May 2016 20:28:24 +0000 (13:28 -0700)

Sync with maint

* maint:
Start preparing for 2.8.4
archive-tar: convert snprintf to xsnprintf

Start preparing for 2.8.4Junio C Hamano Thu, 26 May 2016 20:21:00 +0000 (13:21 -0700)

Start preparing for 2.8.4

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

Merge branch 'jc/linkgit-fix' into maintJunio C Hamano Thu, 26 May 2016 20:17:26 +0000 (13:17 -0700)

Merge branch 'jc/linkgit-fix' into maint

Many 'linkgit:<git documentation page>' references were broken,
which are all fixed with this.

* jc/linkgit-fix:
Documentation: fix linkgit references

Merge branch 'ls/travis-build-doc' into maintJunio C Hamano Thu, 26 May 2016 20:17:25 +0000 (13:17 -0700)

Merge branch 'ls/travis-build-doc' into maint

CI test was taught to build documentation pages.

* ls/travis-build-doc:
travis-ci: build documentation

Merge branch 'jc/fsck-nul-in-commit' into maintJunio C Hamano Thu, 26 May 2016 20:17:24 +0000 (13:17 -0700)

Merge branch 'jc/fsck-nul-in-commit' into maint

"git fsck" learned to catch NUL byte in a commit object as
potential error and warn.

* jc/fsck-nul-in-commit:
fsck: detect and warn a commit with embedded NUL
fsck_commit_buffer(): do not special case the last validation

Merge branch 'jk/rebase-interative-eval-fix' into maintJunio C Hamano Thu, 26 May 2016 20:17:24 +0000 (13:17 -0700)

Merge branch 'jk/rebase-interative-eval-fix' into maint

Portability enhancement for "rebase -i" to help platforms whose
shell does not like "for i in <empty>" (which is not POSIX-kosher).

* jk/rebase-interative-eval-fix:
rebase--interactive: avoid empty list in shell for-loop

Merge branch 'js/windows-dotgit' into maintJunio C Hamano Thu, 26 May 2016 20:17:23 +0000 (13:17 -0700)

Merge branch 'js/windows-dotgit' into maint

On Windows, .git and optionally any files whose name starts with a
dot are now marked as hidden, with a core.hideDotFiles knob to
customize this behaviour.

* js/windows-dotgit:
mingw: remove unnecessary definition
mingw: introduce the 'core.hideDotFiles' setting

Merge branch 'kf/gpg-sig-verification-doc' into maintJunio C Hamano Thu, 26 May 2016 20:17:22 +0000 (13:17 -0700)

Merge branch 'kf/gpg-sig-verification-doc' into maint

Documentation for "git merge --verify-signatures" has been updated
to clarify that the signature of only the commit at the tip is
verified. Also the phrasing used for signature and key validity is
adjusted to align with that used by OpenPGP.

* kf/gpg-sig-verification-doc:
Documentation: clarify signature verification

Merge branch 'lp/typofixes' into maintJunio C Hamano Thu, 26 May 2016 20:17:21 +0000 (13:17 -0700)

Merge branch 'lp/typofixes' into maint

Typofixes.

* lp/typofixes:
typofix: assorted typofixes in comments, documentation and messages

Merge branch 'sb/z-is-gnutar-ism' into maintJunio C Hamano Thu, 26 May 2016 20:17:21 +0000 (13:17 -0700)

Merge branch 'sb/z-is-gnutar-ism' into maint

Test fix.

* sb/z-is-gnutar-ism:
t6041: do not compress backup tar file
t3513: do not compress backup tar file

Merge branch 'va/i18n-misc-updates' into maintJunio C Hamano Thu, 26 May 2016 20:17:20 +0000 (13:17 -0700)

Merge branch 'va/i18n-misc-updates' into maint

Mark several messages for translation.

* va/i18n-misc-updates:
i18n: unpack-trees: avoid substituting only a verb in sentences
i18n: builtin/pull.c: split strings marked for translation
i18n: builtin/pull.c: mark placeholders for translation
i18n: git-parse-remote.sh: mark strings for translation
i18n: branch: move comment for translators
i18n: branch: unmark string for translation
i18n: builtin/rm.c: remove a comma ',' from string
i18n: unpack-trees: mark strings for translation
i18n: builtin/branch.c: mark option for translation
i18n: index-pack: use plural string instead of normal one

Merge branch 'bn/config-doc-tt-varnames' into maintJunio C Hamano Thu, 26 May 2016 20:17:19 +0000 (13:17 -0700)

Merge branch 'bn/config-doc-tt-varnames' into maint

Doc formatting fixes.

* bn/config-doc-tt-varnames:
config: consistently format $variables in monospaced font
config: describe 'pathname' value type

Merge branch 'nd/remote-plural-ours-plus-theirs' into... Junio C Hamano Thu, 26 May 2016 20:17:18 +0000 (13:17 -0700)

Merge branch 'nd/remote-plural-ours-plus-theirs' into maint

Message fix.

* nd/remote-plural-ours-plus-theirs:
remote.c: specify correct plural form in "commit diverge" message

Merge branch 'ak/t4151-ls-files-could-be-empty' into... Junio C Hamano Thu, 26 May 2016 20:17:17 +0000 (13:17 -0700)

Merge branch 'ak/t4151-ls-files-could-be-empty' into maint

Test fix.

* ak/t4151-ls-files-could-be-empty:
t4151: make sure argument to 'test -z' is given

Merge branch 'jc/test-seq' into maintJunio C Hamano Thu, 26 May 2016 20:17:16 +0000 (13:17 -0700)

Merge branch 'jc/test-seq' into maint

Test fix.

* jc/test-seq:
test-lib-functions.sh: rewrite test_seq without Perl
test-lib-functions.sh: remove misleading comment on test_seq

Merge branch 'tb/t5601-sed-fix' into maintJunio C Hamano Thu, 26 May 2016 20:17:15 +0000 (13:17 -0700)

Merge branch 'tb/t5601-sed-fix' into maint

Test fix.

* tb/t5601-sed-fix:
t5601: Remove trailing space in sed expression

Merge branch 'va/i18n-remote-comment-to-align' into... Junio C Hamano Thu, 26 May 2016 20:17:14 +0000 (13:17 -0700)

Merge branch 'va/i18n-remote-comment-to-align' into maint

Message fix.

* va/i18n-remote-comment-to-align:
i18n: remote: add comment for translators

Merge branch 'va/mailinfo-doc-typofix' into maintJunio C Hamano Thu, 26 May 2016 20:17:13 +0000 (13:17 -0700)

Merge branch 'va/mailinfo-doc-typofix' into maint

Typofix.

* va/mailinfo-doc-typofix:
Documentation/git-mailinfo: fix typo

Merge branch 'maint-2.7' into maintJunio C Hamano Thu, 26 May 2016 20:16:51 +0000 (13:16 -0700)

Merge branch 'maint-2.7' into maint

* maint-2.7:
archive-tar: convert snprintf to xsnprintf

Merge branch 'jk/war-on-sprintf' into maint-2.7Junio C Hamano Thu, 26 May 2016 17:45:37 +0000 (10:45 -0700)

Merge branch 'jk/war-on-sprintf' into maint-2.7

* jk/war-on-sprintf:
archive-tar: convert snprintf to xsnprintf

archive-tar: convert snprintf to xsnprintfJeff King Thu, 26 May 2016 04:28:08 +0000 (00:28 -0400)

archive-tar: convert snprintf to xsnprintf

Commit f2f0267 (archive-tar: use xsnprintf for trivial
formatting, 2015-09-24) converted cases of "sprintf" to
"xsnprintf", but accidentally left one as just "snprintf".
This meant that we could silently truncate the resulting
buffer instead of flagging an error.

In practice, this is impossible to achieve, as we are
formatting a ustar checksum, which can be at most 7
characters. But the point of xsnprintf is to document and
check for "should be impossible" conditions; this site was
just accidentally mis-converted during f2f0267.

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

Git 2.9-rc0 v2.9.0-rc0Junio C Hamano Mon, 23 May 2016 22:02:48 +0000 (15:02 -0700)

Git 2.9-rc0

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

Merge branch 'svn-travis' of git://bogomips.org/git-svnJunio C Hamano Mon, 23 May 2016 22:01:03 +0000 (15:01 -0700)

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

* 'svn-travis' of git://bogomips.org/git-svn:
travis-ci: enable Git SVN tests t91xx on Linux

Merge branch 'jc/rerere-multi'Junio C Hamano Mon, 23 May 2016 21:54:37 +0000 (14:54 -0700)

Merge branch 'jc/rerere-multi'

* jc/rerere-multi:
rerere: remove an null statement
rerere: plug memory leaks upon "rerere forget" failure

Merge branch 'da/difftool'Junio C Hamano Mon, 23 May 2016 21:54:36 +0000 (14:54 -0700)

Merge branch 'da/difftool'

"git difftool" learned to handle unmerged paths correctly in
dir-diff mode.

* da/difftool:
difftool: handle unmerged files in dir-diff mode
difftool: initialize variables for readability

Merge branch 'jk/test-z-n-unquoted'Junio C Hamano Mon, 23 May 2016 21:54:35 +0000 (14:54 -0700)

Merge branch 'jk/test-z-n-unquoted'

t9xxx series has been updated primarily for readability, while
fixing small bugs in it. A few scripted Porcelains have also been
updated to fix possible bugs around their use of "test -z" and
"test -n".

* jk/test-z-n-unquoted:
always quote shell arguments to test -z/-n
t9103: modernize test style
t9107: switch inverted single/double quotes in test
t9107: use "return 1" instead of "exit 1"
t9100,t3419: enclose all test code in single-quotes
t/lib-git-svn: drop $remote_git_svn and $git_svn_id

Merge branch 'ar/diff-args-osx-precompose'Junio C Hamano Mon, 23 May 2016 21:54:35 +0000 (14:54 -0700)

Merge branch 'ar/diff-args-osx-precompose'

Many commands normalize command line arguments from NFD to NFC
variant of UTF-8 on OSX, but commands in the "diff" family did
not, causing "git diff $path" to complain that no such path is
known to Git. They have been taught to do the normalization.

* ar/diff-args-osx-precompose:
diff: run arguments through precompose_argv

Merge branch 'jc/doc-lint'Junio C Hamano Mon, 23 May 2016 21:54:34 +0000 (14:54 -0700)

Merge branch 'jc/doc-lint'

Find common mistakes when writing gitlink: in our documentation and
drive the check from "make check-docs".

I am not entirely happy with the way the script chooses what input
file to validate, but it is not worse than not having anything, so
let's move it forward and have the logic improved later when people
care about it deeply.

* jc/doc-lint:
ci: validate "linkgit:" in documentation

Merge branch 'js/perf-rebase-i'Junio C Hamano Mon, 23 May 2016 21:54:33 +0000 (14:54 -0700)

Merge branch 'js/perf-rebase-i'

Add perf test for "rebase -i"

* js/perf-rebase-i:
perf: run "rebase -i" under perf
perf: make the tests work in worktrees
perf: let's disable symlinks when they are not available

Merge branch 'jc/test-parse-options-expect'Junio C Hamano Mon, 23 May 2016 21:54:32 +0000 (14:54 -0700)

Merge branch 'jc/test-parse-options-expect'

t0040 had too many unnecessary repetitions in its test data. Teach
test-parse-options program so that a caller can tell what it
expects in its output, so that these repetitions can be cleaned up.

* jc/test-parse-options-expect:
t0040: convert a few tests to use test-parse-options --expect
t0040: remove unused test helpers
test-parse-options: --expect=<string> option to simplify tests
test-parse-options: fix output when callback option fails

Merge branch 'pb/commit-verbose-config'Junio C Hamano Mon, 23 May 2016 21:54:31 +0000 (14:54 -0700)

Merge branch 'pb/commit-verbose-config'

"git commit" learned to pay attention to "commit.verbose"
configuration variable and act as if "--verbose" option was
given from the command line.

* pb/commit-verbose-config:
commit: add a commit.verbose config variable
t7507-commit-verbose: improve test coverage by testing number of diffs
parse-options.c: make OPTION_COUNTUP respect "unspecified" values
t/t7507: improve test coverage
t0040-parse-options: improve test coverage
test-parse-options: print quiet as integer
t0040-test-parse-options.sh: fix style issues

Merge branch 'xy/format-patch-base'Junio C Hamano Mon, 23 May 2016 21:54:31 +0000 (14:54 -0700)

Merge branch 'xy/format-patch-base'

"git format-patch" learned a new "--base" option to record what
(public, well-known) commit the original series was built on in
its output.

* xy/format-patch-base:
format-patch: introduce format.useAutoBase configuration
format-patch: introduce --base=auto option
format-patch: add '--base' option to record base tree info
patch-ids: make commit_patch_id() a public helper function

Merge branch 'tb/core-eol-fix'Junio C Hamano Mon, 23 May 2016 21:54:30 +0000 (14:54 -0700)

Merge branch 'tb/core-eol-fix'

A couple of bugs around core.autocrlf have been fixed.

* tb/core-eol-fix:
convert.c: ident + core.autocrlf didn't work
t0027: test cases for combined attributes
convert: allow core.autocrlf=input and core.eol=crlf
t0027: make commit_chk_wrnNNO() reliable

Merge branch 'nd/worktree-various-heads'Junio C Hamano Mon, 23 May 2016 21:54:29 +0000 (14:54 -0700)

Merge branch 'nd/worktree-various-heads'

The experimental "multiple worktree" feature gains more safety to
forbid operations on a branch that is checked out or being actively
worked on elsewhere, by noticing that e.g. it is being rebased.

* nd/worktree-various-heads:
branch: do not rename a branch under bisect or rebase
worktree.c: check whether branch is bisected in another worktree
wt-status.c: split bisect detection out of wt_status_get_state()
worktree.c: check whether branch is rebased in another worktree
worktree.c: avoid referencing to worktrees[i] multiple times
wt-status.c: make wt_status_check_rebase() work on any worktree
wt-status.c: split rebase detection out of wt_status_get_state()
path.c: refactor and add worktree_git_path()
worktree.c: mark current worktree
worktree.c: make find_shared_symref() return struct worktree *
worktree.c: store "id" instead of "git_dir"
path.c: add git_common_path() and strbuf_git_common_path()
dir.c: rename str(n)cmp_icase to fspath(n)cmp

Merge branch 'ss/commit-dry-run-resolve-merge-to-no-op'Junio C Hamano Mon, 23 May 2016 21:54:28 +0000 (14:54 -0700)

Merge branch 'ss/commit-dry-run-resolve-merge-to-no-op'

"git commit --dry-run" reported "No, no, you cannot commit." in one
case where "git commit" would have allowed you to commit, and this
improves it a little bit ("git commit --dry-run --short" still does
not give you the correct answer, for example). This is a stop-gap
measure in that "commit --short --dry-run" still gives an incorrect
result.

* ss/commit-dry-run-resolve-merge-to-no-op:
wt-status.c: set commitable bit if there is a meaningful merge.

travis-ci: enable Git SVN tests t91xx on LinuxLars Schneider Thu, 19 May 2016 09:10:08 +0000 (11:10 +0200)

travis-ci: enable Git SVN tests t91xx on Linux

Install the "git-svn" package to make the Perl SVN libraries available
to the Git SVN tests on Travis-CI Linux build machines.

Signed-off-by: Lars Schneider <larsxschneider@gmail.com>
Signed-off-by: Eric Wong <e@80x24.org>

rerere: remove an null statementJunio C Hamano Thu, 19 May 2016 19:51:22 +0000 (12:51 -0700)

rerere: remove an null statement

J6t spotted that previous commit added an empty statement by
mistake.

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

Sync with 2.8.3Junio C Hamano Wed, 18 May 2016 22:33:57 +0000 (15:33 -0700)

Sync with 2.8.3

* maint:
Git 2.8.3

Git 2.8.3 v2.8.3Junio C Hamano Wed, 18 May 2016 21:45:08 +0000 (14:45 -0700)

Git 2.8.3

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

Merge branch 'jk/push-client-deadlock-fix'Junio C Hamano Wed, 18 May 2016 22:11:46 +0000 (15:11 -0700)

Merge branch 'jk/push-client-deadlock-fix'

Some Windows SDK lacks pthread_sigmask() implementation and fails
to compile the recently updated "git push" codepath that uses it.

* jk/push-client-deadlock-fix:
Windows: only add a no-op pthread_sigmask() when needed
Windows: add pthread_sigmask() that does nothing

Merge branch 'sb/misc-cleanups' into HEADJunio C Hamano Wed, 18 May 2016 21:40:15 +0000 (14:40 -0700)

Merge branch 'sb/misc-cleanups' into HEAD

* sb/misc-cleanups:
submodule-config: don't shadow `cache`
config.c: drop local variable
credential-cache, send_request: close fd when done
bundle: don't leak an fd in case of early return
abbrev_sha1_in_line: don't leak memory
notes: don't leak memory in git_config_get_notes_strategy

Merge branch 'ew/doc-split-pack-disables-bitmap' into... Junio C Hamano Wed, 18 May 2016 21:40:15 +0000 (14:40 -0700)

Merge branch 'ew/doc-split-pack-disables-bitmap' into HEAD

Doc update.

* ew/doc-split-pack-disables-bitmap:
pack-objects: warn on split packs disabling bitmaps

Merge branch 'sb/clean-test-fix' into HEADJunio C Hamano Wed, 18 May 2016 21:40:14 +0000 (14:40 -0700)

Merge branch 'sb/clean-test-fix' into HEAD

* sb/clean-test-fix:
t7300: mark test with SANITY

Merge branch 'rn/glossary-typofix' into HEADJunio C Hamano Wed, 18 May 2016 21:40:13 +0000 (14:40 -0700)

Merge branch 'rn/glossary-typofix' into HEAD

* rn/glossary-typofix:
Documentation: fix typo 'In such these cases'

Merge branch 'ew/normal-to-e' into HEADJunio C Hamano Wed, 18 May 2016 21:40:12 +0000 (14:40 -0700)

Merge branch 'ew/normal-to-e' into HEAD

* ew/normal-to-e:
.mailmap: update to my shorter email address

Merge branch 'sb/config-exit-status-list' into HEADJunio C Hamano Wed, 18 May 2016 21:40:12 +0000 (14:40 -0700)

Merge branch 'sb/config-exit-status-list' into HEAD

Doc update.

* sb/config-exit-status-list:
config doc: improve exit code listing

Merge branch 'rt/string-list-lookup-cleanup' into HEADJunio C Hamano Wed, 18 May 2016 21:40:12 +0000 (14:40 -0700)

Merge branch 'rt/string-list-lookup-cleanup' into HEAD

Code cleanup.

* rt/string-list-lookup-cleanup:
string_list: use string-list API in unsorted_string_list_lookup()

Merge branch 'jk/fix-attribute-macro-in-2.5' into HEADJunio C Hamano Wed, 18 May 2016 21:40:12 +0000 (14:40 -0700)

Merge branch 'jk/fix-attribute-macro-in-2.5' into HEAD

Code fixup.

* jk/fix-attribute-macro-in-2.5:
remote.c: spell __attribute__ correctly

Merge branch 'sg/test-lib-simplify-expr-away' into... Junio C Hamano Wed, 18 May 2016 21:40:11 +0000 (14:40 -0700)

Merge branch 'sg/test-lib-simplify-expr-away' into HEAD

Code cleanup.

* sg/test-lib-simplify-expr-away:
test-lib: simplify '--option=value' parsing

Merge branch 'nd/remove-unused' into HEADJunio C Hamano Wed, 18 May 2016 21:40:11 +0000 (14:40 -0700)

Merge branch 'nd/remove-unused' into HEAD

Code cleanup.

* nd/remove-unused:
wrapper.c: delete dead function git_mkstemps()
dir.c: remove dead function fnmatch_icase()

Merge branch 'sk/gitweb-highlight-encoding' into HEADJunio C Hamano Wed, 18 May 2016 21:40:10 +0000 (14:40 -0700)

Merge branch 'sk/gitweb-highlight-encoding' into HEAD

Some multi-byte encoding can have a backslash byte as a later part
of one letter, which would confuse "highlight" filter used in
gitweb.

* sk/gitweb-highlight-encoding:
gitweb: apply fallback encoding before highlight

Merge branch 'ls/travis-submitting-patches' into HEADJunio C Hamano Wed, 18 May 2016 21:40:09 +0000 (14:40 -0700)

Merge branch 'ls/travis-submitting-patches' into HEAD

* ls/travis-submitting-patches:
Documentation: add setup instructions for Travis CI

Merge branch 'js/close-packs-before-gc' into HEADJunio C Hamano Wed, 18 May 2016 21:40:09 +0000 (14:40 -0700)

Merge branch 'js/close-packs-before-gc' into HEAD

* js/close-packs-before-gc:
t5510: run auto-gc in the foreground

Merge branch 'ls/p4-lfs' into HEADJunio C Hamano Wed, 18 May 2016 21:40:08 +0000 (14:40 -0700)

Merge branch 'ls/p4-lfs' into HEAD

Recent update to Git LFS broke "git p4" by changing the output from
its "lfs pointer" subcommand.

* ls/p4-lfs:
git-p4: fix Git LFS pointer parsing
travis-ci: express Linux/OS X dependency versions more clearly
travis-ci: update Git-LFS and P4 to the latest version

Merge branch 'ls/p4-lfs-test-fix-2.7.0' into HEADJunio C Hamano Wed, 18 May 2016 21:40:08 +0000 (14:40 -0700)

Merge branch 'ls/p4-lfs-test-fix-2.7.0' into HEAD

Fix a broken test.

* ls/p4-lfs-test-fix-2.7.0:
t9824: fix wrong reference value
t9824: fix broken &&-chain in a subshell