{"thread":{"id":"56697","subject":"[ANNOUNCE] Git v2.33.1","startedAt":"2021-10-13T00:19:09Z","lastAt":"2021-10-13T00:19:09Z","messageCount":1,"participants":["Junio C Hamano"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"438622","messageId":"xmqqczo922vm.fsf@gitster.g","threadId":"56697","inReplyTo":null,"subject":"[ANNOUNCE] Git v2.33.1","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2021-10-13T00:18:53Z","receivedAt":"2021-10-13T00:19:09Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"The latest maintenance release Git v2.33.1 is now available at the\nusual places.  There is nothing spectacular; just backporting\naccumulated fixes that already are merged for the next feature\nrelease.\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.33.1'\ntag and the 'maint' branch that the tag points at:\n\n  url = https://git.kernel.org/pub/scm/git/git\n  url = https://kernel.googlesource.com/pub/scm/git/git\n  url = git://repo.or.cz/alt-git.git\n  url = https://github.com/gitster/git\n\n----------------------------------------------------------------\n\nGit 2.33.1 Release Notes\n========================\n\nThis primarily is to backport various fixes accumulated during the\ndevelopment towards Git 2.34, the next feature release.\n\n\nFixes since v2.33\n-----------------\n\n * The unicode character width table (used for output alignment) has\n   been updated.\n\n * Input validation of \"git pack-objects --stdin-packs\" has been\n   corrected.\n\n * Bugfix for common ancestor negotiation recently introduced in \"git\n   push\" codepath.\n\n * \"git pull\" had various corner cases that were not well thought out\n   around its --rebase backend, e.g. \"git pull --ff-only\" did not stop\n   but went ahead and rebased when the history on other side is not a\n   descendant of our history.  The series tries to fix them up.\n\n * \"git apply\" miscounted the bytes and failed to read to the end of\n   binary hunks.\n\n * \"git range-diff\" code clean-up.\n\n * \"git commit --fixup\" now works with \"--edit\" again, after it was\n   broken in v2.32.\n\n * Use upload-artifacts v1 (instead of v2) for 32-bit linux, as the\n   new version has a blocker bug for that architecture.\n\n * Checking out all the paths from HEAD during the last conflicted\n   step in \"git rebase\" and continuing would cause the step to be\n   skipped (which is expected), but leaves MERGE_MSG file behind in\n   $GIT_DIR and confuses the next \"git commit\", which has been\n   corrected.\n\n * Various bugs in \"git rebase -r\" have been fixed.\n\n * mmap() imitation used to call xmalloc() that dies upon malloc()\n   failure, which has been corrected to just return an error to the\n   caller to be handled.\n\n * \"git diff --relative\" segfaulted and/or produced incorrect result\n   when there are unmerged paths.\n\n * The delayed checkout code path in \"git checkout\" etc. were chatty\n   even when --quiet and/or --no-progress options were given.\n\n * \"git branch -D <branch>\" used to refuse to remove a broken branch\n   ref that points at a missing commit, which has been corrected.\n\n * Build update for Apple clang.\n\n * The parser for the \"--nl\" option of \"git column\" has been\n   corrected.\n\n * \"git upload-pack\" which runs on the other side of \"git fetch\"\n   forgot to take the ref namespaces into account when handling\n   want-ref requests.\n\n * The sparse-index support can corrupt the index structure by storing\n   a stale and/or uninitialized data, which has been corrected.\n\n * Buggy tests could damage repositories outside the throw-away test\n   area we created.  We now by default export GIT_CEILING_DIRECTORIES\n   to limit the damage from such a stray test.\n\n * Even when running \"git send-email\" without its own threaded\n   discussion support, a threading related header in one message is\n   carried over to the subsequent message to result in an unwanted\n   threading, which has been corrected.\n\n * The output from \"git fast-export\", when its anonymization feature\n   is in use, showed an annotated tag incorrectly.\n\n * Recent \"diff -m\" changes broke \"gitk\", which has been corrected.\n\n * \"git maintenance\" scheduler fix for macOS.\n\n * A pathname in an advice message has been made cut-and-paste ready.\n\n * The \"git apply -3\" code path learned not to bother the lower level\n   merge machinery when the three-way merge can be trivially resolved\n   without the content level merge.\n\n * The code that optionally creates the *.rev reverse index file has\n   been optimized to avoid needless computation when it is not writing\n   the file out.\n\n * \"git range-diff -I... <range> <range>\" segfaulted, which has been\n   corrected.\n\n * The order in which various files that make up a single (conceptual)\n   packfile has been reevaluated and straightened up.  This matters in\n   correctness, as an incomplete set of files must not be shown to a\n   running Git.\n\n * The \"mode\" word is useless in a call to open(2) that does not\n   create a new file.  Such a call in the files backend of the ref\n   subsystem has been cleaned up.\n\n * \"git update-ref --stdin\" failed to flush its output as needed,\n   which potentially led the conversation to a deadlock.\n\n * When \"git am --abort\" fails to abort correctly, it still exited\n   with exit status of 0, which has been corrected.\n\n * Correct nr and alloc members of strvec struct to be of type size_t.\n\n * \"git stash\", where the tentative change involves changing a\n   directory to a file (or vice versa), was confused, which has been\n   corrected.\n\n * \"git clone\" from a repository whose HEAD is unborn into a bare\n   repository didn't follow the branch name the other side used, which\n   is corrected.\n\n * \"git cvsserver\" had a long-standing bug in its authentication code,\n   which has finally been corrected (it is unclear and is a separate\n   question if anybody is seriously using it, though).\n\n * \"git difftool --dir-diff\" mishandled symbolic links.\n\n * Sensitive data in the HTTP trace were supposed to be redacted, but\n   we failed to do so in HTTP/2 requests.\n\n * \"make clean\" has been updated to remove leftover .depend/\n   directories, even when it is not told to use them to compute header\n   dependencies.\n\n * Protocol v0 clients can get stuck parsing a malformed feature line.\n\nAlso contains various documentation updates and code clean-ups.\n\n----------------------------------------------------------------\n\nChanges since v2.33.0 are as follows:\n\nAlex Henrie (1):\n      pull: abort if --ff-only is given and fast-forwarding is impossible\n\nAndrzej Hunt (1):\n      connect: also update offset for features without values\n\nBagas Sanjaya (1):\n      Documentation: fix default directory of git bugreport -o\n\nCarlo Marcelo Arenas Belón (12):\n      build: update detect-compiler for newer Xcode version\n      builtin/merge: avoid -Wformat-extra-args from ancient Xcode\n      ci: run a pedantic build as part of the GitHub workflow\n      ci: update freebsd 12 cirrus job\n      ci: use upload-artifacts v1 for dockerized jobs\n      remote: avoid -Wunused-but-set-variable in gcc with -DNDEBUG\n      tree-diff: fix leak when not HAVE_ALLOCA_H\n      t0000: avoid masking git exit value through pipes\n      git-cvsserver: use crypt correctly to compare password hashes\n      git-cvsserver: protect against NULL in crypt(3)\n      Documentation: cleanup git-cvsserver\n      unicode: update the width tables to Unicode 14\n\nDavid Aguilar (1):\n      difftool: fix symlink-file writing in dir-diff mode\n\nDerrick Stolee (1):\n      maintenance: skip bootout/bootstrap when plist is registered\n\nElijah Newren (25):\n      t7601: test interaction of merge/rebase/fast-forward flags and options\n      t7601: add tests of interactions with multiple merge heads and config\n      pull: since --ff-only overrides, handle it first\n      pull: make --rebase and --no-rebase override pull.ff=only\n      pull: abort by default when fast-forwarding is not possible\n      pull: update docs & code for option compatibility with rebasing\n      pull: fix handling of multiple heads\n      git-rebase.txt: correct antiquated claims about --rebase-merges\n      directory-rename-detection.txt: small updates due to merge-ort optimizations\n      Documentation: edit awkward references to `git merge-recursive`\n      merge-strategies.txt: update wording for the resolve strategy\n      merge-strategies.txt: do not imply using copy detection is desired\n      merge-strategies.txt: avoid giving special preference to patience algorithm\n      merge-strategies.txt: fix simple capitalization error\n      git-rebase.txt: correct out-of-date and misleading text about renames\n      merge-strategies.txt: add coverage of the `ort` merge strategy\n      Update error message and code comment\n      t3903: document a pair of directory/file bugs\n      stash: avoid feeding directories to update-index\n      stash: restore untracked files AFTER restoring tracked files\n      git-am.txt: clarify --abort behavior\n      t4151: add a few am --abort tests\n      am: fix incorrect exit status on am fail to abort\n      trace2.h: fix trivial comment typo\n      merge-ort: fix completely wrong comment\n\nFelipe Contreras (4):\n      completion: bash: fix prefix detection in branch.*\n      completion: bash: fix for suboptions with value\n      completion: bash: fix for multiple dash commands\n      completion: bash: add correct suffix in variables\n\nJeff Hostetler (1):\n      sparse-index: copy dir_hash in ensure_full_index()\n\nJeff King (13):\n      build: clang version may not be followed by extra words\n      range-diff: drop useless \"offset\" variable from read_patches()\n      range-diff: handle unterminated lines in read_patches()\n      range-diff: use ssize_t for parsed \"len\" in read_patches()\n      apply: keep buffer/size pair in sync when parsing binary hunks\n      t5323: drop mentions of \"master\"\n      logmsg_reencode(): warn when iconv() fails\n      docs: use \"character encoding\" to refer to commit-object encoding\n      t5562: use alarm() to interrupt timed child-wait\n      strvec: use size_t to store nr and alloc\n      t1400: avoid SIGPIPE race condition on fifo\n      clone: handle unborn branch in bare repos\n      http: match headers case-insensitively when redacting\n\nJoel Klinghed (1):\n      commit: restore --edit when combined with --fixup\n\nJohannes Schindelin (1):\n      maintenance: create `launchctl` configuration using a lock file\n\nJohannes Sixt (1):\n      t9001: PATH must not use Windows-style paths\n\nJonathan Tan (3):\n      send-pack: fix push.negotiate with remote helper\n      send-pack: fix push nego. when remote has refs\n      fetch: die on invalid --negotiation-tip hash\n\nJosh Steadmon (1):\n      connect, protocol: log negotiated protocol version\n\nJunio C Hamano (4):\n      build: catch clang that identifies itself as \"$VENDOR clang\"\n      apply: resolve trivial merge without hitting ll-merge with \"--3way\"\n      hash-object: prefix_filename() returns allocated memory these days\n      Git 2.33.1\n\nKim Altintop (3):\n      t5730: introduce fetch command helper\n      upload-pack.c: treat want-ref relative to namespace\n      docs: clarify the interaction of transfer.hideRefs and namespaces\n\nKyle Zhao (1):\n      pack-revindex.h: correct the time complexity descriptions\n\nMarvin Häuser (1):\n      send-email: avoid incorrect header propagation\n\nMatheus Tavares (1):\n      checkout: make delayed checkout respect --quiet and --no-progress\n\nMatthias Aßhauer (1):\n      documentation: add documentation for 'git version'\n\nMickey Endito (1):\n      t5582: remove spurious 'cd \"$D\"' line\n\nMike Hommey (1):\n      credential: fix leak in credential_apply_config()\n\nPatrick Steinhardt (1):\n      update-ref: fix streaming of status updates\n\nPhilip Oakley (1):\n      doc: config, tell readers of `git help --config`\n\nPhillip Wood (7):\n      t3403: fix commit authorship\n      rebase --apply: restore some tests\n      rebase --continue: remove .git/MERGE_MSG\n      rebase -r: make 'merge -c' behave like reword\n      rebase -i: add another reword test\n      rebase -r: don't write .git/MERGE_MSG when fast-forwarding\n      rebase -r: fix merge -c with a merge strategy\n\nRené Scharfe (10):\n      compat: let git_mmap use malloc(3) directly\n      xopen: explicitly report creation failures\n      use xopen() to handle fatal open(2) failures\n      show-branch: simplify rev_is_head()\n      archive: convert queue_directory to struct object_id\n      branch: allow deleting dangling branches with --force\n      range-diff: avoid segfault with -I\n      setup: use xopen and xdup in sanitize_stdfds\n      refs/files-backend: remove unused open mode parameter\n      compression: drop write-only core_compression_* variables\n\nSZEDER Gábor (3):\n      Makefile: remove archives before manipulating them with 'ar'\n      column: fix parsing of the '--nl' option\n      test-lib: set GIT_CEILING_DIRECTORIES to protect the surrounding repository\n\nSergey Organov (1):\n      diff-index: restore -c/--cc options handling\n\nTakashi Iwai (1):\n      completion: tcsh: Fix regression by drop of wrapper functions\n\nTal Kelrich (1):\n      fast-export: fix anonymized tag using original length\n\nTaylor Blau (4):\n      bulk-checkin.c: store checksum directly\n      pack-write.c: rename `.idx` files after `*.rev`\n      builtin/repack.c: move `.idx` files into place last\n      builtin/index-pack.c: move `.idx` files into place last\n\nZoker (1):\n      doc: fix syntax error and the format of printf\n\nÆvar Arnfjörð Bjarmason (20):\n      pack-objects tests: cover blindspots in stdin handling\n      pack-objects: fix segfault in --stdin-packs option\n      bundle doc: rewrite the \"DESCRIPTION\" section\n      bundle doc: elaborate on object prerequisites\n      bundle doc: elaborate on rev<->ref restriction\n      bundle doc: replace \"basis\" with \"prerequsite(s)\"\n      ls-remote: set packet_trace_identity(<name>)\n      rebase: emit one \"fatal\" in \"fatal: fatal: <error>\"\n      protocol-caps.c: fix memory leak in send_info()\n      mailmap.c: fix a memory leak in free_mailap_{info,entry}()\n      gc: remove trailing dot from \"gc.log\" line\n      send-email: fix a \"first config key wins\" regression in v2.33.0\n      Makefile: remove the check_bindir script\n      pack-write: skip *.rev work when not writing *.rev\n      pack.h: line-wrap the definition of finish_tmp_packfile()\n      pack-write: refactor renaming in finish_tmp_packfile()\n      index-pack: refactor renaming in final()\n      pack-write: split up finish_tmp_packfile() function\n      pack-objects: rename .idx files into place after .bitmap files\n      Makefile: clean .depend dirs under COMPUTE_HEADER_DEPENDENCIES != yes\n\nĐoàn Trần Công Danh (3):\n      t6300: don't run cat-file on non-existent object\n      t6300: check for cat-file exit status code\n      diff-lib: ignore paths that are outside $cwd if --relative asked\n\n"}]}