t/lib-terminal: allow TTY tests to run under recent Mac OS

TTY tests were previously skipped on all Mac OS systems to avoid a
bug where reading from pty master occasionally hung.

The bug has since been found not to be reproducible under Mac OS
10.9 and 10.10.1, so allow TTY tests under Mac OS 10.9 (Mavericks)
and more recent versions.

Helped-by: Junio C Hamano <gitster@pobox.com>
Helped-by: John Szakmeister <john@szakmeister.net>
Helped-by: Johannes Sixt <j6t@kdbg.org>
Helped-by: Jeff King <peff@peff.net>
Signed-off-by: Mike Blume <blume.mike@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Git 2.2.0-rc2

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

Make this test script appear somewhat less old-fashioned:

 - Use test helper functions:
    - write_script
    - test_commit
    - test_write_lines
    - test_line_count
    - test_config
    - test_unconfig
    - test_path_is_missing

 - Remove whitespace between redirection operators and their targets.

 - Move preparation of "expect" files into tests.

 - Rename "output" files to "actual".

 - More consistent quoting, especially around commands that might
   expand to nothing.

 - More visibility of important whitespace with ${indent}.

 - Combine pairs of tests that unnecessarily split setup and verification.

Improved-by: Eric Sunshine <sunshine@sunshineco.com>
Improved-by: Junio C Hamano <gitster@pobox.com>
Improved-by: Michael Blume <blume.mike@gmail.com>
Improved-by: Jeff King <peff@peff.net>
Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Merge branch 'jc/clone-borrow' into jch

Allow "git clone --reference" to be used more safely.

* jc/clone-borrow:
  clone: --dissociate option to mark that reference is only temporary
Merge branch 'jc/checkout-local-track-report' into jch

The report from "git checkout" on a branch that builds on another
local branch by setting its branch.*.merge to branch name (not a
full refname) incorrectly said that the upstream is gone.

* jc/checkout-local-track-report:
  checkout: report upstream correctly even with loosely defined branch.*.merge
Merge branch 'jc/diff-b-m' into jch

Fix long-standing bug in "diff -B -M" output.

* jc/diff-b-m:
  diff -B -M: fix output for "copy and then rewrite" case
Merge branch 'jc/strbuf-add-lines-avoid-sp-ht-sequence' into jch

The commented output used to blindly add a SP before the payload
line, resulting in "# \t<indented text>\n" when the payload began
with a HT.  Instead, produce "#\t<indented text>\n".

* jc/strbuf-add-lines-avoid-sp-ht-sequence:
  strbuf_add_commented_lines(): avoid SP-HT sequence in commented lines
Merge branch 'jc/conflict-hint' into jch

Unlike all the other hints given in the commit log editor, the list
of conflicted paths were appended at the end without commented out.

* jc/conflict-hint:
  merge & sequencer: turn "Conflicts:" hint into a comment
  builtin/commit.c: extract ignore_non_trailer() helper function
  merge & sequencer: unify codepaths that write "Conflicts:" hint
  builtin/merge.c: drop a parameter that is never used
Merge branch 'nd/lockfile-absolute' into jch

The lockfile API can get confused which file to clean up when the
process moved the $cwd after creating a lockfile.

* nd/lockfile-absolute:
  lockfile.c: store absolute path
Merge branch 'jc/merge-bases' into jch

* jc/merge-bases:
  get_merge_bases(): always clean-up object flags
  bisect: clean flags after checking merge bases
Merge branch 'br/imap-send-verbosity' into jch

* br/imap-send-verbosity:
  imap-send: use parse options API to determine verbosity
Merge branch 'br/imap-send-via-libcurl' into jch

* br/imap-send-via-libcurl:
  git-imap-send: use libcurl for implementation
Merge branch 'jc/doc-commit-only' into jch

* jc/doc-commit-only:
  Documentation/git-commit: clarify that --only/--include records the working tree contents
Merge branch 'cc/interpret-trailers' into jch

* cc/interpret-trailers:
  trailer: display a trailer without its trailing newline
  trailer: ignore comment lines inside the trailers
Merge branch 'rs/env-array-in-child-process' into jch

* rs/env-array-in-child-process:
  use args member of struct child_process
Merge branch 'tq/git-ssh-command' into jch

* tq/git-ssh-command:
  git_connect: set ssh shell command in GIT_SSH_COMMAND
Merge branch 'mh/doc-remote-helper-xref' into jch

* mh/doc-remote-helper-xref:
  doc: add some crossrefs between manual pages
Merge branch 'ta/tutorial-modernize' into jch

* ta/tutorial-modernize:
  gittutorial.txt: remove reference to ancient Git version
Merge branch 'jk/checkout-from-tree' into jch

* jk/checkout-from-tree:
  checkout $tree: do not throw away unchanged index entries
Merge branch 'mb/enable-lib-terminal-test-on-newer-darwin' into jch

* mb/enable-lib-terminal-test-on-newer-darwin:
  t/lib-terminal: allow TTY tests to run under recent Mac OS