# 2.38.2

Git 2.38.2 Release Notes ========================

This is to backport various fixes accumulated during the development towards Git 2.39, the next feature release.

Fixes since v2.38.1 -------------------

- Update CodingGuidelines to clarify what features to use and avoid in C99.

<!-- -->

- The codepath that reads from the index v4 had unaligned memory accesses, which has been corrected.

<!-- -->

- "git remote rename" failed to rename a remote without fetch refspec, which has been corrected.

<!-- -->

- "git clone" did not like to see the "--bare" and the "--origin" options used together without a good reason.

<!-- -->

- Fix messages incorrectly marked for translation.

<!-- -->

- "git fsck" failed to release contents of tree objects already used from the memory, which has been fixed.

<!-- -->

- "git rebase -i" can mistakenly attempt to apply a fixup to a commit itself, which has been corrected.

<!-- -->

- In read-only repositories, "git merge-tree" tried to come up with a merge result tree object, which it failed (which is not wrong) and led to a segfault (which is bad), which has been corrected.

<!-- -->

- Force C locale while running tests around httpd to make sure we can find expected error messages in the log.

<!-- -->

- Fix a logic in "mailinfo -b" that miscomputed the length of a substring, which lead to an out-of-bounds access.

<!-- -->

- The codepath to sign learned to report errors when it fails to read from "ssh-keygen".

<!-- -->

- "GIT_EDITOR=: git branch --edit-description" resulted in failure, which has been corrected.

<!-- -->

- Documentation on various Boolean GIT\_\* environment variables have been clarified.

<!-- -->

- "git multi-pack-index repack/expire" used to repack unreachable cruft into a new pack, which have been corrected.

<!-- -->

- The code to clean temporary object directories (used for quarantine) tried to remove them inside its signal handler, which was a no-no.

<!-- -->

- "git branch --edit-description" on an unborh branch misleadingly said that no such branch exists, which has been corrected.

<!-- -->

- GitHub CI settings have been adjusted to recent reality, merging and cherry-picking necessary topics that have been prepared for Git 2.39.

<!-- -->

- `git` `rebase` `--update-refs` would delete references when all `update-ref` commands in the sequencer were removed, which has been corrected.

Also contains various documentation updates and code clean-ups.