git/git.git
3 years agoMerge branch 'mh/ref-locking-fix'
Junio C Hamano [Thu, 26 Oct 2017 03:29:23 +0000 (12:29 +0900)]
Merge branch 'mh/ref-locking-fix'

Transactions to update multiple references that involves a deletion
was quite broken in an error codepath and did not abort everything
correctly.

* mh/ref-locking-fix:
  files_transaction_prepare(): fix handling of ref lock failure
  t1404: add a bunch of tests of D/F conflicts

3 years agofiles_transaction_prepare(): fix handling of ref lock failure
Michael Haggerty [Tue, 24 Oct 2017 15:16:25 +0000 (17:16 +0200)]
files_transaction_prepare(): fix handling of ref lock failure

Since dc39e09942 (files_ref_store: use a transaction to update packed
refs, 2017-09-08), failure to lock a reference has been handled
incorrectly by `files_transaction_prepare()`. If
`lock_ref_for_update()` fails in the lock-acquisition loop of that
function, it sets `ret` then breaks out of that loop. Prior to
dc39e09942, that was OK, because the only thing following the loop was
the cleanup code. But dc39e09942 added another blurb of code between
the loop and the cleanup. That blurb sometimes resets `ret` to zero,
making the cleanup code think that the locking was successful.

Specifically, whenever

* One or more reference deletions have been processed successfully in
  the lock-acquisition loop. (Processing the first such reference
  causes a packed-ref transaction to be initialized.)

* Then `lock_ref_for_update()` fails for a subsequent reference. Such
  a failure can happen for a number of reasons, such as the old SHA-1
  not being correct, lock contention, etc. This causes a `break` out
  of the lock-acquisition loop.

* The `packed-refs` lock is acquired successfully and
  `ref_transaction_prepare()` succeeds for the packed-ref transaction.
  This has the effect of resetting `ret` back to 0, and making the
  cleanup code think that lock acquisition was successful.

In that case, any reference updates that were processed prior to
breaking out of the loop would be carried out (loose and packed), but
the reference that couldn't be locked and any subsequent references
would silently be ignored.

This can easily cause data loss if, for example, the user was trying
to push a new name for an existing branch while deleting the old name.
After the push, the branch could be left unreachable, and could even
subsequently be garbage-collected.

This problem was noticed in the context of deleting one reference and
creating another in a single transaction, when the two references D/F
conflict with each other, like

    git update-ref --stdin <<EOF
    delete refs/foo
    create refs/foo/bar HEAD
    EOF

This triggers the above bug because the deletion is processed
successfully for `refs/foo`, then the D/F conflict causes
`lock_ref_for_update()` to fail when `refs/foo/bar` is processed. In
this case the transaction *should* fail, but instead it causes
`refs/foo` to be deleted without creating `refs/foo`. This could
easily result in data loss.

The fix is simple: instead of just breaking out of the loop, jump
directly to the cleanup code. This fixes some tests in t1404 that were
added in the previous commit.

Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agot1404: add a bunch of tests of D/F conflicts
Michael Haggerty [Tue, 24 Oct 2017 15:16:24 +0000 (17:16 +0200)]
t1404: add a bunch of tests of D/F conflicts

It is currently not allowed, in a single transaction, to add one
reference and delete another reference if the two reference names D/F
conflict with each other (e.g., like `refs/foo/bar` and `refs/foo`).
The reason is that the code would need to take locks

    $GIT_DIR/refs/foo.lock
    $GIT_DIR/refs/foo/bar.lock

But the latter lock couldn't coexist with the loose reference file

    $GIT_DIR/refs/foo

, because `$GIT_DIR/refs/foo` cannot be both a directory and a file at
the same time (hence the name "D/F conflict).

Add a bunch of tests that we cleanly reject such transactions.

In fact, many of the new tests currently fail. They will be fixed in
the next commit along with an explanation.

Reported-by: Jeff King <peff@peff.net>
Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoMerge tag 'l10n-2.15.0-rnd2' of git://github.com/git-l10n/git-po
Junio C Hamano [Tue, 24 Oct 2017 02:44:52 +0000 (11:44 +0900)]
Merge tag 'l10n-2.15.0-rnd2' of git://github.com/git-l10n/git-po

l10n for Git 2.15.0 round 2

* tag 'l10n-2.15.0-rnd2' of git://github.com/git-l10n/git-po: (22 commits)
  l10n: zh_CN: review for git v2.15.0 l10n round 2
  l10n: zh_CN: for git v2.15.0 l10n round 2
  l10n: de.po: fix typos
  l10n: de.po: translate 70 new messages
  l10n: ru.po: update Russian translation
  l10n: vi.po(3245t): Updated Vietnamese translation for v2.15.0 round 2
  l10n: sv.po: Update Swedish translation (3245t0f0u)
  l10n: fr.po: v2.15.0 round 2
  l10n: fr.po change translation of "First, rewinding"
  l10n: fr.po fix some mistakes
  l10n: Update Catalan translation
  l10n: ko.po: Update Korean translation
  l10n: es.po: v2.15.0 round 2
  l10n: git.pot: v2.15.0 round 2 (2 new, 2 removed)
  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)
  ...

3 years agoMerge branch 'jx/zh_CN-proposed' of github.com:jiangxin/git
Jiang Xin [Tue, 24 Oct 2017 02:11:48 +0000 (10:11 +0800)]
Merge branch 'jx/zh_CN-proposed' of github.com:jiangxin/git

* 'jx/zh_CN-proposed' of github.com:jiangxin/git:
  l10n: zh_CN: review for git v2.15.0 l10n round 2
  l10n: zh_CN: for git v2.15.0 l10n round 2

3 years agol10n: zh_CN: review for git v2.15.0 l10n round 2
Ray Chen [Mon, 23 Oct 2017 16:17:59 +0000 (00:17 +0800)]
l10n: zh_CN: review for git v2.15.0 l10n round 2

Signed-off-by: Ray Chen <oldsharp@gmail.com>
3 years agol10n: zh_CN: for git v2.15.0 l10n round 2
Jiang Xin [Sun, 8 Oct 2017 07:29:11 +0000 (15:29 +0800)]
l10n: zh_CN: for git v2.15.0 l10n round 2

Translate 69 messages (3245t0f0u) for git v2.15.0-rc2.

Signed-off-by: Jiang Xin <worldhello.net@gmail.com>
Reviewed-by: 依云 <lilydjwg@gmail.com>
3 years agoMerge branch 'master' of https://github.com/ralfth/git-po-de
Jiang Xin [Tue, 24 Oct 2017 01:56:09 +0000 (09:56 +0800)]
Merge branch 'master' of https://github.com/ralfth/git-po-de

* 'master' of https://github.com/ralfth/git-po-de:
  l10n: de.po: fix typos
  l10n: de.po: translate 70 new messages

3 years agol10n: de.po: fix typos
Andre Hinrichs [Thu, 19 Oct 2017 06:25:25 +0000 (08:25 +0200)]
l10n: de.po: fix typos

Signed-off-by: Andre Hinrichs <andre.hinrichs@gmx.de>
Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
3 years agol10n: de.po: translate 70 new messages
Ralf Thielow [Wed, 11 Oct 2017 10:48:48 +0000 (12:48 +0200)]
l10n: de.po: translate 70 new messages

Translate 70 new messages came from git.pot update in 25eab542b
(l10n: git.pot: v2.15.0 round 1 (68 new, 36 removed)) and 9c07fab78
(l10n: git.pot: v2.15.0 round 2 (2 new, 2 removed)).

Signed-off-by: Ralf Thielow <ralf.thielow@gmail.com>
3 years agoSync with 2.14.3
Junio C Hamano [Mon, 23 Oct 2017 05:54:30 +0000 (14:54 +0900)]
Sync with 2.14.3

3 years agoGit 2.14.3 v2.14.3
Junio C Hamano [Mon, 23 Oct 2017 05:44:17 +0000 (14:44 +0900)]
Git 2.14.3

Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoMerge branch 'jk/info-alternates-fix' into maint
Junio C Hamano [Mon, 23 Oct 2017 05:40:00 +0000 (14:40 +0900)]
Merge branch 'jk/info-alternates-fix' into maint

A regression fix for 2.11 that made the code to read the list of
alternate object stores overrun the end of the string.

* jk/info-alternates-fix:
  read_info_alternates: warn on non-trivial errors
  read_info_alternates: read contents into strbuf

3 years agoMerge branch 'jc/fetch-refspec-doc-update' into maint
Junio C Hamano [Mon, 23 Oct 2017 05:39:08 +0000 (14:39 +0900)]
Merge branch 'jc/fetch-refspec-doc-update' into maint

"git fetch <there> <src>:<dst>" allows an object name on the <src>
side when the other side accepts such a request since Git v2.5, but
the documentation was left stale.

* jc/fetch-refspec-doc-update:
  fetch doc: src side of refspec could be full SHA-1

3 years agoMerge branch 'jk/write-in-full-fix' into maint
Junio C Hamano [Mon, 23 Oct 2017 05:37:21 +0000 (14:37 +0900)]
Merge branch 'jk/write-in-full-fix' into maint

Many codepaths did not diagnose write failures correctly when disks
go full, due to their misuse of write_in_full() helper function,
which have been corrected.

* jk/write-in-full-fix:
  read_pack_header: handle signed/unsigned comparison in read result
  config: flip return value of store_write_*()
  notes-merge: use ssize_t for write_in_full() return value
  pkt-line: check write_in_full() errors against "< 0"
  convert less-trivial versions of "write_in_full() != len"
  avoid "write_in_full(fd, buf, len) != len" pattern
  get-tar-commit-id: check write_in_full() return against 0
  config: avoid "write_in_full(fd, buf, len) < len" pattern

3 years agoMerge branch 'rj/no-sign-compare' into maint
Junio C Hamano [Mon, 23 Oct 2017 05:20:18 +0000 (14:20 +0900)]
Merge branch 'rj/no-sign-compare' into maint

Many codepaths have been updated to squelch -Wsign-compare
warnings.

* rj/no-sign-compare:
  ALLOC_GROW: avoid -Wsign-compare warnings
  cache.h: hex2chr() - avoid -Wsign-compare warnings
  commit-slab.h: avoid -Wsign-compare warnings
  git-compat-util.h: xsize_t() - avoid -Wsign-compare warnings

3 years agoMerge branch 'ma/ts-cleanups' into maint
Junio C Hamano [Mon, 23 Oct 2017 05:19:02 +0000 (14:19 +0900)]
Merge branch 'ma/ts-cleanups' into maint

Assorted bugfixes and clean-ups.

* ma/ts-cleanups:
  ThreadSanitizer: add suppressions
  strbuf_setlen: don't write to strbuf_slopbuf
  pack-objects: take lock before accessing `remaining`
  convert: always initialize attr_action in convert_attrs

3 years agoMerge branch 'ls/travis-scriptify' into maint
Junio C Hamano [Mon, 23 Oct 2017 05:17:53 +0000 (14:17 +0900)]
Merge branch 'ls/travis-scriptify' into maint

The scripts to drive TravisCI has been reorganized and then an
optimization to avoid spending cycles on a branch whose tip is
tagged has been implemented.

* ls/travis-scriptify:
  travis-ci: fix "skip_branch_tip_with_tag()" string comparison
  travis: dedent a few scripts that are indented overly deeply
  travis-ci: skip a branch build if equal tag is present
  travis-ci: move Travis CI code into dedicated scripts

3 years agoMerge branch 'er/fast-import-dump-refs-on-checkpoint' into maint
Junio C Hamano [Mon, 23 Oct 2017 05:17:27 +0000 (14:17 +0900)]
Merge branch 'er/fast-import-dump-refs-on-checkpoint' into maint

The checkpoint command "git fast-import" did not flush updates to
refs and marks unless at least one object was created since the
last checkpoint, which has been corrected, as these things can
happen without any new object getting created.

* er/fast-import-dump-refs-on-checkpoint:
  fast-import: checkpoint: dump branches/tags/marks even if object_count==0

3 years agoMerge branch 'jt/fast-export-copy-modify-fix' into maint
Junio C Hamano [Mon, 23 Oct 2017 05:14:51 +0000 (14:14 +0900)]
Merge branch 'jt/fast-export-copy-modify-fix' into maint

"git fast-export" with -M/-C option issued "copy" instruction on a
path that is simultaneously modified, which was incorrect.

* jt/fast-export-copy-modify-fix:
  fast-export: do not copy from modified file

3 years agoMerge branch 'nd/worktree-kill-parse-ref' into maint
Junio C Hamano [Mon, 23 Oct 2017 05:14:16 +0000 (14:14 +0900)]
Merge branch 'nd/worktree-kill-parse-ref' into maint

"git branch -M a b" while on a branch that is completely unrelated
to either branch a or branch b misbehaved when multiple worktree
was in use.  This has been fixed.

* nd/worktree-kill-parse-ref:
  branch: fix branch renaming not updating HEADs correctly

3 years agol10n: ru.po: update Russian translation
Dimitriy Ryazantcev [Sun, 22 Oct 2017 17:35:13 +0000 (20:35 +0300)]
l10n: ru.po: update Russian translation

Signed-off-by: Dimitriy Ryazantcev <dimitriy.ryazantcev@gmail.com>
3 years agoMerge branch 'master' of https://github.com/vnwildman/git
Jiang Xin [Sun, 22 Oct 2017 11:01:07 +0000 (19:01 +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 round 2

3 years agoGit 2.15-rc2 v2.15.0-rc2
Junio C Hamano [Thu, 19 Oct 2017 05:49:17 +0000 (14:49 +0900)]
Git 2.15-rc2

Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoMerge branch 'jc/branch-force-doc-readability-fix'
Junio C Hamano [Thu, 19 Oct 2017 05:45:45 +0000 (14:45 +0900)]
Merge branch 'jc/branch-force-doc-readability-fix'

Doc update.

* jc/branch-force-doc-readability-fix:
  branch doc: sprinkle a few commas for readability

3 years agoMerge branch 'dg/filter-branch-filter-order-doc'
Junio C Hamano [Thu, 19 Oct 2017 05:45:45 +0000 (14:45 +0900)]
Merge branch 'dg/filter-branch-filter-order-doc'

Update the documentation for "git filter-branch" so that the filter
options are listed in the same order as they are applied, as
described in an earlier part of the doc.

* dg/filter-branch-filter-order-doc:
  doc: list filter-branch subdirectory-filter first

3 years agoMerge branch 'jc/fetch-refspec-doc-update'
Junio C Hamano [Thu, 19 Oct 2017 05:45:44 +0000 (14:45 +0900)]
Merge branch 'jc/fetch-refspec-doc-update'

"git fetch <there> <src>:<dst>" allows an object name on the <src>
side when the other side accepts such a request since Git v2.5, but
the documentation was left stale.

* jc/fetch-refspec-doc-update:
  fetch doc: src side of refspec could be full SHA-1

3 years agoMerge branch 'wk/merge-options-gpg-sign-doc'
Junio C Hamano [Thu, 19 Oct 2017 05:45:43 +0000 (14:45 +0900)]
Merge branch 'wk/merge-options-gpg-sign-doc'

Doc updates.

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

3 years agoMerge branch 'l10n_fr_v2.15.0r2' of git://github.com/jnavila/git
Jiang Xin [Thu, 19 Oct 2017 00:17:23 +0000 (08:17 +0800)]
Merge branch 'l10n_fr_v2.15.0r2' of git://github.com/jnavila/git

* 'l10n_fr_v2.15.0r2' of git://github.com/jnavila/git:
  l10n: fr.po: v2.15.0 round 2
  l10n: fr.po change translation of "First, rewinding"
  l10n: fr.po fix some mistakes

3 years agoMerge branch 'master' of git://github.com/nafmo/git-l10n-sv
Jiang Xin [Thu, 19 Oct 2017 00:16:30 +0000 (08:16 +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 (3245t0f0u)

3 years agoMerge branch 'master' of https://github.com/Softcatala/git-po
Jiang Xin [Thu, 19 Oct 2017 00:14:55 +0000 (08:14 +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 agoMerge branch 'translation' of https://github.com/ChrisADR/git-po
Jiang Xin [Thu, 19 Oct 2017 00:13:29 +0000 (08:13 +0800)]
Merge branch 'translation' of https://github.com/ChrisADR/git-po

* 'translation' of https://github.com/ChrisADR/git-po:
  l10n: es.po: v2.15.0 round 2

3 years agol10n: vi.po(3245t): Updated Vietnamese translation for v2.15.0 round 2
Tran Ngoc Quan [Thu, 19 Oct 2017 00:08:04 +0000 (07:08 +0700)]
l10n: vi.po(3245t): Updated Vietnamese translation for v2.15.0 round 2

Signed-off-by: Tran Ngoc Quan <vnwildman@gmail.com>
3 years agol10n: sv.po: Update Swedish translation (3245t0f0u)
Peter Krefting [Wed, 18 Oct 2017 18:35:32 +0000 (19:35 +0100)]
l10n: sv.po: Update Swedish translation (3245t0f0u)

Signed-off-by: Peter Krefting <peter@softwolves.pp.se>
3 years agol10n: fr.po: v2.15.0 round 2
Jean-Noel Avila [Sun, 8 Oct 2017 12:37:52 +0000 (14:37 +0200)]
l10n: fr.po: v2.15.0 round 2

Signed-off-by: Jean-Noel Avila <jn.avila@free.fr>
3 years agol10n: fr.po change translation of "First, rewinding"
Nicolas Cornu [Tue, 19 Sep 2017 07:37:34 +0000 (09:37 +0200)]
l10n: fr.po change translation of "First, rewinding"

Signed-off-by: Nicolas Cornu <nicolac76@yahoo.fr>
3 years agol10n: fr.po fix some mistakes
Jean-Noel Avila [Thu, 14 Sep 2017 12:05:41 +0000 (14:05 +0200)]
l10n: fr.po fix some mistakes

Reported-by: Christophe Jaillet <christophe.jaillet@wanadoo.fr>
Signed-off-by: Jean-Noel Avila <jean-noel.avila@scantech.fr>
3 years agoSync with maint
Junio C Hamano [Wed, 18 Oct 2017 05:26:53 +0000 (14:26 +0900)]
Sync with maint

* maint:
  Prepare for 2.14.3

3 years agoPrepare for 2.14.3
Junio C Hamano [Wed, 18 Oct 2017 05:24:09 +0000 (14:24 +0900)]
Prepare for 2.14.3

Signed-off-by: Junio C Hamano <gitster@pobox.com>
3 years agoMerge branch 'jk/ref-filter-colors-fix' into maint
Junio C Hamano [Wed, 18 Oct 2017 05:20:43 +0000 (14:20 +0900)]
Merge branch 'jk/ref-filter-colors-fix' into maint

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.

* 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"
  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

3 years agoMerge branch 'jc/doc-checkout' into maint
Junio C Hamano [Wed, 18 Oct 2017 05:19:14 +0000 (14:19 +0900)]
Merge branch 'jc/doc-checkout' into maint

Doc update.

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

3 years agoMerge branch 'tb/complete-describe' into maint
Junio C Hamano [Wed, 18 Oct 2017 05:19:14 +0000 (14:19 +0900)]
Merge branch 'tb/complete-describe' into maint

Docfix.

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

3 years agoMerge branch 'rs/rs-mailmap' into maint
Junio C Hamano [Wed, 18 Oct 2017 05:19:14 +0000 (14:19 +0900)]
Merge branch 'rs/rs-mailmap' into maint

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

3 years agoMerge branch 'rs/fsck-null-return-from-lookup' into maint
Junio C Hamano [Wed, 18 Oct 2017 05:19:14 +0000 (14:19 +0900)]
Merge branch 'rs/fsck-null-return-from-lookup' into maint

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()

3 years agoMerge branch 'jk/sha1-loose-object-info-fix' into maint
Junio C Hamano [Wed, 18 Oct 2017 05:19:14 +0000 (14:19 +0900)]
Merge branch 'jk/sha1-loose-object-info-fix' into maint

Leakfix and futureproofing.

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

3 years agoMerge branch 'sb/branch-avoid-repeated-strbuf-release' into maint
Junio C Hamano [Wed, 18 Oct 2017 05:19:14 +0000 (14:19 +0900)]
Merge branch 'sb/branch-avoid-repeated-strbuf-release' into maint

* sb/branch-avoid-repeated-strbuf-release:
  branch: reset instead of release a strbuf

3 years agoMerge branch 'rs/qsort-s' into maint
Junio C Hamano [Wed, 18 Oct 2017 05:19:14 +0000 (14:19 +0900)]
Merge branch 'rs/qsort-s' into maint

* rs/qsort-s:
  test-stringlist: avoid buffer underrun when sorting nothing

3 years agoMerge branch 'jn/strbuf-doc-re-reuse' into maint
Junio C Hamano [Wed, 18 Oct 2017 05:19:13 +0000 (14:19 +0900)]
Merge branch 'jn/strbuf-doc-re-reuse' into maint

* jn/strbuf-doc-re-reuse:
  strbuf doc: reuse after strbuf_release is fine

3 years agoMerge branch 'rs/run-command-use-alloc-array' into maint
Junio C Hamano [Wed, 18 Oct 2017 05:19:13 +0000 (14:19 +0900)]
Merge branch 'rs/run-command-use-alloc-array' into maint

Code clean-up.

* rs/run-command-use-alloc-array:
  run-command: use ALLOC_ARRAY

3 years agoMerge branch 'rs/tag-null-pointer-arith-fix' into maint
Junio C Hamano [Wed, 18 Oct 2017 05:19:12 +0000 (14:19 +0900)]
Merge branch 'rs/tag-null-pointer-arith-fix' into maint

Code clean-up.

* rs/tag-null-pointer-arith-fix:
  tag: avoid NULL pointer arithmetic

3 years agoMerge branch 'rs/cocci-de-paren-call-params' into maint
Junio 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

3 years agoMerge branch 'ad/doc-markup-fix' into maint
Junio 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

3 years agoMerge branch 'mr/doc-negative-pathspec' into maint
Junio 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

3 years agoMerge branch 'jk/validate-headref-fix' into maint
Junio 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

3 years agoMerge branch 'ks/doc-use-camelcase-for-config-name' into maint
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

3 years agoMerge branch 'jk/doc-read-tree-table-asciidoctor-fix' into maint
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

3 years agoMerge branch 'hn/typofix' into maint
Junio C Hamano [Wed, 18 Oct 2017 05:19:11 +0000 (14:19 +0900)]
Merge branch 'hn/typofix' into maint

* hn/typofix:
  submodule.h: typofix

3 years agoMerge branch 'ks/test-readme-phrasofix' into maint
Junio 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

3 years agoMerge branch 'ez/doc-duplicated-words-fix' into maint
Junio 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)

3 years agoMerge branch 'kd/doc-for-each-ref' into maint
Junio 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

3 years agoMerge branch 'cc/subprocess-handshake-missing-capabilities' into maint
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

3 years agoMerge branch 'jk/system-path-cleanup' into maint
Junio 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

3 years agoMerge branch 'bb/doc-eol-dirty' into maint
Junio 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

3 years agoMerge branch 'mg/timestamp-t-fix' into maint
Junio 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

3 years agoMerge branch 'ma/pkt-line-leakfix' into maint
Junio 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()

3 years agoMerge branch 'jk/config-lockfile-leak-fix' into maint
Junio 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

3 years agoMerge branch 'dw/diff-highlight-makefile-fix' into maint
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

3 years agoMerge branch 'jk/drop-sha1-entry-pos' into maint
Junio 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

3 years agoMerge branch 'tb/ref-filter-empty-modifier' into maint
Junio 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

3 years agoMerge branch 'rb/compat-poll-fix' into maint
Junio 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

3 years agoMerge branch 'tg/memfixes' into maint
Junio 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

3 years agoMerge branch 'ar/request-pull-phrasofix' into maint
Junio 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

3 years agoMerge branch 'jc/merge-x-theirs-docfix' into maint
Junio 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

3 years agoMerge branch 'rs/mailinfo-qp-decode-fix' into maint
Junio 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

3 years agoMerge branch 'ik/userdiff-html-h-element-fix' into maint
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

3 years agoMerge branch 'jk/diff-blob' into maint
Junio 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

3 years agoMerge branch 'jk/describe-omit-some-refs' into maint
Junio 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

3 years agoMerge branch 'mh/for-each-string-list-item-empty-fix' into maint
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

3 years agoMerge branch 'tb/test-lint-echo-e' into maint
Junio 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

3 years agoMerge branch 'aw/gc-lockfile-fscanf-fix' into maint
Junio 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

3 years agoMerge branch 'tg/refs-allowed-flags' into maint
Junio 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

3 years agoMerge branch 'rs/archive-excluded-directory' into maint
Junio 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

3 years agoMerge branch 'rk/commit-tree-make-F-verbatim' into maint
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

3 years agoMerge branch 'mh/packed-ref-store-prep' into maint
Junio 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

3 years agoMerge branch 'mm/send-email-cc-cruft' into maint
Junio 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

3 years agoMerge branch 'rs/strbuf-getwholeline-fix' into maint
Junio 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)

3 years agobranch doc: sprinkle a few commas for readability
Junio 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>
3 years agoPreparing for rc2 continues
Junio 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>
3 years agoMerge 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"

3 years agoMerge 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

3 years agodoc: list filter-branch subdirectory-filter first
David 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>
3 years agosequencer.c: unify an error message
Ralf 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>
3 years agofetch doc: src side of refspec could be full SHA-1
Junio 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>
3 years agol10n: Update Catalan translation
Jordi Mas [Tue, 17 Oct 2017 12:28:23 +0000 (13:28 +0100)]
l10n: Update Catalan translation

Signed-off-by: Jordi Mas <jmas@softcatala.org>
3 years agol10n: ko.po: Update Korean translation
Changwoo 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>
3 years agotag: respect color.ui config
Jeff 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>
3 years agoRevert "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>
3 years agoRevert "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>
3 years agoRevert "color: make "always" the same as "auto" in config"
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>
3 years agoMerge branch 'jk/ui-color-always-to-auto-maint' (early part) into jk/ref-filter-color...
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