{"thread":{"id":"40304","subject":"[ANNOUNCE] Git v2.6.0-rc1","startedAt":"2015-09-09T00:09:19Z","lastAt":"2015-09-09T16:48:14Z","messageCount":2,"participants":["Junio C Hamano","Andreas Schwab"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"269634","messageId":"xmqqio7k78sw.fsf@gitster.mtv.corp.google.com","threadId":"40304","inReplyTo":null,"subject":"[ANNOUNCE] Git v2.6.0-rc1","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2015-09-09T00:09:19Z","receivedAt":"2015-09-09T00:09:19Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"A release candidate Git v2.6.0-rc1 is now available for testing\nat the usual places.  It is comprised of 409 non-merge commits\nsince v2.5.0, contributed by 50 people, 12 of which are new faces.\n\nThe tarballs are found at:\n\n    https://www.kernel.org/pub/software/scm/git/testing/\n\nThe following public repositories all have a copy of the\n'v2.6.0-rc1' tag and the 'master' 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\nNew contributors whose contributions weren't in v2.5.0 are as follows.\nWelcome to the Git development community!\n\n  Antoine Delaite, Brett Randall, Brian Degenhardt, Erik Elfström,\n  Galan Rémi, Guillaume Pagès, Jan Viktorin, Jose F. Morales,\n  Lars Schneider, Michael Rappazzo, Simon A. Eugster, and Zoë\n  Blade.\n\nReturning contributors who helped this release are as follows.\nThanks for your continued support.\n\n  Alex Henrie, Andreas Schwab, brian m. carlson, Charles Bailey,\n  Christian Couder, Clemens Buchacher, Dave Borowitz, David\n  Aguilar, David Turner, Elia Pinto, Eric Sunshine, Heiko\n  Voigt, Ilya Bobyr, Jacob Keller, Jeff King, Jiang Xin, Jim\n  Hill, Johannes Schindelin, Johannes Sixt, Junio C Hamano,\n  Karsten Blees, Karthik Nayak, Kevin Daudt, Matthieu Moy,\n  Michael Haggerty, Mike Hommey, Nguyễn Thái Ngọc Duy,\n  Patrick Steinhardt, Paul Tan, Philip Oakley, Ralf Thielow,\n  Remi Lespinet, René Scharfe, Stefan Beller, Sven Strickroth,\n  SZEDER Gábor, Thomas Ackermann, and Thomas Braun.\n\n----------------------------------------------------------------\n\nGit 2.6 Release Notes (draft)\n=============================\n\nUpdates since v2.5\n------------------\n\nUI, Workflows & Features\n\n * An asterisk as a substring (as opposed to the entirety) of a path\n   component for both side of a refspec, e.g.\n   \"refs/heads/o*:refs/remotes/heads/i*\", is now allowed.\n\n * New userdiff pattern definition for fountain screenwriting markup\n   format has been added.\n\n * \"git log\" and friends learned a new \"--date=format:...\" option to\n   format timestamps using system's strftime(3).\n\n * \"git fast-import\" learned to respond to the get-mark command via\n   its cat-blob-fd interface.\n\n * \"git rebase -i\" learned \"drop commit-object-name subject\" command\n   as another way to skip replaying of a commit.\n\n * A new configuration variable can enable \"--follow\" automatically\n   when \"git log\" is run with one pathspec argument.\n\n * \"git status\" learned to show a more detailed information regarding\n   the \"rebase -i\" session in progress.\n\n * \"git cat-file\" learned \"--batch-all-objects\" option to enumerate all\n   available objects in the repository more quickly than \"rev-list\n   --all --objects\" (the output includes unreachable objects, though).\n\n * \"git fsck\" learned to ignore errors on a set of known-to-be-bad\n   objects, and also allows the warning levels of various kinds of\n   non-critical breakages to be tweaked.\n\n * \"git rebase -i\"'s list of todo is made configurable.\n\n * \"git send-email\" now performs alias-expansion on names that are\n   given via --cccmd, etc.\n\n * An environment variable GIT_REPLACE_REF_BASE tells Git to look into\n   refs hierarchy other than refs/replace/ for the object replacement\n   data.\n\n * Allow untracked cache (experimental) to be used when sparse\n   checkout (experimental) is also in use.\n\n * \"git pull --rebase\" has been taught to pay attention to\n   rebase.autostash configuration.\n\n * The command-line completion script (in contrib/) has been updated.\n\n * A negative !ref entry in multi-value transfer.hideRefs\n   configuration can be used to say \"don't hide this one\".\n\n * After \"git am\" without \"-3\" stops, running \"git am -\" pays attention\n   to \"-3\" only for the patch that caused the original invocation\n   to stop.\n\n * When linked worktree is used, simultaneous \"notes merge\" instances\n   for the same ref in refs/notes/* are prevented from stomping on\n   each other.\n\n * \"git send-email\" learned a new option --smtp-auth to limit the SMTP\n   AUTH mechanisms to be used to a subset of what the system library\n   supports.\n\n * A new configuration variable http.sslVersion can be used to specify\n   what specific version of SSL/TLS to use to make a connection.\n\n * \"git notes merge\" can be told with \"--strategy=<how>\" option how to\n   automatically handle conflicts; this can now be configured by\n   setting notes.mergeStrategy configuration variable.\n\n * \"git log --cc\" did not show any patch, even though most of the time\n   the user meant \"git log --cc -p -m\" to see patch output for commits\n   with a single parent, and combined diff for merge commits.  The\n   command is taught to DWIM \"--cc\" (without \"--raw\" and other forms\n   of output specification) to \"--cc -p -m\".\n\n * \"git config --list\" output was hard to parse when values consist of\n   multiple lines.  \"--name-only\" option is added to help this.\n\n\nPerformance, Internal Implementation, Development Support etc.\n\n * In preparation for allowing different \"backends\" to store the refs\n   in a way different from the traditional \"one ref per file in\n   $GIT_DIR or in a $GIT_DIR/packed-refs file\" filesystem storage,\n   direct filesystem access to ref-like things like CHERRY_PICK_HEAD\n   from scripts and programs has been reduced.\n\n * Computation of untracked status indicator by bash prompt\n   script (in contrib/) has been optimized.\n\n * Memory use reduction when commit-slab facility is used to annotate\n   sparsely (which is not recommended in the first place).\n\n * Clean up refs API and make \"git clone\" less intimate with the\n   implementation detail.\n\n * \"git pull\" was reimplemented in C.\n\n * The packet tracing machinery allows to capture an incoming pack\n   data to a file for debugging.\n\n * Move machinery to parse human-readable scaled numbers like 1k, 4M,\n   and 2G as an option parameter's value from pack-objects to\n   parse-options API, to make it available to other codepaths.\n\n * \"git verify-tag\" and \"git verify-commit\" have been taught to share\n   more code, and then learned to optionally show the verification\n   message from the underlying GPG implementation.\n\n * Various enhancements around \"git am\" reading patches generated by\n   foreign SCM have been made.\n\n * Ref listing by \"git branch -l\" and \"git tag -l\" commands has\n   started to be rebuilt, based on the for-each-ref machinery.\n\n * The code to perform multi-tree merges has been taught to repopulate\n   the cache-tree upon a successful merge into the index, so that\n   subsequent \"diff-index --cached\" (hence \"status\") and \"write-tree\"\n   (hence \"commit\") will go faster.\n\n   The same logic in \"git checkout\" may now be removed, but that is a\n   separate issue.\n\n * Tests that assume how reflogs are represented on the filesystem too\n   much have been corrected.\n\n * \"git am\" has been rewritten in \"C\".\n\n * git_path() and mkpath() are handy helper functions but it is easy\n   to misuse, as the callers need to be careful to keep the number of\n   active results below 4.  Their uses have been reduced.\n\n * The \"lockfile\" API has been rebuilt on top of a new \"tempfile\" API.\n\n * To prepare for allowing a different \"ref\" backend to be plugged in\n   to the system, update_ref()/delete_ref() have been taught about\n   ref-like things like MERGE_HEAD that are per-worktree (they will\n   always be written to the filesystem inside $GIT_DIR).\n\n * The gitmodules API that is accessed from the C code learned to\n   cache stuff lazily.\n\n\nAlso contains various documentation updates and code clean-ups.\n\n\nFixes since v2.5\n----------------\n\nUnless otherwise noted, all the fixes since v2.5 in the maintenance\ntrack are contained in this release (see the maintenance releases'\nnotes for details).\n\n * \"git subtree\" (in contrib/) depended on \"git log\" output to be\n   stable, which was a no-no.  Apply a workaround to force a\n   particular date format.\n   (merge e7aac44 da/subtree-date-confusion later to maint).\n\n * An attempt to delete a ref by pushing into a repository whose HEAD\n   symbolic reference points at an unborn branch that cannot be\n   created due to ref D/F conflict (e.g. refs/heads/a/b exists, HEAD\n   points at refs/heads/a) failed.\n   (merge b112b14 jx/do-not-crash-receive-pack-wo-head later to maint).\n\n * The low-level \"git send-pack\" did not honor 'user.signingkey'\n   configuration variable when sending a signed-push.\n   (merge d830d39 db/send-pack-user-signingkey later to maint).\n\n * \"sparse checkout\" misbehaved for a path that is excluded from the\n   checkout when switching between branches that differ at the path.\n   (merge 7d78241 as/sparse-checkout-removal later to maint).\n\n * An experimental \"untracked cache\" feature used uname(2) in a\n   slightly unportable way.\n   (merge 100e433 cb/uname-in-untracked later to maint).\n\n * A \"rebase\" replays changes of the local branch on top of something\n   else, as such they are placed in stage #3 and referred to as\n   \"theirs\", while the changes in the new base, typically a foreign\n   work, are placed in stage #2 and referred to as \"ours\".  Clarify\n   the \"checkout --ours/--theirs\".\n   (merge f303016 se/doc-checkout-ours-theirs later to maint).\n\n * The \"rev-parse --parseopt\" mode parsed the option specification\n   and the argument hint in a strange way to allow '=' and other\n   special characters in the option name while forbidding them from\n   the argument hint.  This made it impossible to define an option\n   like \"--pair <key>=<value>\" with \"pair=key=value\" specification,\n   which instead would have defined a \"--pair=key <value>\" option.\n   (merge 2d893df ib/scripted-parse-opt-better-hint-string later to maint).\n\n * Often a fast-import stream builds a new commit on top of the\n   previous commit it built, and it often unconditionally emits a\n   \"from\" command to specify the first parent, which can be omitted in\n   such a case.  This caused fast-import to forget the tree of the\n   previous commit and then re-read it from scratch, which was\n   inefficient.  Optimize for this common case.\n   (merge 0df3245 mh/fast-import-optimize-current-from later to maint).\n\n * Running an aliased command from a subdirectory when the .git thing\n   in the working tree is a gitfile pointing elsewhere did not work.\n   (merge d95138e nd/export-worktree later to maint).\n\n * \"Is this subdirectory a separate repository that should not be\n   touched?\" check \"git clean\" was inefficient.  This was replaced\n   with a more optimized check.\n   (merge fbf2fec ee/clean-remove-dirs later to maint).\n\n * The \"new-worktree-mode\" hack in \"checkout\" that was added in\n   nd/multiple-work-trees topic has been removed by updating the\n   implementation of new \"worktree add\".\n   (merge 65f9b75 es/worktree-add-cleanup later to maint).\n\n * Remove remaining cruft from  \"git checkout --to\", which\n   transitioned to \"git worktree add\".\n   (merge 114ff88 es/worktree-add later to maint).\n\n * An off-by-one error made \"git remote\" to mishandle a remote with a\n   single letter nickname.\n   (merge bc598c3 mh/get-remote-group-fix later to maint).\n\n * \"git clone $URL\", when cloning from a site whose sole purpose is to\n   host a single repository (hence, no path after <scheme>://<site>/),\n   tried to use the site name as the new repository name, but did not\n   remove username or password when <site> part was of the form\n   <user>@<pass>:<host>.  The code is taught to redact these.\n   (merge adef956 ps/guess-repo-name-at-root later to maint).\n\n * Running tests with the \"-x\" option to make them verbose had some\n   unpleasant interactions with other features of the test suite.\n   (merge 9b5fe78 jk/test-with-x later to maint).\n\n * t1509 test that requires a dedicated VM environment had some\n   bitrot, which has been corrected.\n   (merge faacc5a ps/t1509-chroot-test-fixup later to maint).\n\n * \"git pull\" in recent releases of Git has a regression in the code\n   that allows custom path to the --upload-pack=<program>.  This has\n   been corrected.\n\n   Note that this is irrelevant for 'master' with \"git pull\" rewritten\n   in C.\n   (merge 13e0e28 mm/pull-upload-pack later to maint).\n\n * When trying to see that an object does not exist, a state errno\n   leaked from our \"first try to open a packfile with O_NOATIME and\n   then if it fails retry without it\" logic on a system that refuses\n   O_NOATIME.  This confused us and caused us to die, saying that the\n   packfile is unreadable, when we should have just reported that the\n   object does not exist in that packfile to the caller.\n   (merge dff6f28 cb/open-noatime-clear-errno later to maint).\n\n * The codepath to produce error messages had a hard-coded limit to\n   the size of the message, primarily to avoid memory allocation while\n   calling die().\n   (merge f4c3edc jk/long-error-messages later to maint).\n\n * strbuf_read() used to have one extra iteration (and an unnecessary\n   strbuf_grow() of 8kB), which was eliminated.\n   (merge 3ebbd00 jh/strbuf-read-use-read-in-full later to maint).\n\n * We rewrote one of the build scripts in Perl but this reimplements\n   in Bourne shell.\n   (merge 82aec45 sg/help-group later to maint).\n\n * The experimental untracked-cache feature were buggy when paths with\n   a few levels of subdirectories are involved.\n   (merge 73f9145 dt/untracked-subdir later to maint).\n\n * \"interpret-trailers\" helper mistook a single-liner log message that\n   has a colon as the end of existing trailer.\n\n * The \"interpret-trailers\" helper mistook a multi-paragraph title of\n   a commit log message with a colon in it as the end of the trailer\n   block.\n   (merge 5c99995 cc/trailers-corner-case-fix later to maint).\n\n * \"git describe\" without argument defaulted to describe the HEAD\n   commit, but \"git describe --contains\" didn't.  Arguably, in a\n   repository used for active development, such defaulting would not\n   be very useful as the tip of branch is typically not tagged, but it\n   is better to be consistent.\n   (merge 2bd0706 sg/describe-contains later to maint).\n\n * The client side codepaths in \"git push\" have been cleaned up\n   and the user can request to perform an optional \"signed push\",\n   i.e. sign only when the other end accepts signed push.\n   (merge 68c757f db/push-sign-if-asked later to maint).\n\n * Because the configuration system does not allow \"alias.0foo\" and\n   \"pager.0foo\" as the configuration key, the user cannot use '0foo'\n   as a custom command name anyway, but \"git 0foo\" tried to look these\n   keys up and emitted useless warnings before saying '0foo is not a\n   git command'.  These warning messages have been squelched.\n   (merge 9e9de18 jk/fix-alias-pager-config-key-warnings later to maint).\n\n * \"git rev-list\" does not take \"--notes\" option, but did not complain\n   when one is given.\n   (merge 2aea7a5 jk/rev-list-has-no-notes later to maint).\n\n * When re-priming the cache-tree opportunistically while committing\n   the in-core index as-is, we mistakenly invalidated the in-core\n   index too aggressively, causing the experimental split-index code\n   to unnecessarily rewrite the on-disk index file(s).\n   (merge 475a344 dt/commit-preserve-base-index-upon-opportunistic-cache-tree-update later to maint).\n\n * \"git archive\" did not use zip64 extension when creating an archive\n   with more than 64k entries, which nobody should need, right ;-)?\n   (merge 88329ca rs/archive-zip-many later to maint).\n\n * The code in \"multiple-worktree\" support that attempted to recover\n   from an inconsistent state updated an incorrect file.\n   (merge 82fde87 nd/fixup-linked-gitdir later to maint).\n\n * On case insensitive systems, \"git p4\" did not work well with client\n   specs.\n\n * \"git init empty && git -C empty log\" said \"bad default revision 'HEAD'\",\n   which was found to be a bit confusing to new users.\n   (merge ce11360 jk/log-missing-default-HEAD later to maint).\n\n * Code cleanups and documentation updates.\n   (merge 1c601af es/doc-clean-outdated-tools later to maint).\n   (merge 3581304 kn/tag-doc-fix later to maint).\n   (merge 3a59e59 kb/i18n-doc later to maint).\n   (merge 45abdee sb/remove-unused-var-from-builtin-add later to maint).\n   (merge 14691e3 sb/parse-options-codeformat later to maint).\n   (merge 4a6ada3 ad/bisect-cleanup later to maint).\n   (merge da4c5ad ta/docfix-index-format-tech later to maint).\n   (merge ae25fd3 sb/check-return-from-read-ref later to maint).\n   (merge b3325df nd/dwim-wildcards-as-pathspecs later to maint).\n   (merge 7aa9b9b sg/wt-status-header-inclusion later to maint).\n   (merge f04c690 as/docfix-reflog-expire-unreachable later to maint).\n   (merge 1269847 sg/t3020-typofix later to maint).\n   (merge 8b54c23 jc/calloc-pathspec later to maint).\n   (merge a6926b8 po/po-readme later to maint).\n   (merge 54d160e ss/fix-config-fd-leak later to maint).\n   (merge b80fa84 ah/submodule-typofix-in-error later to maint).\n   (merge 99885bc ah/reflog-typofix-in-error later to maint).\n   (merge 9476c2c ah/read-tree-usage-string later to maint).\n   (merge b8c1d27 ah/pack-objects-usage-strings later to maint).\n   (merge 486e1e1 br/svn-doc-include-paths-config later to maint).\n   (merge 1733ed3 ee/clean-test-fixes later to maint).\n\n----------------------------------------------------------------\n\nChanges since v2.5.0 are as follows:\n\nAlex Henrie (4):\n      reflog: add missing single quote to error message\n      git-submodule: remove extraneous space from error message\n      pack-objects: place angle brackets around placeholders in usage strings\n      read-tree: replace bracket set with parentheses to clarify usage\n\nAndreas Schwab (1):\n      Documentation/config: fix inconsistent label on gc.*.reflogExpireUnreachable\n\nAntoine Delaite (3):\n      bisect: correction of typo\n      bisect: replace hardcoded \"bad|good\" by variables\n      bisect: simplify the addition of new bisect terms\n\nBrett Randall (1):\n      git-svn doc: mention \"svn-remote.<name>.include-paths\"\n\nBrian Degenhardt (1):\n      unpack-trees: populate cache-tree on successful merge\n\nCharles Bailey (3):\n      test-parse-options: update to handle negative ints\n      parse-options: move unsigned long option parsing out of pack-objects.c\n      untracked: fix detection of uname(2) failure\n\nChristian Couder (3):\n      trailer: ignore first line of message\n      trailer: retitle a test and correct an in-comment message\n      trailer: support multiline title\n\nClemens Buchacher (1):\n      git_open_noatime: return with errno=0 on success\n\nDave Borowitz (9):\n      Documentation/git-push.txt: document when --signed may fail\n      Documentation/git-send-pack.txt: wrap long synopsis line\n      Documentation/git-send-pack.txt: document --signed\n      gitremote-helpers.txt: document pushcert option\n      transport: remove git_transport_options.push_cert\n      config.c: rename git_config_maybe_bool_text and export it as git_parse_maybe_bool\n      builtin/send-pack.c: use parse_options API\n      push: support signing pushes iff the server supports it\n      push: add a config option push.gpgSign for default signed pushes\n\nDavid Aguilar (1):\n      contrib/subtree: ignore log.date configuration\n\nDavid Turner (22):\n      log: add \"log.follow\" configuration variable\n      unpack-trees: don't update files with CE_WT_REMOVE set\n      refs.c: add err arguments to reflog functions\n      refs: break out check for reflog autocreation\n      refs: new public ref function: safe_create_reflog\n      git-reflog: add exists command\n      refs: add REF_FORCE_CREATE_REFLOG flag\n      update-ref and tag: add --create-reflog arg\n      git-stash: use update-ref --create-reflog instead of creating files\n      t/t7509: remove unnecessary manipulation of reflog\n      tests: remove some direct access to .git/logs\n      refs: introduce pseudoref and per-worktree ref concepts\n      refs: add ref_type function\n      pseudorefs: create and use pseudoref update and delete functions\n      bisect: use update_ref\n      sequencer: replace write_cherry_pick_head with update_ref\n      untracked-cache: support sparse checkout\n      worktrees: add find_shared_symref\n      notes: handle multiple worktrees\n      pseudoref: check return values from read_ref()\n      untracked-cache: fix subdirectory handling\n      commit: don't rewrite shared index unnecessarily\n\nElia Pinto (1):\n      http: add support for specifying the SSL version\n\nEric Sunshine (31):\n      config: rename \"gc.pruneWorktreesExpire\" to \"gc.worktreePruneExpire\"\n      checkout: avoid resolving HEAD unnecessarily\n      checkout: name check_linked_checkouts() more meaningfully\n      checkout: improve die_if_checked_out() robustness\n      checkout: die_if_checked_out: simplify strbuf management\n      checkout: generalize die_if_checked_out() branch name argument\n      checkout: check_linked_checkout: improve \"already checked out\" aesthetic\n      checkout: check_linked_checkout: simplify symref parsing\n      checkout: teach check_linked_checkout() about symbolic link HEAD\n      branch: publish die_if_checked_out()\n      worktree: improve worktree setup message\n      worktree: simplify new branch (-b/-B) option checking\n      worktree: introduce options container\n      worktree: make --detach mutually exclusive with -b/-B\n      worktree: add: suppress auto-vivication with --detach and no <branch>\n      worktree: make branch creation distinct from worktree population\n      worktree: elucidate environment variables intended for child processes\n      worktree: add_worktree: construct worktree-population command locally\n      worktree: detect branch-name/detached and error conditions locally\n      worktree: make setup of new HEAD distinct from worktree population\n      worktree: avoid resolving HEAD unnecessarily\n      worktree: populate via \"git reset --hard\" rather than \"git checkout\"\n      checkout: drop intimate knowledge of newly created worktree\n      Documentation/git-worktree: fix broken 'linkgit' invocation\n      Documentation/git: drop outdated Cogito reference\n      Documentation/git-tools: improve discoverability of Git wiki\n      Documentation/git-tools: fix item text formatting\n      Documentation/git-tools: drop references to defunct tools\n      Documentation/git-tools: retire manually-maintained list\n      Documentation/config: mention \"now\" and \"never\" for 'expire' settings\n      generate-cmdlist: re-implement as shell script\n\nErik Elfström (6):\n      setup: add gentle version of read_gitfile\n      setup: sanity check file size in read_gitfile_gently\n      t7300: add tests to document behavior of clean and nested git\n      p7300: add performance tests for clean\n      clean: improve performance when removing lots of directories\n      t7300: fix broken && chains\n\nGalan Rémi (3):\n      git-rebase -i: add command \"drop\" to remove a commit\n      git rebase -i: warn about removed commits\n      git rebase -i: add static check for commands and SHA-1\n\nGuillaume Pagès (4):\n      status: factor two rebase-related messages together\n      status: differentiate interactive from non-interactive rebases\n      status: give more information during rebase -i\n      status: add new tests for status during rebase -i\n\nHeiko Voigt (4):\n      submodule: implement a config API for lookup of .gitmodules values\n      submodule: extract functions for config set and lookup\n      submodule: use new config API for worktree configurations\n      submodule: allow erroneous values for the fetchRecurseSubmodules option\n\nIlya Bobyr (1):\n      rev-parse --parseopt: allow [*=?!] in argument hints\n\nJacob Keller (8):\n      refs: cleanup comments regarding check_refname_component()\n      refs: loosen restriction on wildcard \"*\" refspecs\n      notes: document cat_sort_uniq rewriteMode\n      notes: extract enum notes_merge_strategy to notes-utils.h\n      notes: extract parse_notes_merge_strategy to notes-utils\n      notes: add tests for --commit/--abort/--strategy exclusivity\n      notes: add notes.mergeStrategy option to select default strategy\n      notes: teach git-notes about notes.<name>.mergeStrategy option\n\nJan Viktorin (1):\n      send-email: provide whitelist of SMTP AUTH mechanisms\n\nJeff King (46):\n      pkt-line: simplify starts_with checks in packet tracing\n      pkt-line: tighten sideband PACK check when tracing\n      pkt-line: support tracing verbatim pack contents\n      cat-file: minor style fix in options list\n      cat-file: move batch_options definition to top of file\n      cat-file: add --buffer option\n      cat-file: stop returning value from batch_one_object\n      cat-file: split batch_one_object into two stages\n      cat-file: add --batch-all-objects option\n      read_gitfile_gently: fix use-after-free\n      cat-file: sort and de-dup output of --batch-all-objects\n      show-branch: use DATE_RELATIVE instead of magic number\n      convert \"enum date_mode\" into a struct\n      introduce \"format\" date-mode\n      strbuf: make strbuf_addftime more robust\n      docs/config.txt: reorder hideRefs config\n      refs: support negative transfer.hideRefs\n      test-lib: turn off \"-x\" tracing during chain-lint check\n      test-lib: disable trace when test is not verbose\n      clone: add tests for output directory\n      clone: use computed length in guess_dir_name\n      cache.h: clarify documentation for git_path, et al\n      cache.h: complete set of git_path_submodule helpers\n      t5700: modernize style\n      add_to_alternates_file: don't add duplicate entries\n      prefer git_pathdup to git_path in some possibly-dangerous cases\n      prefer mkpathdup to mkpath in assignments\n      remote.c: drop extraneous local variable from migrate_file\n      refs.c: remove extra git_path calls from read_loose_refs\n      path.c: drop git_path_submodule\n      refs.c: simplify strbufs in reflog setup and writing\n      refs.c: avoid repeated git_path calls in rename_tmp_log\n      refs.c: avoid git_path assignment in lock_ref_sha1_basic\n      refs.c: remove_empty_directories can take a strbuf\n      find_hook: keep our own static buffer\n      get_repo_path: refactor path-allocation\n      memoize common git-path \"constant\" files\n      vreportf: report to arbitrary filehandles\n      vreportf: avoid intermediate buffer\n      format_config: don't init strbuf\n      format_config: simplify buffer handling\n      get_urlmatch: avoid useless strbuf write\n      config: silence warnings for command names with invalid keys\n      rev-list: make it obvious that we do not support notes\n      log: diagnose empty HEAD more clearly\n      rerere: release lockfile in non-writing functions\n\nJiang Xin (2):\n      receive-pack: crash when checking with non-exist HEAD\n      i18n: am: fix typo in description of -b option\n\nJim Hill (1):\n      strbuf_read(): skip unnecessary strbuf_grow() at eof\n\nJohannes Schindelin (19):\n      fsck: introduce fsck options\n      fsck: introduce identifiers for fsck messages\n      fsck: provide a function to parse fsck message IDs\n      fsck: offer a function to demote fsck errors to warnings\n      fsck (receive-pack): allow demoting errors to warnings\n      fsck: report the ID of the error/warning\n      fsck: make fsck_ident() warn-friendly\n      fsck: make fsck_commit() warn-friendly\n      fsck: handle multiple authors in commits specially\n      fsck: make fsck_tag() warn-friendly\n      fsck: add a simple test for receive.fsck.<msg-id>\n      fsck: disallow demoting grave fsck errors to warnings\n      fsck: optionally ignore specific fsck issues completely\n      fsck: allow upgrading fsck warnings to errors\n      fsck: document the new receive.fsck.<msg-id> options\n      fsck: support demoting errors to warnings\n      fsck: introduce `git fsck --connectivity-only`\n      fsck: git receive-pack: support excluding objects from fsck'ing\n      fsck: support ignoring objects in `git fsck` via fsck.skiplist\n\nJohannes Sixt (2):\n      t7300-clean: require POSIXPERM for chmod 0 test\n      t2019: skip test requiring '*' in a file name non Windows\n\nJose F. Morales (1):\n      Mingw: verify both ends of the pipe () call\n\nJunio C Hamano (29):\n      commit-slab: introduce slabname##_peek() function\n      builtin/send-pack.c: respect user.signingkey\n      Git 2.4.8\n      First batch for 2.6\n      sha1_file.c: rename move_temp_to_file() to finalize_object_file()\n      Second batch for 2.6\n      Third batch for 2.6\n      Start preparing for 2.5.1\n      Fourth batch for 2.6\n      ps_matched: xcalloc() takes nmemb and then element size\n      log: rename \"tweak\" helpers\n      log: when --cc is given, default to -p unless told otherwise\n      log: show merge commit when --cc is given\n      builtin/am: introduce write_state_*() helper functions\n      builtin/am: make sure state files are text\n      write_file(): drop \"fatal\" parameter\n      write_file_v(): do not leave incomplete line at the end\n      write_file(): drop caller-supplied LF from calls to create a one-liner file\n      builtin/log.c: minor reformat\n      Fifth batch for 2.6\n      pull: pass upload_pack only when it was given\n      Sixth batch for 2.6\n      Git 2.5.1\n      Seventh batch for 2.6\n      Eighth batch for 2.6\n      Ninth batch for 2.6\n      Git 2.6-rc0\n      am: match --signoff to the original scripted version\n      Git 2.6-rc1\n\nKarsten Blees (1):\n      Documentation/i18n.txt: clarify character encoding support\n\nKarthik Nayak (12):\n      for-each-ref: extract helper functions out of grab_single_ref()\n      for-each-ref: clean up code\n      for-each-ref: rename 'refinfo' to 'ref_array_item'\n      for-each-ref: introduce new structures for better organisation\n      for-each-ref: introduce 'ref_array_clear()'\n      for-each-ref: rename some functions and make them public\n      for-each-ref: rename variables called sort to sorting\n      ref-filter: add 'ref-filter.h'\n      Documentation/tag: remove double occurance of \"<pattern>\"\n      ref-filter: move code from 'for-each-ref'\n      for-each-ref: introduce filter_refs()\n      ref-filter: make 'ref_array_item' use a FLEX_ARRAY for refname\n\nKevin Daudt (1):\n      pull: allow dirty tree when rebase.autostash enabled\n\nLars Schneider (1):\n      git-p4: honor core.ignorecase when using P4 client specs\n\nMatthieu Moy (3):\n      Documentation/bisect: move getting help section to the end\n      pull.sh: quote $upload_pack when passing it to git-fetch\n      bisect: don't mix option parsing and non-trivial code\n\nMichael Haggerty (45):\n      delete_ref(): move declaration to refs.h\n      remove_branches(): remove temporary\n      delete_ref(): handle special case more explicitly\n      delete_refs(): new function for the refs API\n      delete_refs(): make error message more generic\n      delete_refs(): bail early if the packed-refs file cannot be rewritten\n      prune_remote(): use delete_refs()\n      prune_refs(): use delete_refs()\n      repack_without_refs(): make function private\n      initial_ref_transaction_commit(): function for initial ref creation\n      refs: remove some functions from the module's public interface\n      initial_ref_transaction_commit(): check for duplicate refs\n      initial_ref_transaction_commit(): check for ref D/F conflicts\n      refs: move the remaining ref module declarations to refs.h\n      refs.h: add some parameter names to function declarations\n      check_branch_commit(): make first parameter const\n      update_ref(): don't read old reference value before delete\n      cmd_update_ref(): make logic more straightforward\n      delete_ref(): use the usual convention for old_sha1\n      Documentation/bisect: revise overall content\n      fast-import: add a get-mark command\n      Documentation/git-worktree: consistently use term \"linked working tree\"\n      Documentation/git-worktree: fix incorrect reference to file \"locked\"\n      Documentation/config: fix stale \"git prune --worktree\" reference\n      Documentation/git-worktree: wordsmith worktree-related manpages\n      get_remote_group(): handle remotes with single-character names\n      get_remote_group(): rename local variable \"space\" to \"wordlen\"\n      get_remote_group(): eliminate superfluous call to strcspn()\n      get_remote_group(): use skip_prefix()\n      lockfile: move documentation to lockfile.h and lockfile.c\n      create_bundle(): duplicate file descriptor to avoid closing it twice\n      lockfile: add accessors get_lock_file_fd() and get_lock_file_fp()\n      lockfile: add accessor get_lock_file_path()\n      commit_lock_file(): use get_locked_file_path()\n      tempfile: a new module for handling temporary files\n      prepare_tempfile_object(): new function, extracted from create_tempfile()\n      tempfile: add several functions for creating temporary files\n      register_tempfile(): new function to handle an existing temporary file\n      write_shared_index(): use tempfile module\n      setup_temporary_shallow(): use tempfile module\n      diff: use tempfile module\n      lock_repo_for_gc(): compute the path to \"gc.pid\" only once\n      gc: use tempfile module to handle gc.pid file\n      credential-cache--daemon: delete socket from main()\n      credential-cache--daemon: use tempfile module\n\nMichael Rappazzo (1):\n      git-rebase--interactive.sh: add config option for custom instruction format\n\nMike Hommey (2):\n      Allow to control where the replace refs are looked for\n      fast-import: do less work when given \"from\" matches current branch head\n\nNguyễn Thái Ngọc Duy (4):\n      setup: set env $GIT_WORK_TREE when work tree is set, like $GIT_DIR\n      t7063: use --force-untracked-cache to speed up a bit\n      untracked cache: fix entry invalidation\n      setup: update the right file in multiple checkouts\n\nPatrick Steinhardt (6):\n      Documentation/git-worktree: fix duplicated 'from'\n      tests: fix broken && chains in t1509-root-worktree\n      tests: fix cleanup after tests in t1509-root-worktree\n      clone: do not include authentication data in guessed dir\n      clone: do not use port number as dir name\n      clone: abort if no dir name could be guessed\n\nPaul Tan (85):\n      t4150: test applying StGit patch\n      am: teach StGit patch parser how to read from stdin\n      t4150: test applying StGit series\n      am: use gmtime() to parse mercurial patch date\n      am: teach mercurial patch parser how to read from stdin\n      parse-options-cb: implement parse_opt_passthru()\n      parse-options-cb: implement parse_opt_passthru_argv()\n      argv-array: implement argv_array_pushv()\n      pull: implement skeletal builtin pull\n      pull: implement fetch + merge\n      pull: pass verbosity, --progress flags to fetch and merge\n      pull: pass git-merge's options to git-merge\n      pull: pass git-fetch's options to git-fetch\n      pull: error on no merge candidates\n      pull: support pull.ff config\n      pull: check if in unresolved merge state\n      pull: fast-forward working tree if head is updated\n      pull: implement pulling into an unborn branch\n      pull: set reflog message\n      pull: teach git pull about --rebase\n      pull: configure --rebase via branch.<name>.rebase or pull.rebase\n      pull --rebase: exit early when the working directory is dirty\n      pull --rebase: error on no merge candidate cases\n      pull: remove redirection to git-pull.sh\n      t4150: am.messageid really adds the message id\n      t4150: am fails if index is dirty\n      t4151: am --abort will keep dirty index intact\n      t4150: am refuses patches when paused\n      t4150: am --resolved fails if index has no changes\n      t4150: am --resolved fails if index has unmerged entries\n      t4150: am with applypatch-msg hook\n      t4150: am with pre-applypatch hook\n      t4150: am with post-applypatch hook\n      t4150: tests for am --[no-]scissors\n      t3418: non-interactive rebase --continue with rerere enabled\n      t3901: test git-am encoding conversion\n      wrapper: implement xopen()\n      wrapper: implement xfopen()\n      builtin-am: implement skeletal builtin am\n      builtin-am: implement patch queue mechanism\n      builtin-am: split out mbox/maildir patches with git-mailsplit\n      builtin-am: auto-detect mbox patches\n      builtin-am: extract patch and commit info with git-mailinfo\n      builtin-am: apply patch with git-apply\n      builtin-am: implement committing applied patch\n      builtin-am: refuse to apply patches if index is dirty\n      builtin-am: implement --resolved/--continue\n      builtin-am: don't parse mail when resuming\n      builtin-am: implement --skip\n      builtin-am: implement --abort\n      builtin-am: reject patches when there's a session in progress\n      builtin-am: implement -q/--quiet\n      builtin-am: exit with user friendly message on failure\n      builtin-am: implement -s/--signoff\n      cache-tree: introduce write_index_as_tree()\n      builtin-am: implement --3way\n      builtin-am: implement --rebasing mode\n      builtin-am: bypass git-mailinfo when --rebasing\n      builtin-am: handle stray state directory\n      builtin-am: implement -u/--utf8\n      builtin-am: implement -k/--keep, --keep-non-patch\n      builtin-am: implement --[no-]message-id, am.messageid\n      builtin-am: support --keep-cr, am.keepcr\n      builtin-am: implement --[no-]scissors\n      builtin-am: pass git-apply's options to git-apply\n      builtin-am: implement --ignore-date\n      builtin-am: implement --committer-date-is-author-date\n      builtin-am: implement -S/--gpg-sign, commit.gpgsign\n      builtin-am: invoke post-rewrite hook\n      builtin-am: support automatic notes copying\n      builtin-am: invoke applypatch-msg hook\n      builtin-am: invoke pre-applypatch hook\n      builtin-am: invoke post-applypatch hook\n      builtin-am: rerere support\n      builtin-am: support and auto-detect StGit patches\n      builtin-am: support and auto-detect StGit series files\n      builtin-am: support and auto-detect mercurial patches\n      builtin-am: implement -i/--interactive\n      builtin-am: implement legacy -b/--binary option\n      builtin-am: check for valid committer ident\n      builtin-am: remove redirection to git-am.sh\n      test_terminal: redirect child process' stdin to a pty\n      am: let command-line options override saved options\n      am: let --signoff override --no-signoff\n      am --skip/--abort: merge HEAD/ORIG_HEAD tree into index\n\nPhilip Oakley (1):\n      po/README: Update directions for l10n contributors\n\nRalf Thielow (1):\n      lockfile: remove function \"hold_lock_file_for_append\"\n\nRemi Lespinet (11):\n      t9001-send-email: move script creation in a setup test\n      send-email: allow aliases in patch header and command script outputs\n      t9001-send-email: refactor header variable fields replacement\n      send-email: refactor address list process\n      send-email: allow use of aliases in the From field of --compose mode\n      send-email: minor code refactoring\n      send-email: reduce dependencies impact on parse_address_line\n      send-email: consider quote as delimiter instead of character\n      send-email: allow multiple emails using --cc, --to and --bcc\n      send-email: suppress meaningless whitespaces in from field\n      git-am: add am.threeWay config variable\n\nRené Scharfe (3):\n      t5004: test ZIP archives with many entries\n      archive-zip: use a local variable to store the creator version\n      archive-zip: support more than 65535 entries\n\nSZEDER Gábor (8):\n      bash prompt: test untracked files status indicator with untracked dirs\n      bash prompt: faster untracked status indicator with untracked directories\n      config: add '--name-only' option to list only variable names\n      completion: list variable names reliably with 'git config --name-only'\n      t3020: fix typo in test description\n      config: restructure format_config() for better control flow\n      wt-status: move #include \"pathspec.h\" to the header\n      describe --contains: default to HEAD when no commit-ish is given\n\nSimon A. Eugster (1):\n      checkout: document subtlety around --ours/--theirs\n\nStefan Beller (4):\n      parse-options: align curly braces for all options\n      add: remove dead code\n      transport-helper: die on errors reading refs.\n      read-cache: fix indentation in read_index_from\n\nSven Strickroth (1):\n      config: close config file handle in case of error\n\nThomas Ackermann (1):\n      typofix for index-format.txt\n\nThomas Braun (1):\n      completion: offer '--edit-todo' during interactive rebase\n\nZoë Blade (1):\n      userdiff: add support for Fountain documents\n\nbrian m. carlson (7):\n      verify-tag: add tests\n      verify-tag: share code with verify-commit\n      verify-commit: add test for exit status on untrusted signature\n      gpg: centralize signature check\n      gpg: centralize printing signature buffers\n      verify-commit: add option to print raw gpg status information\n      verify-tag: add option to print raw gpg status information\n"},{"id":"269661","messageId":"87io7jr12p.fsf@igel.home","threadId":"40304","inReplyTo":"xmqqio7k78sw.fsf@gitster.mtv.corp.google.com","subject":"Re: [ANNOUNCE] Git v2.6.0-rc1","fromName":"Andreas Schwab","fromEmail":"schwab@linux-m68k.org","sentAt":"2015-09-09T16:48:14Z","receivedAt":"2015-09-09T16:48:14Z","isPatch":false,"sender":{"key":"schwab@linux-m68k.org","avatar":"https://avatars.githubusercontent.com/u/2175493?v=4"},"body":"Junio C Hamano <gitster@pobox.com> writes:\n\n>  * After \"git am\" without \"-3\" stops, running \"git am -\" pays attention\n\nIs this a typo for --->                         \"git am -3\"?\n\nAndreas.\n\n-- \nAndreas Schwab, schwab@linux-m68k.org\nGPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5\n\"And now for something completely different.\"\n"}]}