{"thread":{"id":"44207","subject":"[ANNOUNCE] Git v2.10.1","startedAt":"2016-10-03T22:31:08Z","lastAt":"2016-10-03T22:31:08Z","messageCount":1,"participants":["Junio C Hamano"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"303155","messageId":"xmqqvax93w1c.fsf@gitster.mtv.corp.google.com","threadId":"44207","inReplyTo":null,"subject":"[ANNOUNCE] Git v2.10.1","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2016-10-03T22:30:39Z","receivedAt":"2016-10-03T22:31:08Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"The latest maintenance release Git v2.10.1 is now available at\nthe usual places.\n\nThe tarballs are found at:\n\n    https://www.kernel.org/pub/software/scm/git/\n\nThe following public repositories all have a copy of the 'v2.10.1'\ntag and the 'maint' branch that the tag points at:\n\n  url = https://kernel.googlesource.com/pub/scm/git/git\n  url = git://repo.or.cz/alt-git.git\n  url = git://git.sourceforge.jp/gitroot/git-core/git.git\n  url = git://git-core.git.sourceforge.net/gitroot/git-core/git-core\n  url = https://github.com/gitster/git\n\n----------------------------------------------------------------\n\nGit v2.10.1 Release Notes\n=========================\n\nFixes since v2.10\n-----------------\n\n * Clarify various ways to specify the \"revision ranges\" in the\n   documentation.\n\n * \"diff-highlight\" script (in contrib/) learned to work better with\n   \"git log -p --graph\" output.\n\n * The test framework left the number of tests and success/failure\n   count in the t/test-results directory, keyed by the name of the\n   test script plus the process ID.  The latter however turned out not\n   to serve any useful purpose.  The process ID part of the filename\n   has been removed.\n\n * Having a submodule whose \".git\" repository is somehow corrupt\n   caused a few commands that recurse into submodules loop forever.\n\n * \"git symbolic-ref -d HEAD\" happily removes the symbolic ref, but\n   the resulting repository becomes an invalid one.  Teach the command\n   to forbid removal of HEAD.\n\n * A test spawned a short-lived background process, which sometimes\n   prevented the test directory from getting removed at the end of the\n   script on some platforms.\n\n * Update a few tests that used to use GIT_CURL_VERBOSE to use the\n   newer GIT_TRACE_CURL.\n\n * Update Japanese translation for \"git-gui\".\n\n * \"git fetch http::/site/path\" did not die correctly and segfaulted\n   instead.\n\n * \"git commit-tree\" stopped reading commit.gpgsign configuration\n   variable that was meant for Porcelain \"git commit\" in Git 2.9; we\n   forgot to update \"git gui\" to look at the configuration to match\n   this change.\n\n * \"git log --cherry-pick\" used to include merge commits as candidates\n   to be matched up with other commits, resulting a lot of wasted time.\n   The patch-id generation logic has been updated to ignore merges to\n   avoid the wastage.\n\n * The http transport (with curl-multi option, which is the default\n   these days) failed to remove curl-easy handle from a curlm session,\n   which led to unnecessary API failures.\n\n * \"git diff -W\" output needs to extend the context backward to\n   include the header line of the current function and also forward to\n   include the body of the entire current function up to the header\n   line of the next one.  This process may have to merge to adjacent\n   hunks, but the code forgot to do so in some cases.\n\n * Performance tests done via \"t/perf\" did not use the same set of\n   build configuration if the user relied on autoconf generated\n   configuration.\n\n * \"git format-patch --base=...\" feature that was recently added\n   showed the base commit information after \"-- \" e-mail signature\n   line, which turned out to be inconvenient.  The base information\n   has been moved above the signature line.\n\n * Even when \"git pull --rebase=preserve\" (and the underlying \"git\n   rebase --preserve\") can complete without creating any new commit\n   (i.e. fast-forwards), it still insisted on having a usable ident\n   information (read: user.email is set correctly), which was less\n   than nice.  As the underlying commands used inside \"git rebase\"\n   would fail with a more meaningful error message and advice text\n   when the bogus ident matters, this extra check was removed.\n\n * \"git gc --aggressive\" used to limit the delta-chain length to 250,\n   which is way too deep for gaining additional space savings and is\n   detrimental for runtime performance.  The limit has been reduced to\n   50.\n\n * Documentation for individual configuration variables to control use\n   of color (like `color.grep`) said that their default value is\n   'false', instead of saying their default is taken from `color.ui`.\n   When we updated the default value for color.ui from 'false' to\n   'auto' quite a while ago, all of them broke.  This has been\n   corrected.\n\n * A shell script example in check-ref-format documentation has been\n   fixed.\n\n * \"git checkout <word>\" does not follow the usual disambiguation\n   rules when the <word> can be both a rev and a path, to allow\n   checking out a branch 'foo' in a project that happens to have a\n   file 'foo' in the working tree without having to disambiguate.\n   This was poorly documented and the check was incorrect when the\n   command was run from a subdirectory.\n\n * Some codepaths in \"git diff\" used regexec(3) on a buffer that was\n   mmap(2)ed, which may not have a terminating NUL, leading to a read\n   beyond the end of the mapped region.  This was fixed by introducing\n   a regexec_buf() helper that takes a <ptr,len> pair with REG_STARTEND\n   extension.\n\n * The procedure to build Git on Mac OS X for Travis CI hardcoded the\n   internal directory structure we assumed HomeBrew uses, which was a\n   no-no.  The procedure has been updated to ask HomeBrew things we\n   need to know to fix this.\n\n * When \"git rebase -i\" is given a broken instruction, it told the\n   user to fix it with \"--edit-todo\", but didn't say what the step\n   after that was (i.e. \"--continue\").\n\n * \"git add --chmod=+x\" added recently lacked documentation, which has\n   been corrected.\n\n * \"git add --chmod=+x <pathspec>\" added recently only toggled the\n   executable bit for paths that are either new or modified. This has\n   been corrected to flip the executable bit for all paths that match\n   the given pathspec.\n\n * \"git pack-objects --include-tag\" was taught that when we know that\n   we are sending an object C, we want a tag B that directly points at\n   C but also a tag A that points at the tag B.  We used to miss the\n   intermediate tag B in some cases.\n\n * Documentation around tools to import from CVS was fairly outdated.\n\n * In the codepath that comes up with the hostname to be used in an\n   e-mail when the user didn't tell us, we looked at ai_canonname\n   field in struct addrinfo without making sure it is not NULL first.\n\nAlso contains minor documentation updates and code clean-ups.\n\n----------------------------------------------------------------\n\nChanges since v2.10.0 are as follows:\n\nAlex Henrie (5):\n      am: put spaces around pipe in usage string\n      cat-file: put spaces around pipes in usage string\n      git-rebase--interactive: fix English grammar\n      git-merge-octopus: do not capitalize \"octopus\"\n      unpack-trees: do not capitalize \"working\"\n\nBeat Bolli (1):\n      SubmittingPatches: use gitk's \"Copy commit summary\" format\n\nBrandon Williams (1):\n      pathspec: remove unnecessary function prototypes\n\nBrian Henderson (3):\n      diff-highlight: add some tests\n      diff-highlight: add failing test for handling --graph output\n      diff-highlight: add support for --graph output\n\nElia Pinto (5):\n      t5541-http-push-smart.sh: use the GIT_TRACE_CURL environment var\n      test-lib.sh: preserve GIT_TRACE_CURL from the environment\n      t5550-http-fetch-dumb.sh: use the GIT_TRACE_CURL environment var\n      t5551-http-fetch-smart.sh: use the GIT_TRACE_CURL environment var\n      git-check-ref-format.txt: fixup documentation\n\nEric Wong (3):\n      http: warn on curl_multi_add_handle failures\n      http: consolidate #ifdefs for curl_multi_remove_handle\n      http: always remove curl easy from curlm session on release\n\nJeff King (20):\n      rebase-interactive: drop early check for valid ident\n      gc: default aggressive depth to 50\n      test-lib: drop PID from test-results/*.count\n      diff-highlight: ignore test cruft\n      diff-highlight: add multi-byte tests\n      diff-highlight: avoid highlighting combined diffs\n      error_errno: use constant return similar to error()\n      color_parse_mem: initialize \"struct color\" temporary\n      t5305: move cleanup into test block\n      t5305: drop \"dry-run\" of unpack-objects\n      t5305: use \"git -C\"\n      t5305: simplify packname handling\n      pack-objects: walk tag chains for --include-tag\n      remote-curl: handle URLs without protocol\n      patch-ids: turn off rename detection\n      patch-ids: refuse to compute patch-id for merge commit\n      docs/cvsimport: prefer cvs-fast-export to parsecvs\n      docs/cvs-migration: update link to cvsps homepage\n      docs/cvs-migration: mention cvsimport caveats\n      ident: handle NULL ai_canonname\n\nJiang Xin (1):\n      l10n: zh_CN: fixed some typos for git 2.10.0\n\nJohannes Schindelin (4):\n      git-gui: respect commit.gpgsign again\n      regex: -G<pattern> feeds a non NUL-terminated string to regexec() and fails\n      regex: add regexec_buf() that can work on a non NUL-terminated string\n      regex: use regexec_buf()\n\nJohannes Sixt (4):\n      t9903: fix broken && chain\n      t6026-merge-attr: clean up background process at end of test case\n      t3700-add: create subdirectory gently\n      t3700-add: do not check working tree file mode without POSIXPERM\n\nJosh Triplett (1):\n      format-patch: show base info before email signature\n\nJunio C Hamano (6):\n      submodule: avoid auto-discovery in prepare_submodule_repo_env()\n      symbolic-ref -d: do not allow removal of HEAD\n      Prepare for 2.9.4\n      Start preparing for 2.10.1\n      Prepare for 2.10.1\n      Git 2.10.1\n\nKirill Smelkov (1):\n      t/perf/run: copy config.mak.autogen & friends to build area\n\nLars Schneider (1):\n      travis-ci: ask homebrew for its path instead of hardcoding it\n\nMatthieu Moy (1):\n      Documentation/config: default for color.* is color.ui\n\nMike Ralphson (1):\n      vcs-svn/fast_export: fix timestamp fmt specifiers\n\nNguyễn Thái Ngọc Duy (3):\n      checkout: add some spaces between code and comment\n      checkout.txt: document a common case that ignores ambiguation rules\n      checkout: fix ambiguity check in subdir\n\nPhilip Oakley (12):\n      doc: use 'symmetric difference' consistently\n      doc: revisions - name the left and right sides\n      doc: show the actual left, right, and boundary marks\n      doc: revisions: give headings for the two and three dot notations\n      doc: revisions: extra clarification of <rev>^! notation effects\n      doc: revisions: single vs multi-parent notation comparison\n      doc: gitrevisions - use 'reachable' in page description\n      doc: gitrevisions - clarify 'latter case' is revision walk\n      doc: revisions - define `reachable`\n      doc: revisions - clarify reachability examples\n      doc: revisions: show revision expansion in examples\n      doc: revisions: sort examples and fix alignment of the unchanged\n\nRalf Thielow (1):\n      rebase -i: improve advice on bad instruction lines\n\nRay Chen (1):\n      l10n: zh_CN: review for git v2.10.0 l10n\n\nRené Scharfe (6):\n      compat: move strdup(3) replacement to its own file\n      introduce hex2chr() for converting two hexadecimal digits to a character\n      strbuf: use valid pointer in strbuf_remove()\n      checkout: constify parameters of checkout_stage() and checkout_merged()\n      unpack-trees: pass checkout state explicitly to check_updates()\n      xdiff: fix merging of hunks with -W context and -u context\n\nSatoshi Yasushima (6):\n      git-gui: consistently use the same word for \"remote\" in Japanese\n      git-gui: consistently use the same word for \"blame\" in Japanese\n      git-gui: apply po template to Japanese translation\n      git-gui: add Japanese language code\n      git-gui: update Japanese translation\n      git-gui: update Japanese information\n\nStefan Beller (5):\n      xdiff: remove unneeded declarations\n      transport: report missing submodule pushes consistently on stderr\n      diff.c: use diff_options directly\n      diff: omit found pointer from emit_callback\n      diff: remove dead code\n\nThomas Gummerer (4):\n      add: document the chmod option\n      update-index: add test for chmod flags\n      read-cache: introduce chmod_index_entry\n      add: modify already added files when --chmod is given\n\nVasco Almeida (2):\n      l10n: pt_PT: update Portuguese translation\n      l10n: pt_PT: update Portuguese repository info\n\n"}]}