{"thread":{"id":"39537","subject":"[ANNOUNCE] Git v2.4.3","startedAt":"2015-06-05T20:50:33Z","lastAt":"2015-06-05T20:50:33Z","messageCount":1,"participants":["Junio C Hamano"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"263073","messageId":"xmqqiob1riau.fsf@gitster.dls.corp.google.com","threadId":"39537","inReplyTo":null,"subject":"[ANNOUNCE] Git v2.4.3","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2015-06-05T20:50:33Z","receivedAt":"2015-06-05T20:50:33Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"The latest maintenance release Git v2.4.3 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.4.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 = https://code.google.com/p/git-core/\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.4.3 Release Notes\n========================\n\nFixes since v2.4.3\n------------------\n\n * Error messages from \"git branch\" called remote-tracking branches as\n   \"remote branches\".\n\n * \"git rerere forget\" in a repository without rerere enabled gave a\n   cryptic error message; it should be a silent no-op instead.\n\n * \"git pull --log\" and \"git pull --no-log\" worked as expected, but\n   \"git pull --log=20\" did not.\n\n * The pull.ff configuration was supposed to override the merge.ff\n   configuration, but it didn't.\n\n * The code to read pack-bitmap wanted to allocate a few hundred\n   pointers to a structure, but by mistake allocated and leaked memory\n   enough to hold that many actual structures.  Correct the allocation\n   size and also have it on stack, as it is small enough.\n\n * Various documentation mark-up fixes to make the output more\n   consistent in general and also make AsciiDoctor (an alternative\n   formatter) happier.\n\n * \"git bundle verify\" did not diagnose extra parameters on the\n   command line.\n\n * Multi-ref transaction support we merged a few releases ago\n   unnecessarily kept many file descriptors open, risking to fail with\n   resource exhaustion.\n\n * The ref API did not handle cases where 'refs/heads/xyzzy/frotz' is\n   removed at the same time as 'refs/heads/xyzzy' is added (or vice\n   versa) very well.\n\n * The \"log --decorate\" enhancement in Git 2.4 that shows the commit\n   at the tip of the current branch e.g. \"HEAD -> master\", did not\n   work with --decorate=full.\n\n * There was a commented-out (instead of being marked to expect\n   failure) test that documented a breakage that was fixed since the\n   test was written; turn it into a proper test.\n\n * core.excludesfile (defaulting to $XDG_HOME/git/ignore) is supposed\n   to be overridden by repository-specific .git/info/exclude file, but\n   the order was swapped from the beginning. This belatedly fixes it.\n\n * The connection initiation code for \"ssh\" transport tried to absorb\n   differences between the stock \"ssh\" and Putty-supplied \"plink\" and\n   its derivatives, but the logic to tell that we are using \"plink\"\n   variants were too loose and falsely triggered when \"plink\" appeared\n   anywhere in the path (e.g. \"/home/me/bin/uplink/ssh\").\n\n * \"git rebase -i\" moved the \"current\" command from \"todo\" to \"done\" a\n   bit too prematurely, losing a step when a \"pick\" did not even start.\n\n * \"git add -e\" did not allow the user to abort the operation by\n   killing the editor.\n\n * Git 2.4 broke setting verbosity and progress levels on \"git clone\"\n   with native transports.\n\n * Some time ago, \"git blame\" (incorrectly) lost the convert_to_git()\n   call when synthesizing a fake \"tip\" commit that represents the\n   state in the working tree, which broke folks who record the history\n   with LF line ending to make their project portabile across\n   platforms while terminating lines in their working tree files with\n   CRLF for their platform.\n\n * Code clean-up for xdg configuration path support.\n\nAlso contains typofixes, documentation updates and trivial code\nclean-ups.\n\n----------------------------------------------------------------\n\nChanges since v2.4.2 are as follows:\n\nDanny Lin (1):\n      branch: do not call a \"remote-tracking branch\" a \"remote branch\"\n\nFredrik Gustafsson (1):\n      Documentation: clarify how \"git commit\" cleans up the edited log message\n\nJean-Noel Avila (1):\n      doc: fix unmatched code fences\n\nJeff King (14):\n      sha1_file: squelch \"packfile cannot be accessed\" warnings\n      t/lib-httpd.sh: skip tests if NO_CURL is defined\n      add: check return value of launch_editor\n      doc: fix unmatched code fences in git-stripspace\n      doc: fix misrendering due to `single quote'\n      doc: fix unquoted use of \"{type}\"\n      doc: fix hanging \"+\"-continuation\n      doc: fix length of underlined section-title\n      doc/add: reformat `--edit` option\n      doc: convert \\--option to --option\n      doc: drop backslash quoting of some curly braces\n      doc: put example URLs and emails inside literal backticks\n      doc: convert AsciiDoc {?foo} to ifdef::foo[]\n      rerere: exit silently on \"forget\" when rerere is disabled\n\nJunio C Hamano (7):\n      t0302: \"unreadable\" test needs POSIXPERM\n      fmt-merge-msg: plug small leak of commit buffer\n      ignore: info/exclude should trump core.excludesfile\n      tests: skip dav http-push tests under NO_EXPAT=NoThanks\n      log: decorate HEAD with branch name under --decorate=full, too\n      log: do not shorten decoration names too early\n      Git 2.4.3\n\nMichael Haggerty (30):\n      t1404: new tests of ref D/F conflicts within transactions\n      is_refname_available(): revamp the comments\n      is_refname_available(): avoid shadowing \"dir\" variable\n      is_refname_available(): convert local variable \"dirname\" to strbuf\n      entry_matches(): inline function\n      report_refname_conflict(): inline function\n      struct nonmatching_ref_data: store a refname instead of a ref_entry\n      is_refname_available(): use dirname in first loop\n      ref_transaction_commit(): use a string_list for detecting duplicates\n      refs: check for D/F conflicts among refs created in a transaction\n      verify_refname_available(): rename function\n      verify_refname_available(): report errors via a \"struct strbuf *err\"\n      lock_ref_sha1_basic(): report errors via a \"struct strbuf *err\"\n      lock_ref_sha1_basic(): improve diagnostics for ref D/F conflicts\n      rename_ref(): integrate lock_ref_sha1_basic() errors into ours\n      ref_transaction_commit(): provide better error messages\n      ref_transaction_commit(): delete extra \"the\" from error message\n      reflog_expire(): integrate lock_ref_sha1_basic() errors into ours\n      write_ref_to_lockfile(): new function, extracted from write_ref_sha1()\n      commit_ref_update(): new function, extracted from write_ref_sha1()\n      rename_ref(): inline calls to write_ref_sha1() from this function\n      ref_transaction_commit(): inline call to write_ref_sha1()\n      ref_transaction_commit(): remove the local flags variable\n      ref_transaction_commit(): fix atomicity and avoid fd exhaustion\n      write_ref_to_lockfile(): new function, extracted from write_ref_sha1()\n      commit_ref_update(): new function, extracted from write_ref_sha1()\n      rename_ref(): inline calls to write_ref_sha1() from this function\n      ref_transaction_commit(): inline call to write_ref_sha1()\n      ref_transaction_commit(): remove the local flags variable\n      ref_transaction_commit(): fix atomicity and avoid fd exhaustion\n\nMike Hommey (1):\n      clone: call transport_set_verbosity before anything else on the newly created transport\n\nPatrick Steinhardt (5):\n      bundle: verify arguments more strictly\n      git-verify-pack.txt: fix inconsistent spelling of \"packfile\"\n      git-unpack-objects.txt: fix inconsistent spelling of \"packfile\"\n      pack-protocol.txt: fix insconsistent spelling of \"packfile\"\n      doc: fix inconsistent spelling of \"packfile\"\n\nPaul Tan (13):\n      git-credential-store: support multiple credential files\n      git-credential-store: support XDG_CONFIG_HOME\n      t0302: test credential-store support for XDG_CONFIG_HOME\n      path.c: implement xdg_config_home()\n      attr.c: replace home_config_paths() with xdg_config_home()\n      dir.c: replace home_config_paths() with xdg_config_home()\n      credential-store.c: replace home_config_paths() with xdg_config_home()\n      git-commit: replace use of home_config_paths()\n      git-config: replace use of home_config_paths()\n      path.c: remove home_config_paths()\n      pull: handle --log=<n>\n      pull: make pull.ff=true override merge.ff\n      pull: parse pull.ff as a bool or string\n\nPhil Hord (1):\n      rebase -i: redo tasks that die during cherry-pick\n\nRené Scharfe (1):\n      pack-bitmaps: plug memory leak, fix allocation size for recent_bitmaps\n\nStefan Beller (5):\n      update-ref: test handling large transactions properly\n      t7004: rename ULIMIT test prerequisite to ULIMIT_STACK_SIZE\n      update-ref: test handling large transactions properly\n      t7004: rename ULIMIT test prerequisite to ULIMIT_STACK_SIZE\n      subdirectory tests: code cleanup, uncomment test\n\nTorsten Bögershausen (1):\n      blame: CRLF in the working tree and LF in the repo\n\nbrian m. carlson (3):\n      connect: simplify SSH connection code path\n      t5601: fix quotation error leading to skipped tests\n      connect: improve check for plink to reduce false positives\n"}]}