The 8th batch

Signed-off-by: Junio C Hamano <gitster@pobox.com>
diff --git a/Documentation/RelNotes/2.56.0.adoc b/Documentation/RelNotes/2.56.0.adoc
index 811f74b..cf2da31 100644
--- a/Documentation/RelNotes/2.56.0.adoc
+++ b/Documentation/RelNotes/2.56.0.adoc
@@ -56,6 +56,11 @@
    standardized to make them consistent with each other and with other
    commands.
 
+ * 'git log --graph' has been modified to visually distinguish parentless
+   'root' commits (and commits that become roots due to history
+   simplification) by indenting them, preventing them from appearing
+   falsely related to unrelated commits rendered immediately above them.
+
 
 Performance, Internal Implementation, Development Support etc.
 --------------------------------------------------------------
@@ -206,6 +211,36 @@
    pathspec filtering, which was lost when the streaming walk was
    refactored.
 
+ * The ref subsystem and the worktree API have been refactored to pass a
+   repository pointer down the call chain, allowing them to drop
+   references to the global 'the_repository' variable.  As part of this,
+   the handling of the 'core.packedRefsTimeout' configuration has been
+   moved into the per-repository ref store structure.
+
+ * 'git branch --contains' and 'git for-each-ref --contains' have been
+   optimized to use the memoized commit traversal previously used only by
+   'git tag --contains', significantly speeding up connectivity checks
+   across many candidate refs with shared history.
+
+ * The passing of push destination specifications in the 'remote-curl'
+   helper has been simplified by removing the explicit 'count' parameter
+   and relying on the NULL-termination of the array.
+
+ * The dependency on the global 'the_repository' variable in the
+   'refspec.c' API has been removed by passing the hash algorithm
+   explicitly to refspec-parsing functions and storing it in 'struct
+   refspec'.
+
+ * The enumeration of untracked and ignored files in 'git status' has
+   been optimized by avoiding quadratic complexity when inserting into
+   string lists, reducing the construction cost from O(n^2) to O(n log
+   n).
+
+ * The copy_file() and copy_file_with_time() functions have been
+   refactored to take a repository parameter, allowing the removal of the
+   implicit dependency on the global 'the_repository' variable in
+   'copy.c'.
+
 
 Fixes since v2.55
 -----------------
@@ -350,3 +385,19 @@
    'git submodule update' command until it was broken in a modernization
    of the option-parsing code, has been restored.
    (merge ff1da37f58 dm/submodule-update-i-shorthand later to maint).
+
+ * An accidental use of the '%zu' format specifier in 'git
+   submodule--helper' has been corrected to use 'PRIuMAX' and cast the
+   value to 'uintmax_t' to avoid portability issues.
+   (merge 3279c13c00 jc/submodule-helper-avoid-zu later to maint).
+
+ * The rebase post-rewrite notes-copying logic has been corrected.  When
+   a commit is dropped during rebase (e.g., because its changes are
+   already upstream), it is no longer recorded as rewritten, preventing
+   its notes from being copied to an unrelated commit.
+   (merge 42554b78fd pw/rebase-drop-notes-with-commit later to maint).
+
+ * A few memory problems in the Rust interface to C hash functions have
+   been corrected.  The 'Clone' implementation of 'CryptoHasher' now
+   properly initializes the context before cloning, and its 'Drop'
+   implementation now discards the context to prevent leaks.