Merge branch 'dt/tests-with-env-not-subshell'

* dt/tests-with-env-not-subshell:
  tests: use "env" to run commands with temporary env-var settings
Merge branch 'hs/simplify-bit-setting-in-fsck-tree'

* hs/simplify-bit-setting-in-fsck-tree:
  fsck: use bitwise-or assignment operator to set flag
Merge branch 'ca/doc-config-third-party'

* ca/doc-config-third-party:
  config.txt: third-party tools may and do use their own variables
Merge branch 'dw/doc-status-no-longer-shows-pound-prefix'

* dw/doc-status-no-longer-shows-pound-prefix:
  doc: status, remove leftover statement about '#' prefix
Merge branch 'js/userdiff-cc'

Improves the pattern to match the hunk-header for C/C++.

* js/userdiff-cc:
  userdiff: have 'cpp' hunk header pattern catch more C++ anchor points
  t4018: test cases showing that the cpp pattern misses many anchor points
  t4018: test cases for the built-in cpp pattern
  t4018: reduce test files for pattern compilation tests
  t4018: convert custom pattern test to the new infrastructure
  t4018: convert java pattern test to the new infrastructure
  t4018: convert perl pattern tests to the new infrastructure
  t4018: an infrastructure to test hunk headers
  userdiff: support unsigned and long long suffixes of integer constants
  userdiff: support C++ ->* and .* operators in the word regexp
Merge branch 'dp/makefile-charset-lib-doc'

* dp/makefile-charset-lib-doc:
  Makefile: describe CHARSET_LIB better
Merge branch 'ib/rev-parse-parseopt-argh'

Teaches the "rev-parse --parseopt" mechanism used by scripted
Porcelains to parse command line options and give help text how to
supply argv-help (the placeholder string for an option parameter,
e.g. "key-id" in "--gpg-sign=<key-id>").

* ib/rev-parse-parseopt-argh:
  t1502: protect runs of SPs used in the indentation
  rev-parse --parseopt: option argument name hints
Merge branch 'mr/msvc-link-with-lcurl'

* mr/msvc-link-with-lcurl:
  MSVC: allow linking with the cURL library
Merge branch 'wt/doc-submodule-name-path-confusion-1'

* wt/doc-submodule-name-path-confusion-1:
  doc: submodule.* config are keyed by submodule names
Merge branch 'wt/doc-submodule-name-path-confusion-2'

* wt/doc-submodule-name-path-confusion-2:
  doc: submodule.*.branch config is keyed by name
Merge branch 'jk/tests-cleanup'

* jk/tests-cleanup:
  t0001: drop subshells just for "cd"
  t0001: drop useless subshells
  t0001: use test_must_fail
  t0001: use test_config_global
  t0001: use test_path_is_*
  t0001: make symlink reinit test more careful
  t: prefer "git config --file" to GIT_CONFIG
  t: prefer "git config --file" to GIT_CONFIG with test_must_fail
  t: stop using GIT_CONFIG to cross repo boundaries
  t: drop useless sane_unset GIT_* calls
  t/test-lib: drop redundant unset of GIT_CONFIG
  t/Makefile: stop setting GIT_CONFIG
Merge branch 'an/branch-config-message'

* an/branch-config-message:
  branch.c: install_branch_config: simplify if chain
Merge branch 'mm/status-porcelain-format-i18n-fix'

* mm/status-porcelain-format-i18n-fix:
  status: disable translation when --porcelain is used
Update draft release notes to 2.0

Signed-off-by: Junio C Hamano <gitster@pobox.com>
Merge branch 'rs/pickaxe-i' into jch

Allow the options -i/--regexp-ignore-case, --pickaxe-regex, and -S
to be used together and work as expected to perform a pickaxe
search using case-insensitive regular expression matching.

* rs/pickaxe-i:
  pickaxe: simplify kwset loop in contains()
  pickaxe: call strlen only when necessary in diffcore_pickaxe_count()
  pickaxe: move pickaxe() after pickaxe_match()
  pickaxe: merge diffcore_pickaxe_grep() and diffcore_pickaxe_count() into diffcore_pickaxe()
  pickaxe: honor -i when used with -S and --pickaxe-regex
  t4209: use helper functions to test --author
  t4209: use helper functions to test --grep
  t4209: factor out helper function test_log_icase()
  t4209: factor out helper function test_log()
  t4209: set up expectations up front
Merge branch 'ap/remote-hg-skip-null-bookmarks' into jch

* ap/remote-hg-skip-null-bookmarks:
  remote-hg: do not fail on invalid bookmarks
Merge branch 'ks/tree-diff-nway' (early part) into jch

* 'ks/tree-diff-nway' (early part):
  tree-diff: reuse base str(buf) memory on sub-tree recursion
  tree-diff: no need to call "full" diff_tree_sha1 from show_path()
  tree-diff: rework diff_tree interface to be sha1 based
  tree-diff: diff_tree() should now be static
  tree-diff: remove special-case diff-emitting code for empty-tree cases
  tree-diff: simplify tree_entry_pathcmp
  tree-diff: show_path prototype is not needed anymore
  tree-diff: rename compare_tree_entry -> tree_entry_pathcmp
  tree-diff: move all action-taking code out of compare_tree_entry()
  tree-diff: don't assume compare_tree_entry() returns -1,0,1
  tree-diff: consolidate code for emitting diffs and recursion in one place
  tree-diff: show_tree() is not needed
  tree-diff: no need to pass match to skip_uninteresting()
  tree-diff: no need to manually verify that there is no mode change for a path
  combine-diff: move changed-paths scanning logic into its own function
  combine-diff: move show_log_first logic/action out of paths scanning
Merge branch 'cn/fetch-prune-overlapping-destination' into jch

Protect refs in a hierarchy that can come from more than one remote
hierarcies from incorrect removal by "git fetch --prune".

Since I didn't get any responses to my earlier "Comments?", I ended
up reading it myself again and found a small leak, whose fix has
been squashed in to the tip commit.

* cn/fetch-prune-overlapping-destination:
  fetch: handle overlaping refspecs on --prune
  fetch: add a failing test for prunning with overlapping refspecs

# Conflicts:
# 	remote.c
# 	t/t5510-fetch.sh
Merge branch 'nd/log-show-linear-break' into jch

Attempts to show where a single-strand-of-pearls break in "git log"
output.

* nd/log-show-linear-break:
  log: add --show-linear-break to help see non-linear history
  object.h: centralize object flag allocation
Merge branch 'ep/shell-command-substitution' into jch

* ep/shell-command-substitution:
  git-am.sh: use the $(...) construct for command substitution
  check-builtins.sh: use the $(...) construct for command substitution