Notable changes since 1.1.0
New features
- Add
amcommand andporcelain.am()for applying mailbox-style email patches (git am), with state persistence for--continue,--skip,--abort, and--quitrecovery (#1692). - Add
applycommand andporcelain.apply_patch()for applying unified diffs, including rename/copy detection, binary patches with Git's base85 encoding, and--3waymerge fallback (#1784). - Expand
logcommand options:--oneline,--abbrev-commit,--author,--committer,--grep,--since/--after,--until/--before,-n/--max-count,--no-merges,--merges,--stat,-p/--patch,--name-only, and--follow(#1779). - Add support for push options (
-o/--push-option) inpush, enabling AGit flow and other server-side push option workflows. - Add missing push options:
--all,--tags,--delete,--dry-run,--prune,--set-upstream,--follow-tags, and--mirror(#1844). - Add support for atomic push operations (
--atomic): either all ref updates succeed or none are applied (#1781). - Add support for
extensions.relativeworktreesrepository extension, allowing worktrees to use relative paths (#2112).
Configuration support
gc.pruneExpire— grace period before unreachable objects are pruned (#1859).core.precomposeunicode— normalize NFD Unicode paths from macOS filesystems to NFC (#1804).core.gitProxy— proxy command forgit://protocol connections (#1850).core.maxStat— limit stat operations when checking for unstaged changes (#1853).core.packedGitLimit— cap memory used for mmapped pack files, closing LRU packs when exceeded (#1848).core.deltaBaseCacheLimit— cap memory used for caching delta base objects; defaults to 96 MiB (#1849).http.userAgent— customize the User-Agent header (global and URL-specific); default isgit/dulwich/{version}.
Fixes
- Fix GPG signature verification to raise
BadSignaturefor all GPG errors, not justBadSignatures; also detect when GPG returns no signatures. - Fix client incorrectly sending
unbornargument in Git protocol v2ls-refsrequests to servers that don't advertisels-refs=unborn, preventing clones from older servers like Gerrit 3.12.2 (#2104). - Improve error message in
read_info_refs()to show the actual line content when parsing fails (#2103). - Preserve quoted trailing whitespace in config values (#2145, Christopher Toth).
- Fix
.gitignoreparent re-include handling so a later!dir/re-include allows a subsequent file-level negation to take effect (#2141, N0zoM1z0). - Fix host key verification in
contrib/paramiko_vendor.pyby loading known hosts and rejecting unknown SSH host keys by default (#2123, quart27219).
Packaging
- No longer ship
contrib/as part of the distribution. Thecontrib/directory has always been documented as unsupported and is now excluded from the installed package (#2122).