{"thread":{"id":"40735","subject":"[ANNOUNCE] Git v2.6.3","startedAt":"2015-11-05T23:13:27Z","lastAt":"2015-11-05T23:13:27Z","messageCount":1,"participants":["Junio C Hamano"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"272980","messageId":"xmqqegg43uqw.fsf@gitster.mtv.corp.google.com","threadId":"40735","inReplyTo":null,"subject":"[ANNOUNCE] Git v2.6.3","fromName":"Junio C Hamano","fromEmail":"junio@pobox.com","sentAt":"2015-11-05T23:13:27Z","receivedAt":"2015-11-05T23:13:27Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"The latest maintenance release Git v2.6.3 is now available at\nthe usual places.  This contains bug & regression fixes that\nhave already been merged to the 'master' front.\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.6.3'\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.6.3 Release Notes\n========================\n\nFixes since v2.6.2\n------------------\n\n * The error message from \"git blame --contents --reverse\" incorrectly\n   talked about \"--contents --children\".\n\n * \"git merge-file\" tried to signal how many conflicts it found, which\n   obviously would not work well when there are too many of them.\n\n * The name-hash subsystem that is used to cope with case insensitive\n   filesystems keeps track of directories and their on-filesystem\n   cases for all the paths in the index by holding a pointer to a\n   randomly chosen cache entry that is inside the directory (for its\n   ce->ce_name component).  This pointer was not updated even when the\n   cache entry was removed from the index, leading to use after free.\n   This was fixed by recording the path for each directory instead of\n   borrowing cache entries and restructuring the API somewhat.\n\n * When the \"git am\" command was reimplemented in C, \"git am -3\" had a\n   small regression where it is aborted in its error handling codepath\n   when underlying merge-recursive failed in some ways.\n\n * The synopsis text and the usage string of subcommands that read\n   list of things from the standard input are often shown as if they\n   only take input from a file on a filesystem, which was misleading.\n\n * A couple of commands still showed \"[options]\" in their usage string\n   to note where options should come on their command line, but we\n   spell that \"[<options>]\" in most places these days.\n\n * The submodule code has been taught to work better with separate\n   work trees created via \"git worktree add\".\n\n * When \"git gc --auto\" is backgrounded, its diagnosis message is\n   lost.  It now is saved to a file in $GIT_DIR and is shown next time\n   the \"gc --auto\" is run.\n\n * Work around \"git p4\" failing when the P4 depot records the contents\n   in UTF-16 without UTF-16 BOM.\n\n * Recent update to \"rebase -i\" that tries to sanity check the edited\n   insn sheet before it uses it has become too picky on Windows where\n   CRLF left by the editor is turned into a trailing CR on the line\n   read via the \"read\" built-in command.\n\n * \"git clone --dissociate\" runs a big \"git repack\" process at the\n   end, and it helps to close file descriptors that are open on the\n   packs and their idx files before doing so on filesystems that\n   cannot remove a file that is still open.\n\n * Correct \"git p4 --detect-labels\" so that it does not fail to create\n   a tag that points at a commit that is also being imported.\n\n * The internal stripspace() function has been moved to where it\n   logically belongs to, i.e. strbuf API, and the command line parser\n   of \"git stripspace\" has been updated to use the parse_options API.\n\n * Prepare for Git on-disk repository representation to undergo\n   backward incompatible changes by introducing a new repository\n   format version \"1\", with an extension mechanism.\n\n * \"git gc\" used to barf when a symbolic ref has gone dangling\n   (e.g. the branch that used to be your upstream's default when you\n   cloned from it is now gone, and you did \"fetch --prune\").\n\n * The normalize_ceiling_entry() function does not muck with the end\n   of the path it accepts, and the real world callers do rely on that,\n   but a test insisted that the function drops a trailing slash.\n\n * \"git gc\" is safe to run anytime only because it has the built-in\n   grace period to protect young objects.  In order to run with no\n   grace period, the user must make sure that the repository is\n   quiescent.\n\n * A recent \"filter-branch --msg-filter\" broke skipping of the commit\n   object header, which is fixed.\n\n * \"git --literal-pathspecs add -u/-A\" without any command line\n   argument misbehaved ever since Git 2.0.\n\n * Merging a branch that removes a path and another that changes the\n   mode bits on the same path should have conflicted at the path, but\n   it didn't and silently favoured the removal.\n\n * \"git imap-send\" did not compile well with older version of cURL library.\n\n * The linkage order of libraries was wrong in places around libcurl.\n\n * It was not possible to use a repository-lookalike created by \"git\n   worktree add\" as a local source of \"git clone\".\n\n * When \"git send-email\" wanted to talk over Net::SMTP::SSL,\n   Net::Cmd::datasend() did not like to be fed too many bytes at the\n   same time and failed to send messages.  Send the payload one line\n   at a time to work around the problem.\n\n * We peek objects from submodule's object store by linking it to the\n   list of alternate object databases, but the code to do so forgot to\n   correctly initialize the list.\n\n * \"git status --branch --short\" accessed beyond the constant string\n   \"HEAD\", which has been corrected.\n\n * \"git daemon\" uses \"run_command()\" without \"finish_command()\", so it\n   needs to release resources itself, which it forgot to do.\n\nAlso contains typofixes, documentation updates and trivial code\nclean-ups.\n\n----------------------------------------------------------------\n\nChanges since v2.6.2 are as follows:\n\nDavid Turner (2):\n      t7063: fix flaky untracked-cache test\n      name-hash: don't reuse cache_entry in dir_entry\n\nDimitriy Ryazantcev (1):\n      l10n: ru.po: update Russian translation\n\nJames McCoy (1):\n      filter-branch: remove multi-line headers in msg filter\n\nJeff King (7):\n      introduce \"extensions\" form of core.repositoryformatversion\n      introduce \"preciousObjects\" repository extension\n      t6031: move triple-rename test to t3030\n      t6031: generalize for recursive and resolve strategies\n      merge: detect delete/modechange conflict\n      add_submodule_odb: initialize alt_odb list earlier\n      merge-file: clamp exit code to maximum 127\n\nJohannes Schindelin (10):\n      t5700: demonstrate a Windows file locking issue with `git clone --dissociate`\n      sha1_file: consolidate code to close a pack's file descriptor\n      gc: demonstrate failure with stale remote HEAD\n      sha1_file.c: add a function to release all packs\n      clone --dissociate: avoid locking pack files\n      pack-objects: do not get distracted by broken symrefs\n      imap-send: only use CURLOPT_LOGIN_OPTIONS if it is actually available\n      Squelch warning about an integer overflow\n      Silence GCC's \"cast of pointer to integer of a different size\" warning\n      t3404: \"rebase -i\" gets broken when insn sheet uses CR/LF line endings\n\nJunio C Hamano (10):\n      am -3: do not let failed merge from completing the error codepath\n      Documentation/gc: warn against --prune=<now>\n      usage: do not insist that standard input must come from a file\n      Documentation/everyday: match undefline with the text\n      Documentation: match underline with the text\n      Documentation: match undefline with the text in old release notes\n      Documentation: AsciiDoc spells em-dash as double-dashes, not triple\n      add: simplify -u/-A without pathspec\n      rebase-i: work around Windows CRLF line endings\n      Git 2.6.3\n\nLars Schneider (2):\n      git-p4: add test case for \"Translation of file content failed\" error\n      git-p4: handle \"Translation of file content failed\"\n\nLuke Diamand (3):\n      git-p4: failing test for ignoring invalid p4 labels\n      git-p4: do not terminate creating tag for unknown commit\n      git-p4: fix P4 label import for unprocessed commits\n\nMax Kirillov (3):\n      submodule refactor: use strbuf_git_path_submodule() in add_submodule_odb()\n      path: implement common_dir handling in git_pathdup_submodule()\n      blame: fix option name in error message\n\nNguyễn Thái Ngọc Duy (7):\n      path.c: delete an extra space\n      gc: save log from daemonized gc --auto and print it next time\n      t0002: add test for enter_repo(), non-strict mode\n      enter_repo: avoid duplicating logic, use is_git_directory() instead\n      enter_repo: allow .git files in strict mode\n      clone: allow --local from a linked checkout\n      clone: better error when --reference is a linked checkout\n\nRalf Thielow (1):\n      am, credential-cache: add angle brackets to usage string\n\nRay Donnelly (1):\n      test-path-utils.c: remove incorrect assumption\n\nRemi Pommarel (3):\n      Makefile: link libcurl before zlib\n      Makefile: make curl-config path configurable\n      configure.ac: detect ssl need with libcurl\n\nRené Scharfe (7):\n      t7060: add test for status --branch on a detached HEAD\n      wt-status: exit early using goto in wt_shortstatus_print_tracking()\n      wt-status: avoid building bogus branch name with detached HEAD\n      wt-status: don't skip a magical number of characters blindly\n      wt-status: use skip_prefix() to get rid of magic string length constants\n      run-command: factor out child_process_clear()\n      daemon: plug memory leak\n\nSidhant Sharma (1):\n      worktree: usage: denote <branch> as optional with 'add'\n\nStefan Agner (1):\n      git-send-email.perl: Fixed sending of many/huge changes/patches\n\nTobias Klauser (2):\n      strbuf: make stripspace() part of strbuf\n      stripspace: use parse-options for command-line parsing\n\nWaldek Maleska (1):\n      Correct fscanf formatting string for I64u values\n\nXue Fuqiao (2):\n      Documentation: fix header markup\n      user-manual: fix the description of fast-forward\n"}]}