chore(deps): update dependency dulwich to v1.2.13 - #1733
Merged
Conversation
Super-linter summary
All files and directories linted successfully For more information, see the GitHub Actions workflow run Powered by Super-linter |
tobiasge
approved these changes
Aug 25, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
==1.2.12→==1.2.13Release Notes
dulwich/dulwich (dulwich)
v1.2.13Compare Source
Make concurrent
Pack.get_rawcalls thread-safe by synchronizingPackData's resolved-object offset cache.(Bojan Zivanovic)
Speed up cached
PackData.get_object_atlookups by acquiring theoffset-cache lock directly instead of through a
withstatement.(Bojan Zivanovic)
Bound fetch negotiation the way C Git's
MAX_IN_VAINdoes: give upafter 256 unacknowledged "have" lines instead of draining the whole
graph walker into stateless (HTTP) requests. (Bojan Zivanovic, #2343)
Add
repo.sanitize_user_identity, which builds an identity from aname and an email sanitized the way git's
fmt_identdoes, forcallers who cannot reject invalid input via
check_user_identity.(Bojan Zivanovic, #2342)
Make concurrent
PackDatareads thread-safe by mmap-ing pack contentsand indexing the mapping at explicit offsets instead of sharing the file
position. New
unpack_object_at,read_pack_header_at,read_zlib_chunks_at,take_msb_bytes_atandcompute_buffer_sharead from a buffer; the existing read-callable variants remain for streams.
(Bojan Zivanovic, Jelmer Vernooij)
Deduplicate the commit walk in
find_shallowandget_depth(
dulwich.object_store). Both re-expanded a commit once per path thatreached it, so a merge-heavy history walked in exponential time.
(netliomax25-code)
SECURITY: Don't follow symlinks when writing messages in
porcelain.format_patch,mbox.split_mboxandmbox.split_maildir.A symlink pre-planted at an output filename was followed, writing the
message outside the output
directory. (Jelmer Vernooij; Reported by wzc)
Only reject reserved Windows device names (
aux,nul,con, ...)when actually running on Windows. C git confines this check to its Windows
compat layer, so repositories carrying such paths could not be cloned
elsewhere. (Jelmer Vernooij, #2351)
Fix
ignoreandattrsmatching for patterns ending in**/. Thetrailing slash was dropped when translating the pattern, so
foo/**/alsomatched
foo/itself and every file directly inside it. Git only ignoresthe directories below
foo. (adarshsm)Catch
PackFileDisappearedin the bitmap probe inget_reachability_provider, which only guardedFileNotFoundError.(Jelmer Vernooij, #2344)
SECURITY: Widen modes for
core.sharedRepositoryas git does rather thanchmodding to a precomputed one, which left
.git/hooksand.git/refsworld-writable for
all. (netliomax25-code, Jelmer Vernooij, #2323)parse_shared_repositorynow returns aSharedPerm, andDiskObjectStore,IndexandGitFiletake ashared_permargument in place of
file_mode/dir_mode. (Jelmer Vernooij)Fix commit-graph extra edge indexing: the stored value is a position in a
list of 4-byte entries, not a byte offset, so every octopus merge after
the first got a wrong parent list. (netliomax25-code)
Refresh the mtime of an existing loose object in
DiskObjectStore.add_object(), so that a concurrentgit gccannotprune an object that was just reported as present.
(Bojan Zivanovic, #2340)
HARDEN: Validate shallow object ids received from the remote.
(netliomax25-code)
SECURITY: Refuse patch targets addressing the
.gitcontrol directory.apply_patches(viaporcelain.am/apply_patch) previously wrote andran
.git/hooks/pre-commit. (Jelmer Vernooij, reported by @bhaswanthc)Extend the
verify_leading_dirssymlink guard toupdate_working_tree(used bypull,mergeandcheckout).The 1.2.12 fix only covered
build_index_from_tree, so a tree pairing asymlink
xwith a descendantx/configcould still write through thelink and overwrite
.git/configon pull.(Jelmer Vernooij, reported by Hugh Lewis)
Translate
.gitignore/.gitattributesbracket expressions with Git'swildmatch()semantics:[^...]negation, POSIX classes, backslashescapes and malformed-class handling.
ignoreandattrsnow shareone translator, the new public
dulwich.wildmatch.(Vincent Gao, #2326)
Always single-quote the repository path in the SSH command, matching git's
sq_quote().shlex.quoteleft paths without shell metacharactersbare, which broke cloning from servers that parse the command themselves
rather than handing it to a shell, such as Bitbucket Server.
(Jelmer Vernooij, #2319)
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.