git/git.git
5 years agoblame: require 0 context lines while finding moved lines with -M
David Kastrup [Sat, 28 May 2016 09:13:53 +0000 (11:13 +0200)]
blame: require 0 context lines while finding moved lines with -M

The core part of git blame -M required 1 context line, but
there is no rationale to be found in the code; it causes artifacts
like discussed in the thread:

  <http://thread.gmane.org/gmane.comp.version-control.git/255289/>.

<http://permalink.gmane.org/gmane.comp.version-control.git/295795>
sheds some more light on the history of the previous choice.

Signed-off-by: David Kastrup <dak@gnu.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoSync with maint
Junio C Hamano [Thu, 26 May 2016 20:28:24 +0000 (13:28 -0700)]
Sync with maint

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

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

Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoMerge branch 'jc/linkgit-fix' into maint
Junio C Hamano [Thu, 26 May 2016 20:17:26 +0000 (13:17 -0700)]
Merge branch 'jc/linkgit-fix' into maint

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

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

5 years agoMerge branch 'ls/travis-build-doc' into maint
Junio C Hamano [Thu, 26 May 2016 20:17:25 +0000 (13:17 -0700)]
Merge branch 'ls/travis-build-doc' into maint

CI test was taught to build documentation pages.

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

5 years agoMerge branch 'jc/fsck-nul-in-commit' into maint
Junio C Hamano [Thu, 26 May 2016 20:17:24 +0000 (13:17 -0700)]
Merge branch 'jc/fsck-nul-in-commit' into maint

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

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

5 years agoMerge branch 'jk/rebase-interative-eval-fix' into maint
Junio C Hamano [Thu, 26 May 2016 20:17:24 +0000 (13:17 -0700)]
Merge branch 'jk/rebase-interative-eval-fix' into maint

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

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

5 years agoMerge branch 'js/windows-dotgit' into maint
Junio C Hamano [Thu, 26 May 2016 20:17:23 +0000 (13:17 -0700)]
Merge branch 'js/windows-dotgit' into maint

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

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

5 years agoMerge branch 'kf/gpg-sig-verification-doc' into maint
Junio C Hamano [Thu, 26 May 2016 20:17:22 +0000 (13:17 -0700)]
Merge branch 'kf/gpg-sig-verification-doc' into maint

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

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

5 years agoMerge branch 'lp/typofixes' into maint
Junio C Hamano [Thu, 26 May 2016 20:17:21 +0000 (13:17 -0700)]
Merge branch 'lp/typofixes' into maint

Typofixes.

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

5 years agoMerge branch 'sb/z-is-gnutar-ism' into maint
Junio C Hamano [Thu, 26 May 2016 20:17:21 +0000 (13:17 -0700)]
Merge branch 'sb/z-is-gnutar-ism' into maint

Test fix.

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

5 years agoMerge branch 'va/i18n-misc-updates' into maint
Junio C Hamano [Thu, 26 May 2016 20:17:20 +0000 (13:17 -0700)]
Merge branch 'va/i18n-misc-updates' into maint

Mark several messages for translation.

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

5 years agoMerge branch 'bn/config-doc-tt-varnames' into maint
Junio C Hamano [Thu, 26 May 2016 20:17:19 +0000 (13:17 -0700)]
Merge branch 'bn/config-doc-tt-varnames' into maint

Doc formatting fixes.

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

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

Message fix.

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

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

Test fix.

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

5 years agoMerge branch 'jc/test-seq' into maint
Junio C Hamano [Thu, 26 May 2016 20:17:16 +0000 (13:17 -0700)]
Merge branch 'jc/test-seq' into maint

Test fix.

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

5 years agoMerge branch 'tb/t5601-sed-fix' into maint
Junio C Hamano [Thu, 26 May 2016 20:17:15 +0000 (13:17 -0700)]
Merge branch 'tb/t5601-sed-fix' into maint

Test fix.

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

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

Message fix.

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

5 years agoMerge branch 'va/mailinfo-doc-typofix' into maint
Junio C Hamano [Thu, 26 May 2016 20:17:13 +0000 (13:17 -0700)]
Merge branch 'va/mailinfo-doc-typofix' into maint

Typofix.

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

5 years agoMerge branch 'maint-2.7' into maint
Junio C Hamano [Thu, 26 May 2016 20:16:51 +0000 (13:16 -0700)]
Merge branch 'maint-2.7' into maint

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

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

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

5 years agoarchive-tar: convert snprintf to xsnprintf
Jeff King [Thu, 26 May 2016 04:28:08 +0000 (00:28 -0400)]
archive-tar: convert snprintf to xsnprintf

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

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

Noticed-by: Paul Green <Paul.Green@stratus.com>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoGit 2.9-rc0 v2.9.0-rc0
Junio C Hamano [Mon, 23 May 2016 22:02:48 +0000 (15:02 -0700)]
Git 2.9-rc0

Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoMerge branch 'svn-travis' of git://bogomips.org/git-svn
Junio C Hamano [Mon, 23 May 2016 22:01:03 +0000 (15:01 -0700)]
Merge branch 'svn-travis' of git://bogomips.org/git-svn

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Add perf test for "rebase -i"

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

5 years agotravis-ci: enable Git SVN tests t91xx on Linux
Lars Schneider [Thu, 19 May 2016 09:10:08 +0000 (11:10 +0200)]
travis-ci: enable Git SVN tests t91xx on Linux

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

Signed-off-by: Lars Schneider <larsxschneider@gmail.com>
Signed-off-by: Eric Wong <e@80x24.org>
5 years agorerere: remove an null statement
Junio C Hamano [Thu, 19 May 2016 19:51:22 +0000 (12:51 -0700)]
rerere: remove an null statement

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

Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoSync with 2.8.3
Junio C Hamano [Wed, 18 May 2016 22:33:57 +0000 (15:33 -0700)]
Sync with 2.8.3

* maint:
  Git 2.8.3

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

Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoMerge branch 'jk/push-client-deadlock-fix'
Junio C Hamano [Wed, 18 May 2016 22:11:46 +0000 (15:11 -0700)]
Merge branch 'jk/push-client-deadlock-fix'

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

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

5 years agoMerge branch 'sb/misc-cleanups' into HEAD
Junio C Hamano [Wed, 18 May 2016 21:40:15 +0000 (14:40 -0700)]
Merge branch 'sb/misc-cleanups' into HEAD

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

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

Doc update.

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

5 years agoMerge branch 'sb/clean-test-fix' into HEAD
Junio C Hamano [Wed, 18 May 2016 21:40:14 +0000 (14:40 -0700)]
Merge branch 'sb/clean-test-fix' into HEAD

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

5 years agoMerge branch 'rn/glossary-typofix' into HEAD
Junio C Hamano [Wed, 18 May 2016 21:40:13 +0000 (14:40 -0700)]
Merge branch 'rn/glossary-typofix' into HEAD

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

5 years agoMerge branch 'ew/normal-to-e' into HEAD
Junio C Hamano [Wed, 18 May 2016 21:40:12 +0000 (14:40 -0700)]
Merge branch 'ew/normal-to-e' into HEAD

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

5 years agoMerge branch 'sb/config-exit-status-list' into HEAD
Junio C Hamano [Wed, 18 May 2016 21:40:12 +0000 (14:40 -0700)]
Merge branch 'sb/config-exit-status-list' into HEAD

Doc update.

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

5 years agoMerge branch 'rt/string-list-lookup-cleanup' into HEAD
Junio C Hamano [Wed, 18 May 2016 21:40:12 +0000 (14:40 -0700)]
Merge branch 'rt/string-list-lookup-cleanup' into HEAD

Code cleanup.

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

5 years agoMerge branch 'jk/fix-attribute-macro-in-2.5' into HEAD
Junio C Hamano [Wed, 18 May 2016 21:40:12 +0000 (14:40 -0700)]
Merge branch 'jk/fix-attribute-macro-in-2.5' into HEAD

Code fixup.

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

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

Code cleanup.

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

5 years agoMerge branch 'nd/remove-unused' into HEAD
Junio C Hamano [Wed, 18 May 2016 21:40:11 +0000 (14:40 -0700)]
Merge branch 'nd/remove-unused' into HEAD

Code cleanup.

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

5 years agoMerge branch 'sk/gitweb-highlight-encoding' into HEAD
Junio C Hamano [Wed, 18 May 2016 21:40:10 +0000 (14:40 -0700)]
Merge branch 'sk/gitweb-highlight-encoding' into HEAD

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

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

5 years agoMerge branch 'ls/travis-submitting-patches' into HEAD
Junio C Hamano [Wed, 18 May 2016 21:40:09 +0000 (14:40 -0700)]
Merge branch 'ls/travis-submitting-patches' into HEAD

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

5 years agoMerge branch 'js/close-packs-before-gc' into HEAD
Junio C Hamano [Wed, 18 May 2016 21:40:09 +0000 (14:40 -0700)]
Merge branch 'js/close-packs-before-gc' into HEAD

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

5 years agoMerge branch 'ls/p4-lfs' into HEAD
Junio C Hamano [Wed, 18 May 2016 21:40:08 +0000 (14:40 -0700)]
Merge branch 'ls/p4-lfs' into HEAD

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

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

5 years agoMerge branch 'ls/p4-lfs-test-fix-2.7.0' into HEAD
Junio C Hamano [Wed, 18 May 2016 21:40:08 +0000 (14:40 -0700)]
Merge branch 'ls/p4-lfs-test-fix-2.7.0' into HEAD

Fix a broken test.

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

5 years agoMerge branch 'nf/mergetool-prompt' into HEAD
Junio C Hamano [Wed, 18 May 2016 21:40:07 +0000 (14:40 -0700)]
Merge branch 'nf/mergetool-prompt' into HEAD

UI consistency improvements.

* nf/mergetool-prompt:
  difftool/mergetool: make the form of yes/no questions consistent

5 years agoMerge branch 'jd/send-email-to-whom' into HEAD
Junio C Hamano [Wed, 18 May 2016 21:40:07 +0000 (14:40 -0700)]
Merge branch 'jd/send-email-to-whom' into HEAD

A question by "git send-email" to ask the identity of the sender
has been updated.

* jd/send-email-to-whom:
  send-email: fix grammo in the prompt that asks e-mail recipients

5 years agoMerge branch 'js/win32-mmap' into HEAD
Junio C Hamano [Wed, 18 May 2016 21:40:06 +0000 (14:40 -0700)]
Merge branch 'js/win32-mmap' into HEAD

mmap emulation on Windows has been optimized and work better without
consuming paging store when not needed.

* js/win32-mmap:
  mmap(win32): avoid expensive fstat() call
  mmap(win32): avoid copy-on-write when it is unnecessary
  win32mmap: set errno appropriately

5 years agoMerge branch 'jk/push-client-deadlock-fix' into HEAD
Junio C Hamano [Wed, 18 May 2016 21:40:06 +0000 (14:40 -0700)]
Merge branch 'jk/push-client-deadlock-fix' into HEAD

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

* jk/push-client-deadlock-fix:
  Windows: only add a no-op pthread_sigmask() when needed
  Windows: add pthread_sigmask() that does nothing
  t5504: drop sigpipe=ok from push tests
  fetch-pack: isolate sigpipe in demuxer thread
  send-pack: isolate sigpipe in demuxer thread
  run-command: teach async threads to ignore SIGPIPE
  send-pack: close demux pipe before finishing async process

5 years agoMerge branch 'sb/mv-submodule-fix' into HEAD
Junio C Hamano [Wed, 18 May 2016 21:40:05 +0000 (14:40 -0700)]
Merge branch 'sb/mv-submodule-fix' into HEAD

"git mv old new" did not adjust the path for a submodule that lives
as a subdirectory inside old/ directory correctly.

* sb/mv-submodule-fix:
  mv: allow moving nested submodules

5 years agoMerge branch 'da/user-useconfigonly' into HEAD
Junio C Hamano [Wed, 18 May 2016 21:40:05 +0000 (14:40 -0700)]
Merge branch 'da/user-useconfigonly' into HEAD

The "user.useConfigOnly" configuration variable makes it an error
if users do not explicitly set user.name and user.email.  However,
its check was not done early enough and allowed another error to
trigger, reporting that the default value we guessed from the
system setting was unusable.  This was a suboptimal end-user
experience as we want the users to set user.name/user.email without
relying on the auto-detection at all.

* da/user-useconfigonly:
  ident: give "please tell me" message upon useConfigOnly error
  ident: check for useConfigOnly before auto-detection of name/email

5 years agoMerge branch 'ld/p4-test-py3' into HEAD
Junio C Hamano [Wed, 18 May 2016 21:40:04 +0000 (14:40 -0700)]
Merge branch 'ld/p4-test-py3' into HEAD

The test scripts for "git p4" (but not "git p4" implementation
itself) has been updated so that they would work even on a system
where the installed version of Python is python 3.

* ld/p4-test-py3:
  git-p4 tests: time_in_seconds should use $PYTHON_PATH
  git-p4 tests: work with python3 as well as python2
  git-p4 tests: cd to / before running python

5 years agoThirteenth batch for 2.9
Junio C Hamano [Tue, 17 May 2016 21:47:06 +0000 (14:47 -0700)]
Thirteenth batch for 2.9

Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoMerge branch 'kf/gpg-sig-verification-doc'
Junio C Hamano [Tue, 17 May 2016 21:38:39 +0000 (14:38 -0700)]
Merge branch 'kf/gpg-sig-verification-doc'

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

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

5 years agoMerge branch 'js/windows-dotgit'
Junio C Hamano [Tue, 17 May 2016 21:38:39 +0000 (14:38 -0700)]
Merge branch 'js/windows-dotgit'

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

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

5 years agoMerge branch 'va/mailinfo-doc-typofix'
Junio C Hamano [Tue, 17 May 2016 21:38:37 +0000 (14:38 -0700)]
Merge branch 'va/mailinfo-doc-typofix'

Typofix.

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

5 years agoMerge branch 'jk/test-send-sh-x-trace-elsewhere'
Junio C Hamano [Tue, 17 May 2016 21:38:36 +0000 (14:38 -0700)]
Merge branch 'jk/test-send-sh-x-trace-elsewhere'

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

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

5 years agoMerge branch 'js/http-custom-headers'
Junio C Hamano [Tue, 17 May 2016 21:38:35 +0000 (14:38 -0700)]
Merge branch 'js/http-custom-headers'

Update tests for "http.extraHeaders=<header>" to be portable back
to Apache 2.2 (the original depended on <RequireAll/> which is a
more recent feature).

* js/http-custom-headers:
  submodule: ensure that -c http.extraheader is heeded
  t5551: make the test for extra HTTP headers more robust
  tests: adjust the configuration for Apache 2.2

5 years agoMerge branch 'jk/rebase-interative-eval-fix'
Junio C Hamano [Tue, 17 May 2016 21:38:35 +0000 (14:38 -0700)]
Merge branch 'jk/rebase-interative-eval-fix'

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

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

5 years agoMerge branch 'jc/fsck-nul-in-commit'
Junio C Hamano [Tue, 17 May 2016 21:38:34 +0000 (14:38 -0700)]
Merge branch 'jc/fsck-nul-in-commit'

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

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

5 years agoMerge branch 'nd/test-helpers'
Junio C Hamano [Tue, 17 May 2016 21:38:33 +0000 (14:38 -0700)]
Merge branch 'nd/test-helpers'

Switching between 'master' and 'next', between which the paths to
test helper binaries have changed, did not update bin-wrappers/*
scripts used in tests, causing false test failures.

* nd/test-helpers:
  wrap-for-bin.sh: regenerate bin-wrappers when switching branches

5 years agoMerge branch 'ls/travis-build-doc'
Junio C Hamano [Tue, 17 May 2016 21:38:33 +0000 (14:38 -0700)]
Merge branch 'ls/travis-build-doc'

CI test was taught to build documentation pages.

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

5 years agoMerge branch 'jc/ll-merge-internal'
Junio C Hamano [Tue, 17 May 2016 21:38:32 +0000 (14:38 -0700)]
Merge branch 'jc/ll-merge-internal'

"git rerere" can get confused by conflict markers deliberately left
by the inner merge step, because they are indistinguishable from
the real conflict markers left by the outermost merge which are
what the end user and "rerere" need to look at.  This was fixed by
making the conflict markers left by the inner merges a bit longer.

* jc/ll-merge-internal:
  t6036: remove pointless test that expects failure
  ll-merge: use a longer conflict marker for internal merge
  ll-merge: fix typo in comment

5 years agoMerge branch 'jc/linkgit-fix'
Junio C Hamano [Tue, 17 May 2016 21:38:31 +0000 (14:38 -0700)]
Merge branch 'jc/linkgit-fix'

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

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

5 years agoMerge branch 'va/i18n-remote-comment-to-align'
Junio C Hamano [Tue, 17 May 2016 21:38:30 +0000 (14:38 -0700)]
Merge branch 'va/i18n-remote-comment-to-align'

Message fix.

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

5 years agoMerge branch 'tb/t5601-sed-fix'
Junio C Hamano [Tue, 17 May 2016 21:38:29 +0000 (14:38 -0700)]
Merge branch 'tb/t5601-sed-fix'

Test fix.

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

5 years agoMerge branch 'nd/error-errno'
Junio C Hamano [Tue, 17 May 2016 21:38:28 +0000 (14:38 -0700)]
Merge branch 'nd/error-errno'

The code for warning_errno/die_errno has been refactored and a new
error_errno() reporting helper is introduced.

* nd/error-errno: (41 commits)
  wrapper.c: use warning_errno()
  vcs-svn: use error_errno()
  upload-pack.c: use error_errno()
  unpack-trees.c: use error_errno()
  transport-helper.c: use error_errno()
  sha1_file.c: use {error,die,warning}_errno()
  server-info.c: use error_errno()
  sequencer.c: use error_errno()
  run-command.c: use error_errno()
  rerere.c: use error_errno() and warning_errno()
  reachable.c: use error_errno()
  mailmap.c: use error_errno()
  ident.c: use warning_errno()
  http.c: use error_errno() and warning_errno()
  grep.c: use error_errno()
  gpg-interface.c: use error_errno()
  fast-import.c: use error_errno()
  entry.c: use error_errno()
  editor.c: use error_errno()
  diff-no-index.c: use error_errno()
  ...

5 years agoMerge branch 'jc/test-seq'
Junio C Hamano [Tue, 17 May 2016 21:38:28 +0000 (14:38 -0700)]
Merge branch 'jc/test-seq'

Test fix.

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

5 years agoMerge branch 'es/test-gpg-tags'
Junio C Hamano [Tue, 17 May 2016 21:38:27 +0000 (14:38 -0700)]
Merge branch 'es/test-gpg-tags'

Test fix.

* es/test-gpg-tags:
  t6302: simplify non-gpg cases

5 years agoMerge branch 'ak/t4151-ls-files-could-be-empty'
Junio C Hamano [Tue, 17 May 2016 21:38:26 +0000 (14:38 -0700)]
Merge branch 'ak/t4151-ls-files-could-be-empty'

Test fix.

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

5 years agoMerge branch 'jk/submodule-c-credential'
Junio C Hamano [Tue, 17 May 2016 21:38:25 +0000 (14:38 -0700)]
Merge branch 'jk/submodule-c-credential'

An earlier addition of "sanitize_submodule_env" with 14111fc4 (git:
submodule honor -c credential.* from command line, 2016-02-29)
turned out to be a convoluted no-op; implement what it wanted to do
correctly, and stop filtering settings given via "git -c var=val".

* jk/submodule-c-credential:
  submodule: stop sanitizing config options
  submodule: use prepare_submodule_repo_env consistently
  submodule--helper: move config-sanitizing to submodule.c
  submodule: export sanitized GIT_CONFIG_PARAMETERS
  t5550: break submodule config test into multiple sub-tests
  t5550: fix typo in $HTTPD_URL

5 years agoMerge branch 'nd/remote-plural-ours-plus-theirs'
Junio C Hamano [Tue, 17 May 2016 21:38:24 +0000 (14:38 -0700)]
Merge branch 'nd/remote-plural-ours-plus-theirs'

Message fix.

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

5 years agoMerge branch 'bn/config-doc-tt-varnames'
Junio C Hamano [Tue, 17 May 2016 21:38:23 +0000 (14:38 -0700)]
Merge branch 'bn/config-doc-tt-varnames'

Doc formatting fixes.

* bn/config-doc-tt-varnames:
  config: consistently format $variables in monospaced font

5 years agoMerge branch 'va/i18n-misc-updates'
Junio C Hamano [Tue, 17 May 2016 21:38:22 +0000 (14:38 -0700)]
Merge branch 'va/i18n-misc-updates'

Mark several messages for translation.

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

5 years agoMerge branch 'js/t3404-typofix'
Junio C Hamano [Tue, 17 May 2016 21:38:22 +0000 (14:38 -0700)]
Merge branch 'js/t3404-typofix'

* js/t3404-typofix:
  t3404: fix typo

5 years agoMerge branch 'sb/z-is-gnutar-ism'
Junio C Hamano [Tue, 17 May 2016 21:38:21 +0000 (14:38 -0700)]
Merge branch 'sb/z-is-gnutar-ism'

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

5 years agoMerge branch 'lp/typofixes'
Junio C Hamano [Tue, 17 May 2016 21:38:20 +0000 (14:38 -0700)]
Merge branch 'lp/typofixes'

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

5 years agoMerge branch 'sb/submodule-deinit-all'
Junio C Hamano [Tue, 17 May 2016 21:38:19 +0000 (14:38 -0700)]
Merge branch 'sb/submodule-deinit-all'

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

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

5 years agoMerge branch 'jc/config-pathname-type'
Junio C Hamano [Tue, 17 May 2016 21:38:19 +0000 (14:38 -0700)]
Merge branch 'jc/config-pathname-type'

Consolidate description of tilde-expansion that is done to
configuration variables that take pathname to a single place.

* jc/config-pathname-type:
  config: describe 'pathname' value type

5 years agoMerge branch 'bn/http-cookiefile-config'
Junio C Hamano [Tue, 17 May 2016 21:38:18 +0000 (14:38 -0700)]
Merge branch 'bn/http-cookiefile-config'

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

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

5 years agoMerge branch 'ab/hooks'
Junio C Hamano [Tue, 17 May 2016 21:38:17 +0000 (14:38 -0700)]
Merge branch 'ab/hooks'

A new configuration variable core.hooksPath allows customizing
where the hook directory is.

* ab/hooks:
  hooks: allow customizing where the hook directory is
  githooks.txt: minor improvements to the grammar & phrasing
  githooks.txt: amend dangerous advice about 'update' hook ACL
  githooks.txt: improve the intro section

5 years agoMerge branch 'sb/submodule-init'
Junio C Hamano [Tue, 17 May 2016 21:38:16 +0000 (14:38 -0700)]
Merge branch 'sb/submodule-init'

Update of "git submodule" to move pieces of logic to C continues.

* sb/submodule-init:
  submodule init: redirect stdout to stderr
  submodule--helper update-clone: abort gracefully on missing .gitmodules
  submodule init: fail gracefully with a missing .gitmodules file
  submodule: port init from shell to C
  submodule: port resolve_relative_url from shell to C

5 years agodifftool: handle unmerged files in dir-diff mode
David Aguilar [Mon, 16 May 2016 18:05:37 +0000 (11:05 -0700)]
difftool: handle unmerged files in dir-diff mode

When files are unmerged they can show up as both unmerged and
modified in the output of `git diff --raw`.  This causes
difftool's dir-diff to create filesystem entries for the same
path twice, which fails when it encounters a duplicate path.

Ensure that each worktree path is only processed once.
Add a test to demonstrate the breakage.

Reported-by: Jan Smets <jan@smets.cx>
Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agodifftool: initialize variables for readability
David Aguilar [Mon, 16 May 2016 18:05:36 +0000 (11:05 -0700)]
difftool: initialize variables for readability

The code always goes into one of the two conditional blocks but make it
clear that not doing so is an error condition by setting $ok to 0.

Signed-off-by: David Aguilar <davvid@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agoalways quote shell arguments to test -z/-n
Jeff King [Fri, 13 May 2016 20:47:33 +0000 (16:47 -0400)]
always quote shell arguments to test -z/-n

In shell code like:

  test -z $foo
  test -n $foo

that does not quote its arguments, it's easy to think that
it is actually looking at the contents of $foo in each case.
But if $foo is empty, then "test" does not see any argument
at all! The results are quite subtle.

POSIX specifies that test's behavior depends on the number
of arguments it sees, and if $foo is empty, it sees only
one. The behavior in this case is:

  1 argument: Exit true (0) if $1 is not null; otherwise,
              exit false.

So in the "-z $foo" case, if $foo is empty, then we check
that "-z" is non-null, and it returns success. Which happens
to match what we expected.  But for "-n $foo", if $foo is
empty, we'll see that "-n" is non-null and still return
success. That's the opposite of what we intended!

Furthermore, if $foo contains whitespace, we'll end up with
more than 2 arguments. The results in this case are
generally unspecified (unless the first part of $foo happens
to be a valid binary operator, in which case the results are
specified but certainly not what we intended).

And on top of this, even though "test -z $foo" _should_ work
for the empty case, some older shells (reportedly ksh88)
complain about the missing argument.

So let's make sure we consistently quote our variable
arguments to "test". After this patch, the results of:

  git grep 'test -[zn] [^"]'

are empty.

Reported-by: Armin Kunaschik <megabreit@googlemail.com>
Helped-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agot9103: modernize test style
Jeff King [Fri, 13 May 2016 20:47:28 +0000 (16:47 -0400)]
t9103: modernize test style

The main goal here was to avoid double-quotes for
surrounding the test snippet, since it makes the code hard
to read (and to grep for common problems).

But while we're here, we can fix a few other things:

  - use test_path_* helpers, which are more robust and give
    better error messages

  - only "cd" inside a subshell, which leaves the
    environment pristine if further tests are added

  - consistently quote shell arguments. These aren't wrong
    if we assume find-rev output doesn't have any
    whitespace, but it doesn't hurt to be careful.

  - replace the old-style 'test x$foo = x' with 'test -z
    "$foo"'. Besides the quoting fix, this is the form we
    generally use in our test suite.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agot9107: switch inverted single/double quotes in test
Jeff King [Fri, 13 May 2016 20:47:24 +0000 (16:47 -0400)]
t9107: switch inverted single/double quotes in test

One of the test snippets in t9107 is enclosed in double
quotes, but then uses single quotes to surround an
interpolated variable inside the snippet, like:

  test_expect_success '...' "
test -n '$head'
  "

This happens to work because the variable is interpolated
_before_ the snippet is run, and the result is eval'd. So as
long as the variable does not contain any single quotes, the
two are equivalent. And it doesn't, as we know it is a sha1
from rev-parse above.  But this construct is unnecessarily
confusing.

But we can go a step further in cleaning up. The test is
really checking that a particular ref has a value. Rather
than checking if rev-parse produced output, we can just move
rev-parse into the test itself, and rely on the exit code
from --verify. Nobody else cares about the $head variable at
all.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agot9107: use "return 1" instead of "exit 1"
Jeff King [Fri, 13 May 2016 20:47:21 +0000 (16:47 -0400)]
t9107: use "return 1" instead of "exit 1"

When a test runs a loop, it cannot rely on the usual
&&-chaining to propagate a failure inside the loop; it needs
to break out with a failure signal. However, unless you are
in a subshell, doing so with "exit 1" will exit the entire
test script, not just the test snippet we are in (and cause
the harness to complain that test_done was never reached).

So the fundamental point of this patch is s/exit/return/.
But while we're there, let's fix a number of style and
readability issues:

  - snippets in double-quotes need an extra layer of quoting
    for their meta-characters; let's avoid that by using
    single quotes

  - accumulating loop output by appending to a file in each
    iteration is brittle, as it can be affected by content
    left in the file by earlier tests. Instead, it's better
    to redirect stdout for the whole loop, so we know the
    output only comes from that loop.

  - using "test -z" to check that diff output is empty is
    overly verbose; we can just ask diff to use --exit-code.

  - we can factor out long lists of refs to make it more
    obvious we're using the same ones in each loop

  - subshells are unnecessary when ending an &&-chain with
    "|| return 1"

  - minor style fixups like space-after-redirection, and
    "do" and "done" on their own lines

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
5 years agodiff: run arguments through precompose_argv
Alexander Rinass [Fri, 13 May 2016 20:41:02 +0000 (22:41 +0200)]
diff: run arguments through precompose_argv

When running diff commands, a pathspec containing decomposed
unicode code points is not converted to precomposed unicode form
under Mac OS X, but we normalize the paths in the index and the
history to precomposed form on that platform.  As a result, the
pathspec would not match and no diff is shown.

Unlike many builtin commands, the "diff" family of commands do
not use parse_options(), which is how other builtin commands
indirectly call precompose_argv() to normalize argv[] into
precomposed form on Mac OSX.  Teach these commands to call
precompose_argv() themselves.

Note that precomopose_argv() normalizes not just paths but all
command line arguments, so things like "git diff -G $string"
when $string has the decomposed form would first be normalized
into the precomposed form and would stop hitting the same string
in the decomposed form in the diff output with this change.

It is not a problem per-se, as "log" family of commands already use
parse_options() and call precompose_argv()--we can think of this
change as making the "diff" family of commands behave in a similar
way as the commands in the "log" family.

Signed-off-by: Alexander Rinass <alex@fournova.com>
Helped-by: Torsten Bòˆgershausen <tboegi@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>