git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] docs: note that extensions.compatobjectformat is experimental

From
brian m. carlson <sandals@crustytoothpaste.net>
Date
Aug 23, 2025, 22:06 UTC
Message-ID
<20250823220601.336079-1-sandals@crustytoothpaste.net>

The compatibility object format is only implemented for loose objects, not packed objects, so anyone attempting to push or fetch data into a repository with this option will likely not see it work as expected. In addition, the underlying storage of loose object mapping is likely to change because the current format is inefficient and does not handle important mapping information such as that of submodules.

It would have been preferable to initially document that this was an experimental feature, but we did not do so. We hinted at the fact that this functionality is incomplete in the description, but did not say so explicitly. Let's do so now: indicate that this feature is experimental, incomplete, and subject to change.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
---
This was spurred by the fact that I saw Gitolite had added SHA-256
support and then that users were expecting extensions.compatobjectformat
to work, when it clearly does not (and, in fact, in some cases breaks
pushing into the repository).

I know that some people will not appreciate this feature being retroactively marked as experimental, but it is definitively broken for real-world use cases without the rest of my sha256-interop branch. Technically someone could always insert loose objects and then pack them, and because the old loose object mapping was present, the mapping would work, but, as mentioned, this would perform pathologically with even small repositories, so it's not a useful configuration.

 Documentation/config/extensions.adoc | 3 +++
 1 file changed, 3 insertions(+)
diff --git a/Documentation/config/extensions.adoc b/Documentation/config/extensions.adoc
index 9e2f321a6d..292e95ddae 100644
--- a/Documentation/config/extensions.adoc
+++ b/Documentation/config/extensions.adoc
@@ -14,6 +14,9 @@ compatObjectFormat::
 	compatObjectFormat.  As well as being able to use oids encoded in
 	compatObjectFormat in addition to oids encoded with objectFormat to
 	locally specify objects.
++
+Note that the functionality enabled by this option is experimental, incomplete,
+and subject to change.
 
 noop::
 	This extension does not change git's behavior at all. It is useful only
Next: Junio C Hamano
Message 1 of 8 in “docs: note that extensions.compatobjectformat is experimental”
  1. docs: note that extensions.compatobjectformat is experimentalbrian m. carlson, Aug 23, 2025
  2. Junio C HamanoAug 25, 2025
  3. brian m. carlsonAug 25, 2025
  4. docs: note that extensions.compatobjectformat is incompletebrian m. carlson, Aug 25, 2025
  5. Junio C HamanoAug 25, 2025
  6. brian m. carlsonAug 25, 2025
  7. Junio C HamanoAug 25, 2025
  8. docs: note that extensions.compatobjectformat is incompletebrian m. carlson, Aug 25, 2025

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.