gitweb.git
Merge branch 'rs/cocci-de-paren-call-params' into maintJunio C Hamano Wed, 18 Oct 2017 05:19:12 +0000 (14:19 +0900)

Merge branch 'rs/cocci-de-paren-call-params' into maint

Code clean-up.

* rs/cocci-de-paren-call-params:
coccinelle: remove parentheses that become unnecessary

Merge branch 'ad/doc-markup-fix' into maintJunio C Hamano Wed, 18 Oct 2017 05:19:12 +0000 (14:19 +0900)

Merge branch 'ad/doc-markup-fix' into maint

Docfix.

* ad/doc-markup-fix:
doc: correct command formatting

Merge branch 'mr/doc-negative-pathspec' into maintJunio C Hamano Wed, 18 Oct 2017 05:19:12 +0000 (14:19 +0900)

Merge branch 'mr/doc-negative-pathspec' into maint

Doc updates.

* mr/doc-negative-pathspec:
docs: improve discoverability of exclude pathspec

Merge branch 'jk/validate-headref-fix' into maintJunio C Hamano Wed, 18 Oct 2017 05:19:12 +0000 (14:19 +0900)

Merge branch 'jk/validate-headref-fix' into maint

Code clean-up.

* jk/validate-headref-fix:
validate_headref: use get_oid_hex for detached HEADs
validate_headref: use skip_prefix for symref parsing
validate_headref: NUL-terminate HEAD buffer

Merge branch 'ks/doc-use-camelcase-for-config-name... Junio C Hamano Wed, 18 Oct 2017 05:19:12 +0000 (14:19 +0900)

Merge branch 'ks/doc-use-camelcase-for-config-name' into maint

Doc update.

* ks/doc-use-camelcase-for-config-name:
doc: camelCase the config variables to improve readability

Merge branch 'jk/doc-read-tree-table-asciidoctor-fix... Junio C Hamano Wed, 18 Oct 2017 05:19:11 +0000 (14:19 +0900)

Merge branch 'jk/doc-read-tree-table-asciidoctor-fix' into maint

A docfix.

* jk/doc-read-tree-table-asciidoctor-fix:
doc: put literal block delimiter around table

Merge branch 'hn/typofix' into maintJunio C Hamano Wed, 18 Oct 2017 05:19:11 +0000 (14:19 +0900)

Merge branch 'hn/typofix' into maint

* hn/typofix:
submodule.h: typofix

Merge branch 'ks/test-readme-phrasofix' into maintJunio C Hamano Wed, 18 Oct 2017 05:19:10 +0000 (14:19 +0900)

Merge branch 'ks/test-readme-phrasofix' into maint

Doc updates.

* ks/test-readme-phrasofix:
t/README: fix typo and grammatically improve a sentence

Merge branch 'ez/doc-duplicated-words-fix' into maintJunio C Hamano Wed, 18 Oct 2017 05:19:10 +0000 (14:19 +0900)

Merge branch 'ez/doc-duplicated-words-fix' into maint

Typofix.

* ez/doc-duplicated-words-fix:
doc: fix minor typos (extra/duplicated words)

Merge branch 'kd/doc-for-each-ref' into maintJunio C Hamano Wed, 18 Oct 2017 05:19:10 +0000 (14:19 +0900)

Merge branch 'kd/doc-for-each-ref' into maint

Doc update.

* kd/doc-for-each-ref:
doc/for-each-ref: explicitly specify option names
doc/for-each-ref: consistently use '=' to between argument names and values

Merge branch 'cc/subprocess-handshake-missing-capabilit... Junio C Hamano Wed, 18 Oct 2017 05:19:10 +0000 (14:19 +0900)

Merge branch 'cc/subprocess-handshake-missing-capabilities' into maint

Finishing touches to a topic already in 'master'.

* cc/subprocess-handshake-missing-capabilities:
subprocess: loudly die when subprocess asks for an unsupported capability

Merge branch 'jk/system-path-cleanup' into maintJunio C Hamano Wed, 18 Oct 2017 05:19:10 +0000 (14:19 +0900)

Merge branch 'jk/system-path-cleanup' into maint

Code clean-up.

* jk/system-path-cleanup:
git_extract_argv0_path: do nothing without RUNTIME_PREFIX
system_path: move RUNTIME_PREFIX to a sub-function

Merge branch 'bb/doc-eol-dirty' into maintJunio C Hamano Wed, 18 Oct 2017 05:19:09 +0000 (14:19 +0900)

Merge branch 'bb/doc-eol-dirty' into maint

Doc update.

* bb/doc-eol-dirty:
Documentation: mention that `eol` can change the dirty status of paths

Merge branch 'mg/timestamp-t-fix' into maintJunio C Hamano Wed, 18 Oct 2017 05:19:09 +0000 (14:19 +0900)

Merge branch 'mg/timestamp-t-fix' into maint

A mismerge fix.

* mg/timestamp-t-fix:
name-rev: change ULONG_MAX to TIME_MAX

Merge branch 'ma/pkt-line-leakfix' into maintJunio C Hamano Wed, 18 Oct 2017 05:19:08 +0000 (14:19 +0900)

Merge branch 'ma/pkt-line-leakfix' into maint

A leakfix.

* ma/pkt-line-leakfix:
pkt-line: re-'static'-ify buffer in packet_write_fmt_1()

Merge branch 'jk/config-lockfile-leak-fix' into maintJunio C Hamano Wed, 18 Oct 2017 05:19:07 +0000 (14:19 +0900)

Merge branch 'jk/config-lockfile-leak-fix' into maint

A leakfix.

* jk/config-lockfile-leak-fix:
config: use a static lock_file struct

Merge branch 'dw/diff-highlight-makefile-fix' into... Junio C Hamano Wed, 18 Oct 2017 05:19:07 +0000 (14:19 +0900)

Merge branch 'dw/diff-highlight-makefile-fix' into maint

Build clean-up.

* dw/diff-highlight-makefile-fix:
diff-highlight: add clean target to Makefile

Merge branch 'jk/drop-sha1-entry-pos' into maintJunio C Hamano Wed, 18 Oct 2017 05:19:06 +0000 (14:19 +0900)

Merge branch 'jk/drop-sha1-entry-pos' into maint

Code clean-up.

* jk/drop-sha1-entry-pos:
sha1-lookup: remove sha1_entry_pos() from header file
sha1_file: drop experimental GIT_USE_LOOKUP search

Merge branch 'tb/ref-filter-empty-modifier' into maintJunio C Hamano Wed, 18 Oct 2017 05:19:06 +0000 (14:19 +0900)

Merge branch 'tb/ref-filter-empty-modifier' into maint

In the "--format=..." option of the "git for-each-ref" command (and
its friends, i.e. the listing mode of "git branch/tag"), "%(atom:)"
(e.g. "%(refname:)", "%(body:)" used to error out. Instead, treat
them as if the colon and an empty string that follows it were not
there.

* tb/ref-filter-empty-modifier:
ref-filter.c: pass empty-string as NULL to atom parsers

Merge branch 'rb/compat-poll-fix' into maintJunio C Hamano Wed, 18 Oct 2017 05:19:05 +0000 (14:19 +0900)

Merge branch 'rb/compat-poll-fix' into maint

Backports a moral equivalent of 2015 fix to the poll emulation from
the upstream gnulib to fix occasional breakages on HPE NonStop.

* rb/compat-poll-fix:
poll.c: always set revents, even if to zero

Merge branch 'tg/memfixes' into maintJunio C Hamano Wed, 18 Oct 2017 05:19:04 +0000 (14:19 +0900)

Merge branch 'tg/memfixes' into maint

Fixes for a handful memory access issues identified by valgrind.

* tg/memfixes:
sub-process: use child_process.args instead of child_process.argv
http-push: fix construction of hex value from path
path.c: fix uninitialized memory access

Merge branch 'ar/request-pull-phrasofix' into maintJunio C Hamano Wed, 18 Oct 2017 05:19:04 +0000 (14:19 +0900)

Merge branch 'ar/request-pull-phrasofix' into maint

Spell the name of our system as "Git" in the output from
request-pull script.

* ar/request-pull-phrasofix:
request-pull: capitalise "Git" to make it a proper noun

Merge branch 'jc/merge-x-theirs-docfix' into maintJunio C Hamano Wed, 18 Oct 2017 05:19:03 +0000 (14:19 +0900)

Merge branch 'jc/merge-x-theirs-docfix' into maint

The documentation for '-X<option>' for merges was misleadingly
written to suggest that "-s theirs" exists, which is not the case.

* jc/merge-x-theirs-docfix:
merge-strategies: avoid implying that "-s theirs" exists

Merge branch 'rs/mailinfo-qp-decode-fix' into maintJunio C Hamano Wed, 18 Oct 2017 05:19:03 +0000 (14:19 +0900)

Merge branch 'rs/mailinfo-qp-decode-fix' into maint

"git mailinfo" was loose in decoding quoted printable and produced
garbage when the two letters after the equal sign are not
hexadecimal. This has been fixed.

* rs/mailinfo-qp-decode-fix:
mailinfo: don't decode invalid =XY quoted-printable sequences

Merge branch 'ik/userdiff-html-h-element-fix' into... Junio C Hamano Wed, 18 Oct 2017 05:19:02 +0000 (14:19 +0900)

Merge branch 'ik/userdiff-html-h-element-fix' into maint

The built-in pattern to detect the "function header" for HTML did
not match <H1>..<H6> elements without any attributes, which has
been fixed.

* ik/userdiff-html-h-element-fix:
userdiff: fix HTML hunk header regexp

Merge branch 'jk/diff-blob' into maintJunio C Hamano Wed, 18 Oct 2017 05:19:01 +0000 (14:19 +0900)

Merge branch 'jk/diff-blob' into maint

"git cat-file --textconv" started segfaulting recently, which
has been corrected.

* jk/diff-blob:
cat-file: handle NULL object_context.path

Merge branch 'jk/describe-omit-some-refs' into maintJunio C Hamano Wed, 18 Oct 2017 05:19:01 +0000 (14:19 +0900)

Merge branch 'jk/describe-omit-some-refs' into maint

"git describe --match" learned to take multiple patterns in v2.13
series, but the feature ignored the patterns after the first one
and did not work at all. This has been fixed.

* jk/describe-omit-some-refs:
describe: fix matching to actually match all patterns

Merge branch 'mh/for-each-string-list-item-empty-fix... Junio C Hamano Wed, 18 Oct 2017 05:19:00 +0000 (14:19 +0900)

Merge branch 'mh/for-each-string-list-item-empty-fix' into maint

Code cmp.std.c nitpick.

* mh/for-each-string-list-item-empty-fix:
for_each_string_list_item: avoid undefined behavior for empty list

Merge branch 'tb/test-lint-echo-e' into maintJunio C Hamano Wed, 18 Oct 2017 05:18:59 +0000 (14:18 +0900)

Merge branch 'tb/test-lint-echo-e' into maint

The test linter has been taught that we do not like "echo -e".

* tb/test-lint-echo-e:
test-lint: echo -e (or -E) is not portable

Merge branch 'aw/gc-lockfile-fscanf-fix' into maintJunio C Hamano Wed, 18 Oct 2017 05:18:59 +0000 (14:18 +0900)

Merge branch 'aw/gc-lockfile-fscanf-fix' into maint

"git gc" tries to avoid running two instances at the same time by
reading and writing pid/host from and to a lock file; it used to
use an incorrect fscanf() format when reading, which has been
corrected.

* aw/gc-lockfile-fscanf-fix:
gc: call fscanf() with %<len>s, not %<len>c, when reading hostname

Merge branch 'tg/refs-allowed-flags' into maintJunio C Hamano Wed, 18 Oct 2017 05:18:58 +0000 (14:18 +0900)

Merge branch 'tg/refs-allowed-flags' into maint

API error-proofing which happens to also squelch warnings from GCC.

* tg/refs-allowed-flags:
refs: strip out not allowed flags from ref_transaction_update

Merge branch 'rs/archive-excluded-directory' into maintJunio C Hamano Wed, 18 Oct 2017 05:18:58 +0000 (14:18 +0900)

Merge branch 'rs/archive-excluded-directory' into maint

"git archive", especially when used with pathspec, stored an empty
directory in its output, even though Git itself never does so.
This has been fixed.

* rs/archive-excluded-directory:
archive: don't add empty directories to archives

Merge branch 'rk/commit-tree-make-F-verbatim' into... Junio C Hamano Wed, 18 Oct 2017 05:18:58 +0000 (14:18 +0900)

Merge branch 'rk/commit-tree-make-F-verbatim' into maint

Unlike "git commit-tree < file", "git commit-tree -F file" did not
pass the contents of the file verbatim and instead completed an
incomplete line at the end, if exists. The latter has been updated
to match the behaviour of the former.

* rk/commit-tree-make-F-verbatim:
commit-tree: do not complete line in -F input

Merge branch 'mh/packed-ref-store-prep' into maintJunio C Hamano Wed, 18 Oct 2017 05:18:58 +0000 (14:18 +0900)

Merge branch 'mh/packed-ref-store-prep' into maint

Fix regression to "gitk --bisect" by a recent update.

* mh/packed-ref-store-prep:
rev-parse: don't trim bisect refnames

Merge branch 'mm/send-email-cc-cruft' into maintJunio C Hamano Wed, 18 Oct 2017 05:18:58 +0000 (14:18 +0900)

Merge branch 'mm/send-email-cc-cruft' into maint

In addition to "cc: <a@dd.re.ss> # cruft", "cc: a@dd.re.ss # cruft"
was taught to "git send-email" as a valid way to tell it that it
needs to also send a carbon copy to <a@dd.re.ss> in the trailer
section.

* mm/send-email-cc-cruft:
send-email: don't use Mail::Address, even if available
send-email: fix garbage removal after address

Merge branch 'rs/strbuf-getwholeline-fix' into maintJunio C Hamano Wed, 18 Oct 2017 05:18:57 +0000 (14:18 +0900)

Merge branch 'rs/strbuf-getwholeline-fix' into maint

A helper function to read a single whole line into strbuf
mistakenly triggered OOM error at EOF under certain conditions,
which has been fixed.

* rs/strbuf-getwholeline-fix:
strbuf: clear errno before calling getdelim(3)

branch doc: sprinkle a few commas for readabilityJunio C Hamano Wed, 18 Oct 2017 02:34:31 +0000 (11:34 +0900)

branch doc: sprinkle a few commas for readability

The "--force" option can also be used when the named branch does not
yet exist, and the point of the option is the user can (re)point the
branch to the named commit even if it does. Add 'even' before 'if'
to clarify. Also, insert another comma after "Without -f" before
"the command refuses..." to make the text easier to parse.

Incidentally, this change should help certain versions of
docbook-xsl-stylesheets that render the original without any
whitespace between "-f" and "git".

Noticed-by: Lars Schneider <larsxschneider@gmail.com>
Helped-by: Jeff King <peff@peff.net>
Helped-by: Andreas Schwab <schwab@suse.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Preparing for rc2 continuesJunio C Hamano Wed, 18 Oct 2017 01:27:06 +0000 (10:27 +0900)

Preparing for rc2 continues

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

Merge branch 'jk/ref-filter-colors-fix'Junio C Hamano Wed, 18 Oct 2017 01:19:08 +0000 (10:19 +0900)

Merge branch 'jk/ref-filter-colors-fix'

This is the "theoretically more correct" approach of simply
stepping back to the state before plumbing commands started paying
attention to "color.ui" configuration variable.

Let's run with this one.

* jk/ref-filter-colors-fix:
tag: respect color.ui config
Revert "color: check color.ui in git_default_config()"
Revert "t6006: drop "always" color config tests"
Revert "color: make "always" the same as "auto" in config"

Merge branch 'js/rebase-i-final'Junio C Hamano Wed, 18 Oct 2017 01:19:07 +0000 (10:19 +0900)

Merge branch 'js/rebase-i-final'

Error message fix.

* js/rebase-i-final:
sequencer.c: unify an error message

doc: list filter-branch subdirectory-filter firstDavid Glasser Tue, 17 Oct 2017 09:45:15 +0000 (09:45 +0000)

doc: list filter-branch subdirectory-filter first

The docs claim that filters are applied in the listed order, so
subdirectory-filter should come first.

For consistency, apply the same order to the SYNOPSIS and the script's usage, as
well as the switch while parsing arguments.

Add missing --prune-empty to the script's usage.

Signed-off-by: David Glasser <glasser@davidglasser.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

sequencer.c: unify an error messageRalf Thielow Tue, 17 Oct 2017 16:20:50 +0000 (18:20 +0200)

sequencer.c: unify an error message

Change an error message in sequencer.c for the case that
we could not write to a file to match other instances.

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

fetch doc: src side of refspec could be full SHA-1Junio C Hamano Tue, 17 Oct 2017 02:31:06 +0000 (11:31 +0900)

fetch doc: src side of refspec could be full SHA-1

Since a9d34933 ("Merge branch 'fm/fetch-raw-sha1'", 2015-06-01) we
allow to fetch by an object name when the other side accepts such a
request, but we never updated the documentation to match.

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

l10n: Update Catalan translationJordi Mas Tue, 17 Oct 2017 12:28:23 +0000 (13:28 +0100)

l10n: Update Catalan translation

Signed-off-by: Jordi Mas <jmas@softcatala.org>

l10n: ko.po: Update Korean translationChangwoo Ryu Tue, 17 Oct 2017 07:20:34 +0000 (16:20 +0900)

l10n: ko.po: Update Korean translation

Signed-off-by: Changwoo Ryu <cwryu@debian.org>

tag: respect color.ui configJeff King Fri, 13 Oct 2017 17:26:02 +0000 (13:26 -0400)

tag: respect color.ui config

Since 11b087adfd (ref-filter: consult want_color() before
emitting colors, 2017-07-13), we expect that setting
"color.ui" to "always" will enable color tag formats even
without a tty. As that commit was built on top of
136c8c8b8f (color: check color.ui in git_default_config(),
2017-07-13) from the same series, we didn't need to touch
tag's config parsing at all.

However, since we reverted 136c8c8b8f, we now need to
explicitly call git_color_default_config() to make this
work.

Let's do so, and also restore the test dropped in 0c88bf5050
(provide --color option for all ref-filter users,
2017-10-03). That commit swapped out our "color.ui=always"
test for "--color" in preparation for "always" going away.
But since it is here to stay, we should test both cases.

Note that for-each-ref also lost its color.ui support as
part of reverting 136c8c8b8f. But as a plumbing command, it
should _not_ respect the color.ui config. Since it also
gained a --color option in 0c88bf5050, that's the correct
way to ask it for color. We'll continue to test that, and
confirm that "color.ui" is not respected.

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

Revert "color: check color.ui in git_default_config()"Jeff King Fri, 13 Oct 2017 17:24:31 +0000 (13:24 -0400)

Revert "color: check color.ui in git_default_config()"

This reverts commit 136c8c8b8fa39f1315713248473dececf20f8fe7.

That commit was trying to address a bug caused by 4c7f1819b3
(make color.ui default to 'auto', 2013-06-10), in which
plumbing like diff-tree defaulted to "auto" color, but did
not respect a "color.ui" directive to disable it.

But it also meant that we started respecting "color.ui" set
to "always". This was a known problem, but 4c7f1819b3 argued
that nobody ought to be doing that. However, that turned out
to be wrong, and we got a number of bug reports related to
"add -p" regressing in v2.14.2.

Let's revert 136c8c8b8, fixing the regression to "add -p".
This leaves the problem from 4c7f1819b3 unfixed, but:

1. It's a pretty obscure problem in the first place. I
only noticed it while working on the color code, and we
haven't got a single bug report or complaint about it.

2. We can make a more moderate fix on top by respecting
"never" but not "always" for plumbing commands. This
is just the minimal fix to go back to the working state
we had before v2.14.2.

Note that this isn't a pure revert. We now have a test in
t3701 which shows off the "add -p" regression. This can be
flipped to success.

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

Revert "t6006: drop "always" color config tests"Jeff King Fri, 13 Oct 2017 17:23:41 +0000 (13:23 -0400)

Revert "t6006: drop "always" color config tests"

This reverts commit c5bdfe677cfab5b2e87771c35565d44d3198efda.

That commit was done primarily to prepare for the weakening
of "always" in 6be4595edb (color: make "always" the same as
"auto" in config, 2017-10-03). But since we've now reverted
6be4595edb, there's no need for us to remove "-c
color.ui=always" from the tests. And in fact it's a good
idea to restore these tests, to make sure that "always"
continues to work.

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

Revert "color: make "always" the same as "auto" in... Jeff King Fri, 13 Oct 2017 17:23:24 +0000 (13:23 -0400)

Revert "color: make "always" the same as "auto" in config"

This reverts commit 6be4595edb8e5b616c6e8b9fbc78b0f831fa2a87.

That commit weakened the "always" setting of color config so
that it acted as "auto". This was meant to solve regressions
in v2.14.2 in which setting "color.ui=always" in the on-disk
config broke scripts like add--interactive, because the
plumbing diff commands began to generate color output.

This was due to 136c8c8b8f (color: check color.ui in
git_default_config(), 2017-07-13), which was in turn trying
to fix issues caused by 4c7f1819b3 (make color.ui default to
'auto', 2013-06-10). But in weakening "always", we created
even more problems, as people expect to be able to use "git
-c color.ui=always" to force color (especially because some
commands don't have their own --color flag). We can fix that
by special-casing the command-line "-c", but now things are
getting pretty confusing.

Instead of piling hacks upon hacks, let's start peeling off
the hacks. The first step is dropping the weakening of
"always", which this revert does.

Note that we could actually revert the whole series merged
in by da15b78e52642bd45fd5513ab0000fdf2e58a6f4. Most of that
series consists of preparations to the tests to handle the
weakening of "-c color.ui=always". But it's worth keeping
for a few reasons:

- there are some other preparatory cleanups, like
e433749d86 (test-terminal: set TERM=vt100, 2017-10-03)

- it adds "--color" options more consistently in
0c88bf5050 (provide --color option for all ref-filter
users, 2017-10-03)

- some of the cases dropping "-c" end up being more robust
and realistic tests, as in 01c94e9001 (t7508: use
test_terminal for color output, 2017-10-03)

- the preferred tool for overriding config is "--color",
and we should be modeling that consistently

We can individually revert the few commits necessary to
restore some useful tests (which will be done on top of this
patch).

Note that this isn't a pure revert; we'll keep the test
added in t3701, but mark it as failure for now.

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

Merge branch 'jk/ui-color-always-to-auto-maint' (early... Junio C Hamano Tue, 17 Oct 2017 06:08:31 +0000 (15:08 +0900)

Merge branch 'jk/ui-color-always-to-auto-maint' (early part) into jk/ref-filter-colors-fix-maint

* 'jk/ui-color-always-to-auto-maint' (early part):
color: make "always" the same as "auto" in config
provide --color option for all ref-filter users
t3205: use --color instead of color.branch=always
t3203: drop "always" color test
t6006: drop "always" color config tests
t7502: use diff.noprefix for --verbose test
t7508: use test_terminal for color output
t3701: use test-terminal to collect color output
t4015: prefer --color to -c color.diff=always
test-terminal: set TERM=vt100

Crawling towards -rc2Junio C Hamano Tue, 17 Oct 2017 04:31:31 +0000 (13:31 +0900)

Crawling towards -rc2

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

Merge branch 'sb/diff-color-move'Junio C Hamano Tue, 17 Oct 2017 04:29:19 +0000 (13:29 +0900)

Merge branch 'sb/diff-color-move'

A recently added "--color-moved" feature of "diff" fell into
infinite loop when ignoring whitespace changes, which has been
fixed.

* sb/diff-color-move:
diff: fix infinite loop with --color-moved --ignore-space-change

Merge branch 'js/rebase-i-final'Junio C Hamano Tue, 17 Oct 2017 04:29:19 +0000 (13:29 +0900)

Merge branch 'js/rebase-i-final'

Error message fix.

* js/rebase-i-final:
sequencer.c: fix and unify error messages in rearrange_squash()

Merge branch 'jc/doc-checkout'Junio C Hamano Tue, 17 Oct 2017 04:29:19 +0000 (13:29 +0900)

Merge branch 'jc/doc-checkout'

Doc update.

* jc/doc-checkout:
checkout doc: clarify command line args for "checkout paths" mode

column: show auto columns when pager is activeKevin Daudt Mon, 16 Oct 2017 18:35:11 +0000 (20:35 +0200)

column: show auto columns when pager is active

When columns are set to automatic for git tag and the output is
paginated by git, the output is a single column instead of multiple
columns.

Standard behaviour in git is to honor auto values when the pager is
active, which happens for example with commands like git log showing
colors when being paged.

Since ff1e72483 (tag: change default of `pager.tag` to "on",
2017-08-02), the pager has been enabled by default, exposing this
problem to more people.

finalize_colopts in column.c only checks whether the output is a TTY to
determine if columns should be enabled with columns set to auto. Also
check if the pager is active.

Adding a test for git column is possible but requires some care to work
around a race on stdin. See commit 18d8c2693 (test_terminal: redirect
child process' stdin to a pty, 2015-08-04). Test git tag instead, since
that does not involve stdin, and since that was the original motivation
for this patch.

Helped-by: Rafael Ascensão <rafa.almas@gmail.com>
Signed-off-by: Kevin Daudt <me@ikke.info>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

l10n: es.po: v2.15.0 round 2Christopher Díaz Riveros Tue, 17 Oct 2017 02:17:30 +0000 (21:17 -0500)

l10n: es.po: v2.15.0 round 2

Spanish translation for v2.15.0

Signed-off-by: Christopher Díaz Riveros <chrisadr@gentoo.org>

l10n: git.pot: v2.15.0 round 2 (2 new, 2 removed)Jiang Xin Tue, 17 Oct 2017 01:49:23 +0000 (09:49 +0800)

l10n: git.pot: v2.15.0 round 2 (2 new, 2 removed)

Generate po/git.pot from v2.15.0-rc1 for git v2.15.0 l10n round 2.

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

Merge branch 'master' of git://github.com/git-l10n... Jiang Xin Tue, 17 Oct 2017 01:44:24 +0000 (09:44 +0800)

Merge branch 'master' of git://github.com/git-l10n/git-po

* 'master' of git://github.com/git-l10n/git-po:
l10n: ru.po: update Russian translation
l10n: bg.po: Updated Bulgarian translation (3245t)
l10n: sv.po: Update Swedish translation (3245t0f0u)
l10n: vi.po(3245t): Updated Vietnamese translation for v2.15.0
l10n: es.po: Update translation v2.15.0 round 1
l10n: git.pot: v2.15.0 round 1 (68 new, 36 removed)
l10n: es.po: spanish added to TEAMS
l10n: es.po: initial Spanish version git 2.14.0

diff: fix infinite loop with --color-moved --ignore... Jeff King Fri, 13 Oct 2017 00:18:37 +0000 (20:18 -0400)

diff: fix infinite loop with --color-moved --ignore-space-change

The --color-moved code uses next_byte() to advance through
the blob contents. When the user has asked to ignore
whitespace changes, we try to collapse any whitespace change
down to a single space.

However, we enter the conditional block whenever we see the
IGNORE_WHITESPACE_CHANGE flag, even if the next byte isn't
whitespace.

This means that the combination of "--color-moved and
--ignore-space-change" was completely broken. Worse, because
we return from next_byte() without having advanced our
pointer, the function makes no forward progress in the
buffer and loops infinitely.

Fix this by entering the conditional only when we actually
see whitespace. We can apply this also to the
IGNORE_WHITESPACE change. That code path isn't buggy
(because it falls through to returning the next
non-whitespace byte), but it makes the logic more clear if
we only bother to look at whitespace flags after seeing that
the next byte is whitespace.

Reported-by: Orgad Shaneh <orgads@gmail.com>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

sequencer.c: fix and unify error messages in rearrange_... Ralf Thielow Sun, 15 Oct 2017 17:07:42 +0000 (19:07 +0200)

sequencer.c: fix and unify error messages in rearrange_squash()

When the write opertion fails, we write that we could
not read. Change the error message to match the operation
and remove the full stop at the end.

When ftruncate() fails, we write that we couldn't finish
the operation on the todo file. It is more accurate to write
that we couldn't truncate as we do in other calls of ftruncate().

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

l10n: ru.po: update Russian translationDimitriy Ryazantcev Sun, 15 Oct 2017 10:14:45 +0000 (13:14 +0300)

l10n: ru.po: update Russian translation

Signed-off-by: Dimitriy Ryazantcev <dimitriy.ryazantcev@gmail.com>

Merge branch 'master' of git://github.com/alshopov... Jiang Xin Sat, 14 Oct 2017 13:24:21 +0000 (21:24 +0800)

Merge branch 'master' of git://github.com/alshopov/git-po

* 'master' of git://github.com/alshopov/git-po:
l10n: bg.po: Updated Bulgarian translation (3245t)

l10n: bg.po: Updated Bulgarian translation (3245t)Alexander Shopov Sat, 14 Oct 2017 09:45:28 +0000 (11:45 +0200)

l10n: bg.po: Updated Bulgarian translation (3245t)

Signed-off-by: Alexander Shopov <ash@kambanaria.org>

revision: quit pruning diff more quickly when possibleJeff King Fri, 13 Oct 2017 15:27:45 +0000 (11:27 -0400)

revision: quit pruning diff more quickly when possible

When the revision traversal machinery is given a pathspec,
we must compute the parent-diff for each commit to determine
which ones are TREESAME. We set the QUICK diff flag to avoid
looking at more entries than we need; we really just care
whether there are any changes at all.

But there is one case where we want to know a bit more: if
--remove-empty is set, we care about finding cases where the
change consists only of added entries (in which case we may
prune the parent in try_to_simplify_commit()). To cover that
case, our file_add_remove() callback does not quit the diff
upon seeing an added entry; it keeps looking for other types
of entries.

But this means when --remove-empty is not set (and it is not
by default), we compute more of the diff than is necessary.
You can see this in a pathological case where a commit adds
a very large number of entries, and we limit based on a
broad pathspec. E.g.:

perl -e '
chomp(my $blob = `git hash-object -w --stdin </dev/null`);
for my $a (1..1000) {
for my $b (1..1000) {
print "100644 $blob\t$a/$b\n";
}
}
' | git update-index --index-info
git commit -qm add

git rev-list HEAD -- .

This case takes about 100ms now, but after this patch only
needs 6ms. That's not a huge improvement, but it's easy to
get and it protects us against even more pathological cases
(e.g., going from 1 million to 10 million files would take
ten times as long with the current code, but not increase at
all after this patch).

This is reported to minorly speed-up pathspec limiting in
real world repositories (like the 100-million-file Windows
repository), but probably won't make a noticeable difference
outside of pathological setups.

This patch actually covers the case without --remove-empty,
and the case where we see only deletions. See the in-code
comment for details.

Note that we have to add a new member to the diff_options
struct so that our callback can see the value of
revs->remove_empty_trees. This callback parameter could be
passed to the "add_remove" and "change" callbacks, but
there's not much point. They already receive the
diff_options struct, and doing it this way avoids having to
update the function signature of the other callbacks
(arguably the format_callback and output_prefix functions
could benefit from the same simplification).

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

pull: pass --signoff/--no-signoff to "git merge"W. Trevor King Thu, 12 Oct 2017 18:35:42 +0000 (11:35 -0700)

pull: pass --signoff/--no-signoff to "git merge"

merge can take --signoff, but without pull passing --signoff down, it
is inconvenient to use; allow 'pull' to take the option and pass it
through.

The order of options in merge-options.txt is mostly alphabetical by
long option since 7c85d274 (Documentation/merge-options.txt: order
options in alphabetical groups, 2009-10-22). The long-option bit
didn't make it into the commit message, but it's under the fold in
[1]. I've put --signoff between --log and --stat to preserve the
alphabetical order.

[1]: https://public-inbox.org/git/87iqe7zspn.fsf@jondo.cante.net/

Signed-off-by: W. Trevor King <wking@tremily.us>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

sha1_name: minimize OID comparisons during disambiguationDerrick Stolee Thu, 12 Oct 2017 12:02:20 +0000 (08:02 -0400)

sha1_name: minimize OID comparisons during disambiguation

Minimize OID comparisons during disambiguation of packfile OIDs.

Teach git to use binary search with the full OID to find the object's
position (or insertion position, if not present) in the pack-index.
The object before and immediately after (or the one at the insertion
position) give the maximum common prefix. No subsequent linear search
is required.

Take care of which two to inspect, in case the object id exists in the
packfile.

If the input to find_unique_abbrev_r() is a partial prefix, then the
OID used for the binary search is padded with zeroes so the object will
not exist in the repo (with high probability) and the same logic
applies.

This commit completes a series of three changes to OID abbreviation
code, and the overall change can be seen using standard commands for
large repos. Below we report performance statistics for perf test 4211.6
from p4211-line-log.sh using three copies of the Linux repo:

| Packs | Loose | HEAD~3 | HEAD | Rel% |
|-------|--------|----------|----------|-------|
| 1 | 0 | 41.27 s | 38.93 s | -4.8% |
| 24 | 0 | 98.04 s | 91.35 s | -5.7% |
| 23 | 323952 | 117.78 s | 112.18 s | -4.8% |

Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Reviewed-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

sha1_name: parse less while finding common prefixDerrick Stolee Thu, 12 Oct 2017 12:02:19 +0000 (08:02 -0400)

sha1_name: parse less while finding common prefix

Create get_hex_char_from_oid() to parse oids one hex character at a
time. This prevents unnecessary copying of hex characters in
extend_abbrev_len() when finding the length of a common prefix.

Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Reviewed-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

sha1_name: unroll len loop in find_unique_abbrev_r()Derrick Stolee Sun, 8 Oct 2017 18:49:40 +0000 (14:49 -0400)

sha1_name: unroll len loop in find_unique_abbrev_r()

Unroll the while loop inside find_unique_abbrev_r to avoid iterating
through all loose objects and packfiles multiple times when the short
name is longer than the predicted length.

Instead, inspect each object that collides with the estimated
abbreviation to find the longest common prefix.

The focus of this change is to refactor the existing method in a way
that clearly does not change the current behavior. In some cases, the
new method is slower than the previous method. Later changes will
correct all performance loss.

Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Reviewed-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

p4211-line-log.sh: add log --online --raw --parents... Derrick Stolee Sun, 8 Oct 2017 18:49:39 +0000 (14:49 -0400)

p4211-line-log.sh: add log --online --raw --parents perf test

Add a new perf test for testing the performance of log while computing
OID abbreviations. Using --oneline --raw and --parents options maximizes
the number of OIDs to abbreviate while still spending some time computing
diffs.

Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Reviewed-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Documentation/merge-options.txt: describe -S/--gpg... W. Trevor King Thu, 12 Oct 2017 09:02:17 +0000 (02:02 -0700)

Documentation/merge-options.txt: describe -S/--gpg-sign for 'pull'

Pull has supported these since ea230d8 (pull: add the --gpg-sign
option, 2014-02-10). Insert in long-option alphabetical order
following 7c85d274 (Documentation/merge-options.txt: order options
in alphabetical groups, 2009-10-22).

Signed-off-by: W. Trevor King <wking@tremily.us>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

l10n: sv.po: Update Swedish translation (3245t0f0u)Peter Krefting Wed, 11 Oct 2017 10:35:11 +0000 (11:35 +0100)

l10n: sv.po: Update Swedish translation (3245t0f0u)

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

merge-ours: do not use cmd_*() as a subroutineJunio C Hamano Tue, 10 Oct 2017 03:04:48 +0000 (12:04 +0900)

merge-ours: do not use cmd_*() as a subroutine

The call to cmd_diff_index() "git merge-ours" makes has been working
by accident that the function did not call exit(3), and the caller
exited almost immediately after making a call, but it sets a bad
precedent for people to cut and paste.

For finding out if the index exactly matches the HEAD (or a given
tree-ish), there is index_differs_from() which is exactly written
for that purpose.

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

describe: do not use cmd_*() as a subroutineJunio C Hamano Tue, 10 Oct 2017 03:42:58 +0000 (12:42 +0900)

describe: do not use cmd_*() as a subroutine

The cmd_foo() function is a moral equivalent of 'main' for a Git
subcommand 'git foo', and as such, it is allowed to do many things
that make it unsuitable to be called as a subroutine, including

- call exit(3) to terminate the process;

- allocate resource held and used throughout its lifetime, without
releasing it upon return/exit;

- rely on global variables being initialized at program startup,
and update them as needed, making another clean invocation of the
function impossible.

The call to cmd_diff_index() "git describe" makes has been working
by accident that the function did not call exit(3); it sets a bad
precedent for people to cut and paste.

We could invoke it via the run_command() interface, but the diff
family of commands have helper functions in diff-lib.c that are
meant to be usable as subroutines, and using the latter does not
make the resulting code all that longer. Use it.

Note that there is also an invocation of cmd_name_rev() at the end;
"git describe --contains" massages its command line arguments to be
suitable for "git name-rev" invocation and jumps to it, never to
regain control. This call is left as-is as an exception to the
rule. When we start to allow calling name-rev repeatedly as a
helper function, we would be able to remove this call as well.

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

checkout doc: clarify command line args for "checkout... Junio C Hamano Wed, 11 Oct 2017 02:21:03 +0000 (11:21 +0900)

checkout doc: clarify command line args for "checkout paths" mode

There are "git checkout [-p][<tree-ish>][--][<paths>...]" in the
SYNOPSIS section, and "git checkout [-p][<tree-ish>][--]<paths>..."
as the header for the section that explains the "check out paths
from index/tree-ish" mode. It is unclear if we require at least one
path, or it is entirely optional.

Actually, both are wrong. Without the "-p(atch)" option, you must
have <pathspec> (otherwise, with a commit that is a <tree-ish>, you
would be checking out that commit to build a new history on top of
it). With it, it is already clear that you are checking out paths,
it is optional. In other words, you cannot omit both.

The source of the confusion is that -p(atch) is described as if it
is just another "optional" part and its description is lumped
together with the non patch mode, even though the actual end user
experience is vastly different.

Let's split the entry into two, and describe the regular mode and
the patch mode separately. This allows us to make it clear that the
regular mode MUST be given at least one pathspec, that the patch
mode can be invoked with either '-p' or '--patch' but one of these
must be given, and that the pathspec is entirely optional in the
patch mode.

Also, revamp the explanation of "checkout paths" by removing
extraneous description at the beginning, that says "checking out
paths is not checking out a branch". Explaining what it is for and
when the user wants to use it upfront is the most direct way to help
the readers.

Noticed-by: Robert P J Day
Helped-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Git 2.15-rc1 v2.15.0-rc1Junio C Hamano Wed, 11 Oct 2017 05:54:04 +0000 (14:54 +0900)

Git 2.15-rc1

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

Merge branch 'ls/filter-process-delayed'Junio C Hamano Wed, 11 Oct 2017 05:52:24 +0000 (14:52 +0900)

Merge branch 'ls/filter-process-delayed'

Bugfixes to an already graduated series.

* ls/filter-process-delayed:
write_entry: untangle symlink and regular-file cases
write_entry: avoid reading blobs in CE_RETRY case
write_entry: fix leak when retrying delayed filter
entry.c: check if file exists after checkout
entry.c: update cache entry only for existing files

Merge branch 'ds/avoid-overflow-in-midpoint-computation'Junio C Hamano Wed, 11 Oct 2017 05:52:24 +0000 (14:52 +0900)

Merge branch 'ds/avoid-overflow-in-midpoint-computation'

Code clean-up.

* ds/avoid-overflow-in-midpoint-computation:
cleanup: fix possible overflow errors in binary search

Merge branch 'tb/complete-describe'Junio C Hamano Wed, 11 Oct 2017 05:52:23 +0000 (14:52 +0900)

Merge branch 'tb/complete-describe'

Docfix.

* tb/complete-describe:
completion: add --broken and --dirty to describe

Merge branch 'sb/test-cmp-expect-actual'Junio C Hamano Wed, 11 Oct 2017 05:52:23 +0000 (14:52 +0900)

Merge branch 'sb/test-cmp-expect-actual'

Test tweak.

* sb/test-cmp-expect-actual:
tests: fix diff order arguments in test_cmp

Merge branch 'jk/refs-df-conflict'Junio C Hamano Wed, 11 Oct 2017 05:52:23 +0000 (14:52 +0900)

Merge branch 'jk/refs-df-conflict'

An ancient bug that made Git misbehave with creation/renaming of
refs has been fixed.

* jk/refs-df-conflict:
refs_resolve_ref_unsafe: handle d/f conflicts for writes
t3308: create a real ref directory/file conflict

Merge branch 'rs/rs-mailmap'Junio C Hamano Wed, 11 Oct 2017 05:52:23 +0000 (14:52 +0900)

Merge branch 'rs/rs-mailmap'

* rs/rs-mailmap:
.mailmap: normalize name for René Scharfe

Merge branch 'rs/fsck-null-return-from-lookup'Junio C Hamano Wed, 11 Oct 2017 05:52:23 +0000 (14:52 +0900)

Merge branch 'rs/fsck-null-return-from-lookup'

Improve behaviour of "git fsck" upon finding a missing object.

* rs/fsck-null-return-from-lookup:
fsck: handle NULL return of lookup_blob() and lookup_tree()

Merge branch 'jk/sha1-loose-object-info-fix'Junio C Hamano Wed, 11 Oct 2017 05:52:22 +0000 (14:52 +0900)

Merge branch 'jk/sha1-loose-object-info-fix'

Leakfix and futureproofing.

* jk/sha1-loose-object-info-fix:
sha1_loose_object_info: handle errors from unpack_sha1_rest

Merge branch 'hn/string-list-doc'Junio C Hamano Wed, 11 Oct 2017 05:52:22 +0000 (14:52 +0900)

Merge branch 'hn/string-list-doc'

Docfix.

* hn/string-list-doc:
api-argv-array.txt: remove broken link to string-list API

Merge branch 'tb/show-trailers-in-ref-filter'Junio C Hamano Wed, 11 Oct 2017 05:52:22 +0000 (14:52 +0900)

Merge branch 'tb/show-trailers-in-ref-filter'

"git for-each-ref --format=..." learned a new format element,
%(trailers), to show only the commit log trailer part of the log
message.

* tb/show-trailers-in-ref-filter:
ref-filter.c: parse trailers arguments with %(contents) atom
ref-filter.c: use trailer_opts to format trailers
t6300: refactor %(trailers) tests
doc: use "`<literal>`"-style quoting for literal strings
doc: 'trailers' is the preferred way to format trailers
t4205: unfold across multiple lines

Merge branch 'jt/oidmap'Junio C Hamano Wed, 11 Oct 2017 05:52:22 +0000 (14:52 +0900)

Merge branch 'jt/oidmap'

Introduce a new "oidmap" API and rewrite oidset to use it.

* jt/oidmap:
oidmap: map with OID as key

Merge branch 'jr/hash-migration-plan-doc'Junio C Hamano Wed, 11 Oct 2017 05:52:22 +0000 (14:52 +0900)

Merge branch 'jr/hash-migration-plan-doc'

Lay out plans for weaning us off of SHA-1.

* jr/hash-migration-plan-doc:
technical doc: add a design doc for hash function transition

Merge branch 'master' of https://github.com/vnwildman/gitJiang Xin Wed, 11 Oct 2017 00:08:10 +0000 (08:08 +0800)

Merge branch 'master' of https://github.com/vnwildman/git

* 'master' of https://github.com/vnwildman/git:
l10n: vi.po(3245t): Updated Vietnamese translation for v2.15.0

run-command: add hint when a hook is ignoredDamien Marié Fri, 6 Oct 2017 08:07:55 +0000 (08:07 +0000)

run-command: add hint when a hook is ignored

When an hook is present but the file is not set as executable then git will
ignore the hook.
For now this is silent which can be confusing.

This commit adds this warning to improve the situation:

hint: The 'pre-commit' hook was ignored because it's not set as executable.
hint: You can disable this warning with `git config advice.ignoredHook false`

To allow the old use-case of enabling/disabling hooks via the executable flag a
new setting is introduced: advice.ignoredHook.

Signed-off-by: Damien Marié <damien@dam.io>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

write_entry: untangle symlink and regular-file casesJeff King Mon, 9 Oct 2017 17:50:05 +0000 (13:50 -0400)

write_entry: untangle symlink and regular-file cases

The write_entry() function switches on the mode of the entry
we're going to write out. The cases for S_IFLNK and S_IFREG
are lumped together. In earlier versions of the code, this
made some sense. They have a shared preamble (which reads
the blob content), a short type-specific body, and a shared
conclusion (which writes out the file contents; always for
S_IFREG and only sometimes for S_IFLNK).

But over time this has grown to make less sense. The preamble
now has conditional bits for each type, and the S_IFREG body
has grown a lot more complicated. It's hard to follow the
logic of which code is running for which mode.

Let's give each mode its own case arm. We will still share
the conclusion code, which means we now jump to it with a
goto. Ideally we'd pull that shared code into its own
function, but it touches so much internal state in the
write_entry() function that the end result is actually
harder to follow than the goto.

While we're here, we'll touch up a few bits of whitespace to
make the beginning and endings of the cases easier to read.

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

write_entry: avoid reading blobs in CE_RETRY caseJeff King Mon, 9 Oct 2017 17:48:52 +0000 (13:48 -0400)

write_entry: avoid reading blobs in CE_RETRY case

When retrying a delayed filter-process request, we don't
need to send the blob to the filter a second time. However,
we read it unconditionally into a buffer, only to later
throw away that buffer. We can make this more efficient by
skipping the read in the first place when it isn't
necessary.

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

write_entry: fix leak when retrying delayed filterJeff King Mon, 9 Oct 2017 17:48:24 +0000 (13:48 -0400)

write_entry: fix leak when retrying delayed filter

When write_entry() retries a delayed filter request, we
don't need to send the blob content to the filter again, and
set the pointer to NULL. But doing so means we leak the
contents we read earlier from read_blob_entry(). Let's make
sure to free it before dropping the pointer.

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

cleanup: fix possible overflow errors in binary searchDerrick Stolee Sun, 8 Oct 2017 18:29:37 +0000 (14:29 -0400)

cleanup: fix possible overflow errors in binary search

A common mistake when writing binary search is to allow possible
integer overflow by using the simple average:

mid = (min + max) / 2;

Instead, use the overflow-safe version:

mid = min + (max - min) / 2;

This translation is safe since the operation occurs inside a loop
conditioned on "min < max". The included changes were found using
the following git grep:

git grep '/ *2;' '*.c'

Making this cleanup will prevent future review friction when a new
binary search is contructed based on existing code.

Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Reviewed-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

Merge branch 'js/rebase-i-final'Junio C Hamano Mon, 9 Oct 2017 09:59:16 +0000 (18:59 +0900)

Merge branch 'js/rebase-i-final'

* js/rebase-i-final:
i18n: add a missing space in message

i18n: add a missing space in messageJean-Noel Avila Sun, 8 Oct 2017 12:18:39 +0000 (14:18 +0200)

i18n: add a missing space in message

The message spans over 2 lines but the C conconcatenation does not add
the needed space between the two lines.

Signed-off-by: Jean-Noel Avila <jn.avila@free.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>

l10n: vi.po(3245t): Updated Vietnamese translation... Tran Ngoc Quan Mon, 9 Oct 2017 08:13:05 +0000 (15:13 +0700)

l10n: vi.po(3245t): Updated Vietnamese translation for v2.15.0

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

l10n: es.po: Update translation v2.15.0 round 1Christopher Díaz Sun, 8 Oct 2017 16:30:11 +0000 (11:30 -0500)

l10n: es.po: Update translation v2.15.0 round 1

Signed-off-by: Christopher Díaz <christopher.diaz.riv@gmail.com>

Merge branch 'maint' of git://github.com/git-l10n/git-poJiang Xin Sun, 8 Oct 2017 07:21:22 +0000 (15:21 +0800)

Merge branch 'maint' of git://github.com/git-l10n/git-po

* 'maint' of git://github.com/git-l10n/git-po:
l10n: es.po: spanish added to TEAMS
l10n: es.po: initial Spanish version git 2.14.0

l10n: git.pot: v2.15.0 round 1 (68 new, 36 removed)Jiang Xin Sun, 8 Oct 2017 07:12:45 +0000 (15:12 +0800)

l10n: git.pot: v2.15.0 round 1 (68 new, 36 removed)

Generate po/git.pot from commit d35688db19 ("Prepare for -rc1",
2017-10-07) for git v2.15.0 l10n round 1.

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

submodule: port submodule subcommand 'status' from... Prathamesh Chavan Fri, 6 Oct 2017 13:24:15 +0000 (18:54 +0530)

submodule: port submodule subcommand 'status' from shell to C

This aims to make git-submodule 'status' a built-in. Hence, the function
cmd_status() is ported from shell to C. This is done by introducing
four functions: module_status(), submodule_status_cb(),
submodule_status() and print_status().

The function module_status() acts as the front-end of the subcommand.
It parses subcommand's options and then calls the function
module_list_compute() for computing the list of submodules. Then
this functions calls for_each_listed_submodule() looping through the
list obtained.

Then for_each_listed_submodule() calls submodule_status_cb() for each of
the submodule in its list. The function submodule_status_cb() calls
submodule_status() after passing appropriate arguments to the funciton.
Function submodule_status() is responsible for generating the status
each submodule it is called for, and then calls print_status().

Finally, the function print_status() handles the printing of submodule's
status.

Function set_name_rev() is also ported from git-submodule to the
submodule--helper builtin function compute_rev_name(), which now
generates the value of the revision name as required.

Mentored-by: Christian Couder <christian.couder@gmail.com>
Mentored-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Prathamesh Chavan <pc44800@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>