git/git.git
2 years agotag: clarify in the doc that a tag can refer to a non-commit object
Robert P. J. Day [Fri, 25 May 2018 09:45:09 +0000 (05:45 -0400)]
tag: clarify in the doc that a tag can refer to a non-commit object

Reword "man git-tag" to clarify that a tag can refer directly to an
arbitrary object, not just a commit object.

Signed-off-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoGit 2.17 v2.17.0
Junio C Hamano [Mon, 2 Apr 2018 17:13:35 +0000 (10:13 -0700)]
Git 2.17

Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoMerge tag 'l10n-2.17.0-rnd1' of git://github.com/git-l10n/git-po
Junio C Hamano [Mon, 2 Apr 2018 17:12:38 +0000 (10:12 -0700)]
Merge tag 'l10n-2.17.0-rnd1' of git://github.com/git-l10n/git-po

l10n for Git 2.17.0 round 1

* tag 'l10n-2.17.0-rnd1' of git://github.com/git-l10n/git-po:
  l10n: de.po: translate 132 new messages
  l10n: zh_CN: review for git v2.17.0 l10n round 1
  l10n: zh_CN: for git v2.17.0 l10n round 1
  l10n: ko.po: Update Korean translation
  l10n: fr.po: v2.17.0 no fuzzy
  l10n: sv.po: Update Swedish translation (3376t0f0u)
  l10n: Update Catalan translation
  l10n: fr.po v2.17.0 round 1
  l10n: vi.po(3376t): Updated Vietnamese translation for v2.17
  l10n: bg.po: Updated Bulgarian translation (3376t)
  l10n: es.po: Update Spanish translation 2.17.0
  l10n: git.pot: v2.17.0 round 1 (132 new, 44 removed)
  l10n: es.po: fixes to Spanish translation

3 years agoMerge branch 'pw/add-p-single'
Junio C Hamano [Mon, 2 Apr 2018 17:10:54 +0000 (10:10 -0700)]
Merge branch 'pw/add-p-single'

Hotfix.

* pw/add-p-single:
  add -p: fix 2.17.0-rc* regression due to moved code

3 years agoadd -p: fix 2.17.0-rc* regression due to moved code
Ævar Arnfjörð Bjarmason [Sat, 31 Mar 2018 12:50:58 +0000 (12:50 +0000)]
add -p: fix 2.17.0-rc* regression due to moved code

Fix a regression in 88f6ffc1c2 ("add -p: only bind search key if
there's more than one hunk", 2018-02-13) which is present in
2.17.0-rc*, but not 2.16.0.

In Perl, regex variables like $1 always refer to the last regex
match. When the aforementioned change added a new regex match between
the old match and the corresponding code that was expecting $1, the $1
variable would always be undef, since the newly inserted regex match
doesn't have any captures.

As a result the "/" feature to search for a string in a hunk by regex
completely broke, on git.git:

    $ perl -pi -e 's/Git/Tig/g' README.md
    $ ./git --exec-path=$PWD add -p
    [..]
    Stage this hunk [y,n,q,a,d,j,J,g,/,s,e,?]? s
    Split into 4 hunks.
    [...]
    Stage this hunk [y,n,q,a,d,j,J,g,/,s,e,?]? /Many
    Use of uninitialized value $1 in string eq at /home/avar/g/git/git-add--interactive line 1568, <STDIN> line 1.
    search for regex? Many

I.e. the initial "/regex" command wouldn't work, and would always emit
a warning and ask again for a regex, now it works as intended again.

Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agol10n: de.po: translate 132 new messages
Ralf Thielow [Fri, 16 Mar 2018 17:41:16 +0000 (18:41 +0100)]
l10n: de.po: translate 132 new messages

Translate 132 new messages came from git.pot update in abc8de64d (l10n:
git.pot: v2.17.0 round 1 (132 new, 44 removed)).

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
3 years agoMerge branch 'jh/partial-clone'
Junio C Hamano [Thu, 29 Mar 2018 22:39:59 +0000 (15:39 -0700)]
Merge branch 'jh/partial-clone'

Hotfix.

* jh/partial-clone:
  upload-pack: disable object filtering when disabled by config
  unpack-trees: release oid_array after use in check_updates()

3 years agoupload-pack: disable object filtering when disabled by config
Jonathan Nieder [Wed, 28 Mar 2018 20:33:03 +0000 (13:33 -0700)]
upload-pack: disable object filtering when disabled by config

When upload-pack gained partial clone support (v2.17.0-rc0~132^2~12,
2017-12-08), it was guarded by the uploadpack.allowFilter config item
to allow server operators to control when they start supporting it.

That config item didn't go far enough, though: it controls whether the
'filter' capability is advertised, but if a (custom) client ignores
the capability advertisement and passes a filter specification anyway,
the server would handle that despite allowFilter being false.

This is particularly significant if a security bug is discovered in
this new experimental partial clone code.  Installations without
uploadpack.allowFilter ought not to be affected since they don't
intend to support partial clone, but they would be swept up into being
vulnerable.

Simplify and limit the attack surface by making uploadpack.allowFilter
disable the feature, not just the advertisement of it.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agol10n: zh_CN: review for git v2.17.0 l10n round 1
Ray Chen [Thu, 29 Mar 2018 07:09:20 +0000 (15:09 +0800)]
l10n: zh_CN: review for git v2.17.0 l10n round 1

Signed-off-by: Ray Chen <oldsharp@gmail.com>
3 years agol10n: zh_CN: for git v2.17.0 l10n round 1
Jiang Xin [Thu, 22 Feb 2018 01:17:34 +0000 (09:17 +0800)]
l10n: zh_CN: for git v2.17.0 l10n round 1

Translate 132 new messages (3376t0f0u) for git 2.17.0-rc0.

Reviewed-by: 依云 <lilydjwg@gmail.com>
Reviewed-by: Fangyi Zhou <fangyi.zhou@yuriko.moe>
Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
3 years agoGit 2.17-rc2 v2.17.0-rc2
Junio C Hamano [Wed, 28 Mar 2018 18:05:14 +0000 (11:05 -0700)]
Git 2.17-rc2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoMerge branch 'tg/stash-doc-typofix'
Junio C Hamano [Wed, 28 Mar 2018 18:04:25 +0000 (11:04 -0700)]
Merge branch 'tg/stash-doc-typofix'

Hotfix.

* tg/stash-doc-typofix:
  git-stash.txt: remove extra square bracket

3 years agoMerge branch 'pc/submodule-helper'
Junio C Hamano [Wed, 28 Mar 2018 18:04:25 +0000 (11:04 -0700)]
Merge branch 'pc/submodule-helper'

Hotfix.

* pc/submodule-helper:
  submodule deinit: handle non existing pathspecs gracefully

3 years agoMerge branch 'nd/parseopt-completion'
Junio C Hamano [Wed, 28 Mar 2018 18:04:24 +0000 (11:04 -0700)]
Merge branch 'nd/parseopt-completion'

Hotfix for recently graduated topic that give help to completion
scripts from the Git subcommands that are being completed

* nd/parseopt-completion:
  t9902: disable test on the list of merge-strategies under GETTEXT_POISON
  completion: clear cached --options when sourcing the completion script

3 years agol10n: ko.po: Update Korean translation
Changwoo Ryu [Mon, 19 Mar 2018 04:59:50 +0000 (13:59 +0900)]
l10n: ko.po: Update Korean translation

Signed-off-by: Changwoo Ryu <cwryu@debian.org>
Signed-off-by: Sihyeon Jang <uneedsihyeon@gmail.com>
Signed-off-by: Gwan-gyeong Mun <elongbug@gmail.com>
Reviewed-by: Changwoo Ryu <cwryu@debian.org>
3 years agosubmodule deinit: handle non existing pathspecs gracefully
Stefan Beller [Tue, 27 Mar 2018 23:28:24 +0000 (16:28 -0700)]
submodule deinit: handle non existing pathspecs gracefully

This fixes a regression introduced in 2e612731b5 (submodule: port
submodule subcommand 'deinit' from shell to C, 2018-01-15), when
handling pathspecs that do not exist gracefully. This restores the
historic behavior of reporting the pathspec as unknown and returning
instead of reporting a bug.

Reported-by: Peter Oberndorfer <kumbayo84@arcor.de>
Signed-off-by: Stefan Beller <sbeller@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agogit-stash.txt: remove extra square bracket
Thomas Gummerer [Mon, 26 Mar 2018 21:11:47 +0000 (22:11 +0100)]
git-stash.txt: remove extra square bracket

In 1ada5020b3 ("stash: use stash_push for no verb form", 2017-02-28),
when the pathspec argument was introduced in 'git stash', that was also
documented.  However I forgot to remove an extra square bracket after
the '--message' argument, even though the square bracket should have
been after the pathspec argument (where it was also added).

Remove the extra square bracket after the '--message' argument, to show
that the pathspec argument should be used with the 'push' verb.

While the pathspec argument can be used without the push verb, that's a
special case described later in the man page, and removing the first extra
square bracket instead of the second one makes the synopis easier to
understand.

Signed-off-by: Thomas Gummerer <t.gummerer@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agounpack-trees: release oid_array after use in check_updates()
René Scharfe [Sun, 25 Mar 2018 16:31:48 +0000 (18:31 +0200)]
unpack-trees: release oid_array after use in check_updates()

Signed-off-by: Rene Scharfe <l.s.r@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoMerge branch 'fr_v2.17.0' of git://github.com/jnavila/git
Jiang Xin [Sun, 25 Mar 2018 13:24:02 +0000 (21:24 +0800)]
Merge branch 'fr_v2.17.0' of git://github.com/jnavila/git

* 'fr_v2.17.0' of git://github.com/jnavila/git:
  l10n: fr.po: v2.17.0 no fuzzy

3 years agol10n: fr.po: v2.17.0 no fuzzy
Jean-Noël Avila [Fri, 23 Mar 2018 22:03:37 +0000 (23:03 +0100)]
l10n: fr.po: v2.17.0 no fuzzy

Signed-off-by: Jean-Noël Avila <jn.avila@free.fr>
3 years agot9902: disable test on the list of merge-strategies under GETTEXT_POISON
Junio C Hamano [Fri, 23 Mar 2018 17:40:06 +0000 (10:40 -0700)]
t9902: disable test on the list of merge-strategies under GETTEXT_POISON

The code to learn the list of merge strategies from the output of
"git merge -s help" forces C locale, so that it can notice the
message shown to indicate where the list starts in the output.

However, GETTEXT_POISON build corrupts its output even when run in
the C locale, and we cannot expect this test to succeed.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoSync with Git 2.16.3
Junio C Hamano [Thu, 22 Mar 2018 21:36:51 +0000 (14:36 -0700)]
Sync with Git 2.16.3

3 years agoGit 2.16.3 v2.16.3
Junio C Hamano [Thu, 22 Mar 2018 21:24:45 +0000 (14:24 -0700)]
Git 2.16.3

Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoMerge branch 'ms/non-ascii-ticks' into maint
Junio C Hamano [Thu, 22 Mar 2018 21:24:25 +0000 (14:24 -0700)]
Merge branch 'ms/non-ascii-ticks' into maint

Doc markup fix.

* ms/non-ascii-ticks:
  Documentation/gitsubmodules.txt: avoid non-ASCII apostrophes

3 years agoMerge branch 'jk/cached-commit-buffer' into maint
Junio C Hamano [Thu, 22 Mar 2018 21:24:25 +0000 (14:24 -0700)]
Merge branch 'jk/cached-commit-buffer' into maint

Code clean-up.

* jk/cached-commit-buffer:
  revision: drop --show-all option
  commit: drop uses of get_cached_commit_buffer()

3 years agoMerge branch 'sm/mv-dry-run-update' into maint
Junio C Hamano [Thu, 22 Mar 2018 21:24:25 +0000 (14:24 -0700)]
Merge branch 'sm/mv-dry-run-update' into maint

Code clean-up.

* sm/mv-dry-run-update:
  mv: remove unneeded 'if (!show_only)'
  t7001: add test case for --dry-run

3 years agoMerge branch 'tg/worktree-create-tracking' into maint
Junio C Hamano [Thu, 22 Mar 2018 21:24:24 +0000 (14:24 -0700)]
Merge branch 'tg/worktree-create-tracking' into maint

Hotfix for a recent topic.

* tg/worktree-create-tracking:
  git-worktree.txt: fix indentation of example and text of 'add' command
  git-worktree.txt: fix missing ")" typo

3 years agoMerge branch 'gs/test-unset-xdg-cache-home' into maint
Junio C Hamano [Thu, 22 Mar 2018 21:24:24 +0000 (14:24 -0700)]
Merge branch 'gs/test-unset-xdg-cache-home' into maint

Test update.

* gs/test-unset-xdg-cache-home:
  test-lib.sh: unset XDG_CACHE_HOME

3 years agoMerge branch 'sb/status-doc-fix' into maint
Junio C Hamano [Thu, 22 Mar 2018 21:24:23 +0000 (14:24 -0700)]
Merge branch 'sb/status-doc-fix' into maint

Docfix.

* sb/status-doc-fix:
  Documentation/git-status: clarify status table for porcelain mode

3 years agoMerge branch 'rd/typofix' into maint
Junio C Hamano [Thu, 22 Mar 2018 21:24:22 +0000 (14:24 -0700)]
Merge branch 'rd/typofix' into maint

Typofix.

* rd/typofix:
  Correct mispellings of ".gitmodule" to ".gitmodules"
  t/: correct obvious typo "detahced"

3 years agoMerge branch 'bp/fsmonitor' into maint
Junio C Hamano [Thu, 22 Mar 2018 21:24:21 +0000 (14:24 -0700)]
Merge branch 'bp/fsmonitor' into maint

Doc update for a recently added feature.

* bp/fsmonitor:
  fsmonitor: update documentation to remove reference to invalid config settings

3 years agoMerge branch 'bc/doc-interpret-trailers-grammofix' into maint
Junio C Hamano [Thu, 22 Mar 2018 21:24:21 +0000 (14:24 -0700)]
Merge branch 'bc/doc-interpret-trailers-grammofix' into maint

Docfix.

* bc/doc-interpret-trailers-grammofix:
  docs/interpret-trailers: fix agreement error

3 years agoMerge branch 'sg/doc-test-must-fail-args' into maint
Junio C Hamano [Thu, 22 Mar 2018 21:24:19 +0000 (14:24 -0700)]
Merge branch 'sg/doc-test-must-fail-args' into maint

Devdoc update.

* sg/doc-test-must-fail-args:
  t: document 'test_must_fail ok=<signal-name>'

3 years agoMerge branch 'rj/sparse-updates' into maint
Junio C Hamano [Thu, 22 Mar 2018 21:24:19 +0000 (14:24 -0700)]
Merge branch 'rj/sparse-updates' into maint

Devtool update.

* rj/sparse-updates:
  Makefile: suppress a sparse warning for pack-revindex.c
  config.mak.uname: remove SPARSE_FLAGS setting for cygwin

3 years agoMerge branch 'jk/gettext-poison' into maint
Junio C Hamano [Thu, 22 Mar 2018 21:24:18 +0000 (14:24 -0700)]
Merge branch 'jk/gettext-poison' into maint

Test updates.

* jk/gettext-poison:
  git-sh-i18n: check GETTEXT_POISON before USE_GETTEXT_SCHEME
  t0205: drop redundant test

3 years agoMerge branch 'nd/ignore-glob-doc-update' into maint
Junio C Hamano [Thu, 22 Mar 2018 21:24:18 +0000 (14:24 -0700)]
Merge branch 'nd/ignore-glob-doc-update' into maint

Doc update.

* nd/ignore-glob-doc-update:
  gitignore.txt: elaborate shell glob syntax

3 years agoMerge branch 'rs/cocci-strbuf-addf-to-addstr' into maint
Junio C Hamano [Thu, 22 Mar 2018 21:24:17 +0000 (14:24 -0700)]
Merge branch 'rs/cocci-strbuf-addf-to-addstr' into maint

* rs/cocci-strbuf-addf-to-addstr:
  cocci: simplify check for trivial format strings

3 years agoMerge branch 'jc/worktree-add-short-help' into maint
Junio C Hamano [Thu, 22 Mar 2018 21:24:17 +0000 (14:24 -0700)]
Merge branch 'jc/worktree-add-short-help' into maint

Error message fix.

* jc/worktree-add-short-help:
  worktree: say that "add" takes an arbitrary commit in short-help

3 years agoMerge branch 'tz/doc-show-defaults-to-head' into maint
Junio C Hamano [Thu, 22 Mar 2018 21:24:17 +0000 (14:24 -0700)]
Merge branch 'tz/doc-show-defaults-to-head' into maint

Doc update.

* tz/doc-show-defaults-to-head:
  doc: mention 'git show' defaults to HEAD

3 years agoMerge branch 'nd/shared-index-fix' into maint
Junio C Hamano [Thu, 22 Mar 2018 21:24:16 +0000 (14:24 -0700)]
Merge branch 'nd/shared-index-fix' into maint

Code clean-up.

* nd/shared-index-fix:
  read-cache: don't write index twice if we can't write shared index
  read-cache.c: move tempfile creation/cleanup out of write_shared_index
  read-cache.c: change type of "temp" in write_shared_index()

3 years agoMerge branch 'jc/mailinfo-cleanup-fix' into maint
Junio C Hamano [Thu, 22 Mar 2018 21:24:16 +0000 (14:24 -0700)]
Merge branch 'jc/mailinfo-cleanup-fix' into maint

Corner case bugfix.

* jc/mailinfo-cleanup-fix:
  mailinfo: avoid segfault when can't open files

3 years agoMerge branch 'rb/hashmap-h-compilation-fix' into maint
Junio C Hamano [Thu, 22 Mar 2018 21:24:15 +0000 (14:24 -0700)]
Merge branch 'rb/hashmap-h-compilation-fix' into maint

Code clean-up.

* rb/hashmap-h-compilation-fix:
  hashmap.h: remove unused variable

3 years agoMerge branch 'rs/describe-unique-abbrev' into maint
Junio C Hamano [Thu, 22 Mar 2018 21:24:14 +0000 (14:24 -0700)]
Merge branch 'rs/describe-unique-abbrev' into maint

Code clean-up.

* rs/describe-unique-abbrev:
  describe: use strbuf_add_unique_abbrev() for adding short hashes

3 years agoMerge branch 'ks/submodule-doc-updates' into maint
Junio C Hamano [Thu, 22 Mar 2018 21:24:13 +0000 (14:24 -0700)]
Merge branch 'ks/submodule-doc-updates' into maint

Doc updates.

* ks/submodule-doc-updates:
  Doc/git-submodule: improve readability and grammar of a sentence
  Doc/gitsubmodules: make some changes to improve readability and syntax

3 years agoMerge branch 'cl/t9001-cleanup' into maint
Junio C Hamano [Thu, 22 Mar 2018 21:24:13 +0000 (14:24 -0700)]
Merge branch 'cl/t9001-cleanup' into maint

Test clean-up.

* cl/t9001-cleanup:
  t9001: use existing helper in send-email test

3 years agoMerge branch 'bw/oidmap-autoinit' into maint
Junio C Hamano [Thu, 22 Mar 2018 21:24:12 +0000 (14:24 -0700)]
Merge branch 'bw/oidmap-autoinit' into maint

Code clean-up.

* bw/oidmap-autoinit:
  oidmap: ensure map is initialized

3 years agoMerge branch 'sg/test-i18ngrep' into maint
Junio C Hamano [Thu, 22 Mar 2018 21:24:12 +0000 (14:24 -0700)]
Merge branch 'sg/test-i18ngrep' into maint

Test fixes.

* sg/test-i18ngrep:
  t: make 'test_i18ngrep' more informative on failure
  t: validate 'test_i18ngrep's parameters
  t: move 'test_i18ncmp' and 'test_i18ngrep' to 'test-lib-functions.sh'
  t5536: let 'test_i18ngrep' read the file without redirection
  t5510: consolidate 'grep' and 'test_i18ngrep' patterns
  t4001: don't run 'git status' upstream of a pipe
  t6022: don't run 'git merge' upstream of a pipe
  t5812: add 'test_i18ngrep's missing filename parameter
  t5541: add 'test_i18ngrep's missing filename parameter

3 years agoMerge branch 'jt/fsck-code-cleanup' into maint
Junio C Hamano [Thu, 22 Mar 2018 21:24:12 +0000 (14:24 -0700)]
Merge branch 'jt/fsck-code-cleanup' into maint

Plug recently introduced leaks in fsck.

* jt/fsck-code-cleanup:
  fsck: fix leak when traversing trees

3 years agoMerge branch 'ew/svn-branch-segfault-fix' into maint
Junio C Hamano [Thu, 22 Mar 2018 21:24:11 +0000 (14:24 -0700)]
Merge branch 'ew/svn-branch-segfault-fix' into maint

Workaround for segfault with more recent versions of SVN.

* ew/svn-branch-segfault-fix:
  git-svn: control destruction order to avoid segfault

3 years agoMerge branch 'nd/list-merge-strategy' into maint
Junio C Hamano [Thu, 22 Mar 2018 21:24:11 +0000 (14:24 -0700)]
Merge branch 'nd/list-merge-strategy' into maint

Completion of "git merge -s<strategy>" (in contrib/) did not work
well in non-C locale.

* nd/list-merge-strategy:
  completion: fix completing merge strategies on non-C locales

3 years agoMerge branch 'jk/daemon-fixes' into maint
Junio C Hamano [Thu, 22 Mar 2018 21:24:10 +0000 (14:24 -0700)]
Merge branch 'jk/daemon-fixes' into maint

Assorted fixes to "git daemon".

* jk/daemon-fixes:
  daemon: fix length computation in newline stripping
  t/lib-git-daemon: add network-protocol helpers
  daemon: handle NULs in extended attribute string
  daemon: fix off-by-one in logging extended attributes
  t/lib-git-daemon: record daemon log
  t5570: use ls-remote instead of clone for interp tests

3 years agoMerge branch 'tg/split-index-fixes' into maint
Junio C Hamano [Thu, 22 Mar 2018 21:24:10 +0000 (14:24 -0700)]
Merge branch 'tg/split-index-fixes' into maint

The split-index mode had a few corner case bugs fixed.

* tg/split-index-fixes:
  travis: run tests with GIT_TEST_SPLIT_INDEX
  split-index: don't write cache tree with null oid entries
  read-cache: fix reading the shared index for other repos

3 years agoMerge branch 'mr/packed-ref-store-fix' into maint
Junio C Hamano [Thu, 22 Mar 2018 21:24:10 +0000 (14:24 -0700)]
Merge branch 'mr/packed-ref-store-fix' into maint

Crash fix for a corner case where an error codepath tried to unlock
what it did not acquire lock on.

* mr/packed-ref-store-fix:
  files_initial_transaction_commit(): only unlock if locked

3 years agoMerge branch 'jt/http-redact-cookies' into maint
Junio C Hamano [Thu, 22 Mar 2018 21:24:09 +0000 (14:24 -0700)]
Merge branch 'jt/http-redact-cookies' into maint

The http tracing code, often used to debug connection issues,
learned to redact potentially sensitive information from its output
so that it can be more safely sharable.

* jt/http-redact-cookies:
  http: support omitting data from traces
  http: support cookie redaction when tracing

3 years agoMerge branch 'nd/diff-flush-before-warning' into maint
Junio C Hamano [Thu, 22 Mar 2018 21:24:09 +0000 (14:24 -0700)]
Merge branch 'nd/diff-flush-before-warning' into maint

Avoid showing a warning message in the middle of a line of "git
diff" output.

* nd/diff-flush-before-warning:
  diff.c: flush stdout before printing rename warnings

3 years agoMerge branch 'sg/travis-build-during-script-phase' into maint
Junio C Hamano [Thu, 22 Mar 2018 21:24:08 +0000 (14:24 -0700)]
Merge branch 'sg/travis-build-during-script-phase' into maint

Build the executable in 'script' phase in Travis CI integration, to
follow the established practice, rather than during 'before_script'
phase.  This allows the CI categorize the failures better ('failed'
is project's fault, 'errored' is build environment's).

* sg/travis-build-during-script-phase:
  travis-ci: build Git during the 'script' phase

3 years agocompletion: clear cached --options when sourcing the completion script
SZEDER Gábor [Thu, 22 Mar 2018 14:16:04 +0000 (15:16 +0100)]
completion: clear cached --options when sourcing the completion script

The established way to update the completion script in an already
running shell is to simply source it again: this brings in any new
--options and features, and clears caching variables.  E.g. it clears
the variables caching the list of (all|porcelain) git commands, so
when they are later lazy-initialized again, then they will list and
cache any newly installed commmands as well.

Unfortunately, since d401f3debc (git-completion.bash: introduce
__gitcomp_builtin, 2018-02-09) and subsequent patches this doesn't
work for a lot of git commands' options.  To eliminate a lot of
hard-to-maintain hard-coded lists of options, those commits changed
the completion script to use a bunch of programmatically created and
lazy-initialized variables to cache the options of those builtin
porcelain commands that use parse-options.  These variables are not
cleared upon sourcing the completion script, therefore they continue
caching the old lists of options, even when some commands recently
learned new options or when deprecated options were removed.

Always 'unset' these variables caching the options of builtin commands
when sourcing the completion script.

Redirect 'unset's stderr to /dev/null, because ZSH's 'unset' complains
if it's invoked without any arguments, i.e. no variables caching
builtin's options are set.  This can happen, if someone were to source
the completion script twice without completing any --options in
between.  Bash stays silent in this case.

Add tests to ensure that these variables are indeed cleared when the
completion script is sourced; not just the variables caching options,
but all other caching variables, i.e. the variables caching commands,
porcelain commands and merge strategies as well.

Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoGit 2.17-rc1 v2.17.0-rc1
Junio C Hamano [Wed, 21 Mar 2018 19:02:04 +0000 (12:02 -0700)]
Git 2.17-rc1

Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoMerge branch 'jk/attributes-path-doc'
Junio C Hamano [Wed, 21 Mar 2018 18:30:15 +0000 (11:30 -0700)]
Merge branch 'jk/attributes-path-doc'

Doc update.

* jk/attributes-path-doc:
  doc/gitattributes: mention non-recursive behavior

3 years agoMerge branch 'rj/warning-uninitialized-fix'
Junio C Hamano [Wed, 21 Mar 2018 18:30:15 +0000 (11:30 -0700)]
Merge branch 'rj/warning-uninitialized-fix'

Compilation fix.

* rj/warning-uninitialized-fix:
  read-cache: fix an -Wmaybe-uninitialized warning
  -Wuninitialized: remove some 'init-self' workarounds

3 years agoMerge branch 'tz/complete-tag-delete-tagname'
Junio C Hamano [Wed, 21 Mar 2018 18:30:15 +0000 (11:30 -0700)]
Merge branch 'tz/complete-tag-delete-tagname'

* tz/complete-tag-delete-tagname:
  completion: complete tags with git tag --delete/--verify

3 years agoMerge branch 'ml/filter-branch-portability-fix'
Junio C Hamano [Wed, 21 Mar 2018 18:30:14 +0000 (11:30 -0700)]
Merge branch 'ml/filter-branch-portability-fix'

Shell script portability fix.

* ml/filter-branch-portability-fix:
  filter-branch: use printf instead of echo -e

3 years agoMerge branch 'js/ming-strftime'
Junio C Hamano [Wed, 21 Mar 2018 18:30:14 +0000 (11:30 -0700)]
Merge branch 'js/ming-strftime'

* js/ming-strftime:
  mingw: abort on invalid strftime formats

3 years agoMerge branch 'dp/merge-strategy-doc-fix'
Junio C Hamano [Wed, 21 Mar 2018 18:30:13 +0000 (11:30 -0700)]
Merge branch 'dp/merge-strategy-doc-fix'

Doc fix.

* dp/merge-strategy-doc-fix:
  Documentation/merge-strategies: typofix

3 years agoMerge branch 'tz/relnotes-1.7-on-perl'
Junio C Hamano [Wed, 21 Mar 2018 18:30:12 +0000 (11:30 -0700)]
Merge branch 'tz/relnotes-1.7-on-perl'

* tz/relnotes-1.7-on-perl:
  RelNotes: add details on Perl module changes

3 years agoMerge branch 'rj/http-code-cleanup'
Junio C Hamano [Wed, 21 Mar 2018 18:30:12 +0000 (11:30 -0700)]
Merge branch 'rj/http-code-cleanup'

There was an unused file-scope static variable left in http.c when
building for versions of libCURL that is older than 7.19.4, which
has been fixed.

* rj/http-code-cleanup:
  http: fix an unused variable warning for 'curl_no_proxy'

3 years agoMerge branch 'ks/t3200-typofix'
Junio C Hamano [Wed, 21 Mar 2018 18:30:12 +0000 (11:30 -0700)]
Merge branch 'ks/t3200-typofix'

Test typofix.

* ks/t3200-typofix:
  t/t3200: fix a typo in a test description

3 years agoMerge branch 'jt/transfer-fsck-with-promissor'
Junio C Hamano [Wed, 21 Mar 2018 18:30:11 +0000 (11:30 -0700)]
Merge branch 'jt/transfer-fsck-with-promissor'

The transfer.fsckobjects configuration tells "git fetch" to
validate the data and connected-ness of objects in the received
pack; the code to perform this check has been taught about the
narrow clone's convention that missing objects that are reachable
from objects in a pack that came from a promissor remote is OK.

* jt/transfer-fsck-with-promissor:
  fetch-pack: do not check links for partial fetch
  index-pack: support checking objects but not links

3 years agoMerge branch 'bp/refresh-cache-ent-rehash-fix'
Junio C Hamano [Wed, 21 Mar 2018 18:30:11 +0000 (11:30 -0700)]
Merge branch 'bp/refresh-cache-ent-rehash-fix'

The codepath to replace an existing entry in the index had a bug in
updating the name hash structure, which has been fixed.

* bp/refresh-cache-ent-rehash-fix:
  Fix bugs preventing adding updated cache entries to the name hash

3 years agoMerge branch 'jh/fsck-promisors'
Junio C Hamano [Wed, 21 Mar 2018 18:30:10 +0000 (11:30 -0700)]
Merge branch 'jh/fsck-promisors'

A hotfix to a topic that graduated recently.

* jh/fsck-promisors:
  sha1_file: restore OBJECT_INFO_QUICK functionality

3 years agoMerge branch 'ma/skip-writing-unchanged-index'
Junio C Hamano [Wed, 21 Mar 2018 18:30:10 +0000 (11:30 -0700)]
Merge branch 'ma/skip-writing-unchanged-index'

Internal API clean-up to allow write_locked_index() optionally skip
writing the in-core index when it is not modified.

* ma/skip-writing-unchanged-index:
  write_locked_index(): add flag to avoid writing unchanged index

3 years agoMerge branch 'ma/config-page-only-in-list-mode'
Junio C Hamano [Wed, 21 Mar 2018 18:30:09 +0000 (11:30 -0700)]
Merge branch 'ma/config-page-only-in-list-mode'

In a way similar to how "git tag" learned to honor the pager
setting only in the list mode, "git config" learned to ignore the
pager setting when it is used for setting values (i.e. when the
purpose of the operation is not to "show").

* ma/config-page-only-in-list-mode:
  config: change default of `pager.config` to "on"
  config: respect `pager.config` in list/get-mode only
  t7006: add tests for how git config paginates

3 years agoMerge branch 'master' of git://github.com/nafmo/git-l10n-sv
Jiang Xin [Wed, 21 Mar 2018 14:13:51 +0000 (22:13 +0800)]
Merge branch 'master' of git://github.com/nafmo/git-l10n-sv

* 'master' of git://github.com/nafmo/git-l10n-sv:
  l10n: sv.po: Update Swedish translation (3376t0f0u)

3 years agoMerge branch 'master' of https://github.com/Softcatala/git-po
Jiang Xin [Wed, 21 Mar 2018 14:07:53 +0000 (22:07 +0800)]
Merge branch 'master' of https://github.com/Softcatala/git-po

* 'master' of https://github.com/Softcatala/git-po:
  l10n: Update Catalan translation

3 years agodoc/gitattributes: mention non-recursive behavior
Jeff King [Tue, 20 Mar 2018 04:14:54 +0000 (00:14 -0400)]
doc/gitattributes: mention non-recursive behavior

The gitattributes documentation claims that the pattern
rules are largely the same as for gitignore. However, the
rules for recursion are different.

In an ideal world, we would make them the same (if for
nothing else than consistency and simplicity), but that
would create backwards compatibility issues. For some
discussion, see this thread:

  https://public-inbox.org/git/slrnkldd3g.1l4.jan@majutsushi.net/

But let's at least document the differences instead of
actively misleading the user by claiming that they're the
same.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoread-cache: fix an -Wmaybe-uninitialized warning
Ramsay Jones [Mon, 19 Mar 2018 17:56:11 +0000 (17:56 +0000)]
read-cache: fix an -Wmaybe-uninitialized warning

The function ce_write_entry() uses a 'self-initialised' variable
construct, for the symbol 'saved_namelen', to suppress a gcc
'-Wmaybe-uninitialized' warning, given that the warning is a false
positive.

For the purposes of this discussion, the ce_write_entry() function has
three code blocks of interest, that look like so:

        /* block #1 */
        if (ce->ce_flags & CE_STRIP_NAME) {
                saved_namelen = ce_namelen(ce);
                ce->ce_namelen = 0;
        }

        /* block #2 */
        /*
 * several code blocks that contain, among others, calls
         * to copy_cache_entry_to_ondisk(ondisk, ce);
         */

        /* block #3 */
        if (ce->ce_flags & CE_STRIP_NAME) {
                ce->ce_namelen = saved_namelen;
                ce->ce_flags &= ~CE_STRIP_NAME;
        }

The warning implies that gcc thinks it is possible that the first
block is not entered, the calls to copy_cache_entry_to_ondisk()
could toggle the CE_STRIP_NAME flag on, thereby entering block #3
with saved_namelen unset. However, the copy_cache_entry_to_ondisk()
function does not write to ce->ce_flags (it only reads). gcc could
easily determine this, since that function is local to this file,
but it obviously doesn't.

In order to suppress this warning, we make it clear to the reader
(human and compiler), that block #3 will only be entered when the
first block has been entered, by introducing a new 'stripped_name'
boolean variable. We also take the opportunity to change the type
of 'saved_namelen' to 'unsigned int' to match ce->ce_namelen.

Signed-off-by: Ramsay Jones <ramsay@ramsayjones.plus.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years ago-Wuninitialized: remove some 'init-self' workarounds
Ramsay Jones [Mon, 19 Mar 2018 17:54:35 +0000 (17:54 +0000)]
-Wuninitialized: remove some 'init-self' workarounds

The 'self-initialised' variables construct (ie <type> var = var;) has
been used to silence gcc '-W[maybe-]uninitialized' warnings. This has,
unfortunately, caused MSVC to issue 'uninitialized variable' warnings.
Also, using clang static analysis causes complaints about an 'Assigned
value is garbage or undefined'.

There are six such constructs in the current codebase. Only one of the
six causes gcc to issue a '-Wmaybe-uninitialized' warning (which will
be addressed elsewhere). The remaining five 'init-self' gcc workarounds
are noted below, along with the commit which introduced them:

  1. builtin/rev-list.c: 'reaches' and 'all', see commit 457f08a030
     ("git-rev-list: add --bisect-vars option.", 2007-03-21).

  2. merge-recursive.c:2064 'mrtree', see commit f120ae2a8e ("merge-
     recursive.c: mrtree in merge() is not used before set", 2007-10-29).

  3. fast-import.c:3023 'oe', see commit 85c62395b1 ("fast-import: let
     importers retrieve blobs", 2010-11-28).

  4. fast-import.c:3006 'oe', see commit 28c7b1f7b7 ("fast-import: add a
     get-mark command", 2015-07-01).

Remove the 'self-initialised' variable constructs noted above.

Signed-off-by: Ramsay Jones <ramsay@ramsayjones.plus.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agofilter-branch: use printf instead of echo -e
Michele Locati [Mon, 19 Mar 2018 15:52:59 +0000 (16:52 +0100)]
filter-branch: use printf instead of echo -e

In order to echo a tab character, it's better to use printf instead of
"echo -e", because it's more portable (for instance, "echo -e" doesn't work
as expected on a Mac).

This solves the "fatal: Not a valid object name" error in git-filter-branch
when using the --state-branch option.

Furthermore, let's switch from "/bin/echo" to just "echo", so that the
built-in echo command is used where available.

Signed-off-by: Michele Locati <michele@locati.it>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agomingw: abort on invalid strftime formats
Johannes Schindelin [Mon, 19 Mar 2018 16:49:22 +0000 (17:49 +0100)]
mingw: abort on invalid strftime formats

On Windows, strftime() does not silently ignore invalid formats, but
warns about them and then returns 0 and sets errno to EINVAL.

Unfortunately, Git does not expect such a behavior, as it disagrees
with strftime()'s semantics on Linux. As a consequence, Git
misinterprets the return value 0 as "I need more space" and grows the
buffer. As the larger buffer does not fix the format, the buffer grows
and grows and grows until we are out of memory and abort.

Ideally, we would switch off the parameter validation just for
strftime(), but we cannot even override the invalid parameter handler
via _set_thread_local_invalid_parameter_handler() using MINGW because
that function is not declared. Even _set_invalid_parameter_handler(),
which *is* declared, does not help, as it simply does... nothing.

So let's just bite the bullet and override strftime() for MINGW and
abort on an invalid format string. While this does not provide the
best user experience, it is the best we can do.

See https://msdn.microsoft.com/en-us/library/fe06s4ak.aspx for more
details.

This fixes https://github.com/git-for-windows/git/issues/863

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agocompletion: complete tags with git tag --delete/--verify
Todd Zullinger [Sun, 18 Mar 2018 04:01:35 +0000 (00:01 -0400)]
completion: complete tags with git tag --delete/--verify

Completion of tag names has worked for the short -d/-v options since
88e21dc746 ("Teach bash about completing arguments for git-tag",
2007-08-31).  The long options were not added to "git tag" until many
years later, in c97eff5a95 ("git-tag: introduce long forms for the
options", 2011-08-28).

Extend tag name completion to --delete/--verify.

Signed-off-by: Todd Zullinger <tmz@pobox.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoDocumentation/merge-strategies: typofix
David Pursehouse [Sat, 17 Mar 2018 03:31:42 +0000 (12:31 +0900)]
Documentation/merge-strategies: typofix

It's strategy, not stragegy.

Signed-off-by: David Pursehouse <dpursehouse@collab.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agol10n: sv.po: Update Swedish translation (3376t0f0u)
Peter Krefting [Sun, 18 Mar 2018 19:57:00 +0000 (20:57 +0100)]
l10n: sv.po: Update Swedish translation (3376t0f0u)

Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
3 years agol10n: Update Catalan translation
Jordi Mas [Sun, 18 Mar 2018 15:03:18 +0000 (16:03 +0100)]
l10n: Update Catalan translation

Signed-off-by: Jordi Mas <jmas@softcatala.org>
3 years agoMerge branch 'fr_v2.17.0' of git://github.com/jnavila/git
Jiang Xin [Sun, 18 Mar 2018 11:46:38 +0000 (19:46 +0800)]
Merge branch 'fr_v2.17.0' of git://github.com/jnavila/git

* 'fr_v2.17.0' of git://github.com/jnavila/git:
  l10n: fr.po v2.17.0 round 1

3 years agol10n: fr.po v2.17.0 round 1
Jean-Noël Avila [Fri, 16 Mar 2018 22:39:49 +0000 (23:39 +0100)]
l10n: fr.po v2.17.0 round 1

Signed-off-by: Jean-Noël Avila <jn.avila@free.fr>
3 years agoMerge branch 'master' of https://github.com/vnwildman/git
Jiang Xin [Sat, 17 Mar 2018 03:27:05 +0000 (11:27 +0800)]
Merge branch 'master' of https://github.com/vnwildman/git

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

3 years agoMerge branch 'master' of git://github.com/alshopov/git-po
Jiang Xin [Sat, 17 Mar 2018 03:24:53 +0000 (11: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 (3376t)

3 years agol10n: vi.po(3376t): Updated Vietnamese translation for v2.17
Tran Ngoc Quan [Sat, 17 Mar 2018 00:53:33 +0000 (07:53 +0700)]
l10n: vi.po(3376t): Updated Vietnamese translation for v2.17

Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
3 years agoRelNotes: add details on Perl module changes
Todd Zullinger [Fri, 16 Mar 2018 22:07:48 +0000 (18:07 -0400)]
RelNotes: add details on Perl module changes

Document changes to core and non-core Perl module handling in 2.17.

Signed-off-by: Todd Zullinger <tmz@pobox.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agol10n: bg.po: Updated Bulgarian translation (3376t)
Alexander Shopov [Fri, 16 Mar 2018 08:55:13 +0000 (09:55 +0100)]
l10n: bg.po: Updated Bulgarian translation (3376t)

Signed-off-by: Alexander Shopov <ash@kambanaria.org>
3 years agol10n: es.po: Update Spanish translation 2.17.0
Christopher Diaz Riveros [Fri, 16 Mar 2018 02:55:20 +0000 (21:55 -0500)]
l10n: es.po: Update Spanish translation 2.17.0

Signed-off-by: Christopher Diaz Riveros <chrisadr@gentoo.org>
3 years agoMerge remote-tracking branch 'git-po/maint'
Jiang Xin [Thu, 15 Mar 2018 23:36:32 +0000 (07:36 +0800)]
Merge remote-tracking branch 'git-po/maint'

* git-po/maint:
  l10n: es.po: fixes to Spanish translation

3 years agol10n: git.pot: v2.17.0 round 1 (132 new, 44 removed)
Jiang Xin [Thu, 15 Mar 2018 23:34:52 +0000 (07:34 +0800)]
l10n: git.pot: v2.17.0 round 1 (132 new, 44 removed)

Generate po/git.pot from v2.17.0-rc0 for git v2.17.0 l10n round 1.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
3 years agoGit 2.17-rc0 v2.17.0-rc0
Junio C Hamano [Thu, 15 Mar 2018 22:01:05 +0000 (15:01 -0700)]
Git 2.17-rc0

Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoMerge branch 'tl/userdiff-csharp-async'
Junio C Hamano [Thu, 15 Mar 2018 22:00:47 +0000 (15:00 -0700)]
Merge branch 'tl/userdiff-csharp-async'

Update funcname pattern used for C# to recognize "async" keyword.

* tl/userdiff-csharp-async:
  userdiff.c: add C# async keyword in diff pattern

3 years agoMerge branch 'sg/cvs-tests-with-x'
Junio C Hamano [Thu, 15 Mar 2018 22:00:46 +0000 (15:00 -0700)]
Merge branch 'sg/cvs-tests-with-x'

Allow running a couple of tests with "sh -x".

* sg/cvs-tests-with-x:
  t9402-git-cvsserver-refs: don't check the stderr of a subshell
  t9400-git-cvsserver-server: don't rely on the output of 'test_cmp'

3 years agoMerge branch 'ab/man-sec-list'
Junio C Hamano [Thu, 15 Mar 2018 22:00:46 +0000 (15:00 -0700)]
Merge branch 'ab/man-sec-list'

Doc update.

* ab/man-sec-list:
  git manpage: note git-security@googlegroups.com

3 years agoMerge branch 'ab/perl-fixes'
Junio C Hamano [Thu, 15 Mar 2018 22:00:46 +0000 (15:00 -0700)]
Merge branch 'ab/perl-fixes'

Clean-up to various pieces of Perl code we have.

* ab/perl-fixes:
  perl Git::LoadCPAN: emit better errors under NO_PERL_CPAN_FALLBACKS
  Makefile: add NO_PERL_CPAN_FALLBACKS knob
  perl: move the perl/Git/FromCPAN tree to perl/FromCPAN
  perl: generalize the Git::LoadCPAN facility
  perl: move CPAN loader wrappers to another namespace
  perl: update our copy of Mail::Address
  perl: update our ancient copy of Error.pm
  git-send-email: unconditionally use Net::{SMTP,Domain}
  Git.pm: hard-depend on the File::{Temp,Spec} modules
  gitweb: hard-depend on the Digest::MD5 5.8 module
  Git.pm: add the "use warnings" pragma
  Git.pm: remove redundant "use strict" from sub-package
  perl: *.pm files should not have the executable bit

3 years agoMerge branch 'cl/send-email-reply-to'
Junio C Hamano [Thu, 15 Mar 2018 22:00:45 +0000 (15:00 -0700)]
Merge branch 'cl/send-email-reply-to'

"git send-email" learned "--reply-to=<address>" option.

* cl/send-email-reply-to:
  send-email: support separate Reply-To address
  send-email: rename variable for clarity

3 years agoMerge branch 'np/send-email-header-parsing'
Junio C Hamano [Thu, 15 Mar 2018 22:00:45 +0000 (15:00 -0700)]
Merge branch 'np/send-email-header-parsing'

Code refactoring.

* np/send-email-header-parsing:
  send-email: extract email-parsing code into a subroutine