git/Documentation
Jeff King d6f6b433a8 transport-helper: drop "object-format <algo>" option
The documentation in gitremote-helpers.txt claims that helpers should
accept an object-format option from Git whose value is either:

  1. "true", in which case the helper is merely told that Git
     understands the special ":object-format" response, and will send it

  2. an algorithm name that the helper should use

However, Git has never sent the second form, and it's not clear if it
would ever be useful.

When interacting with a remote Git repository, we generally discover
what _their_ object format is, and then decide what to do with a
mismatch (where that is currently just "bail out", but could eventually
be on-the-fly conversion and interop). And that is true for native
protocols, but also for transport helpers like remote-curl that talk to
remote Git repositories.  There we send back an ":object-format" line
telling Git what remote-curl detected on the other side.

And this is true even for pushes (since we get it via receive-pack's
advertisement). And it is even true for dumb-http, as we guess at the
algorithm based on the hash size, due to ac093d0790 (remote-curl: detect
algorithm for dumb HTTP by size, 2020-06-19).

The one case where it _isn't_ true is dumb-http talking to an empty
repository. There we have no clue what the remote hash is, so
remote-curl just sends back its default. If we kept the "object-format
<algo>" form then in theory Git could say "object-format sha256" to
change that default. But it doesn't really accomplish anything. We still
may or may not be mis-matched with the other side. For a fetch that's
OK, since it's by definition a noop. For a push into an empty
repository, it might matter (though the dumb http-push DAV code seems
happy to clobber a remote sha256 info/refs and corrupt the repository).
If we want to pursue making this work, I think we'd be better off
improving detection of the object format of empty repositories over
dumb-http (e.g., an "info/object-format" file).

But what about helpers that _aren't_ talking to another Git repo?
Consider something like git-cinnabar, which is converting on the fly
to/from hg. Most of the heavy lifting is done by fast-import/export, but
some oids may still pass between Git and the helper. Could
"object-format <algo>" be useful to tell the helper what oids we expect
to see?

Possibly, but in practice this isn't necessary. Git-cinnabar for example
already peeks at the local-repo .git/config to check its object-format
(and currently just bails if it is sha256).

So I think the "object-format" extension really is only useful for the
helper telling Git what object-format it found, and not the other way
around.

Note that this patch can't break any remote helpers; we're not changing
the code on the Git side at all, but just bringing the documentation in
line with what Git has always done. It does remove the receiving support
in remote-curl.c, but that code was never actually triggered.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-03-20 10:01:27 -07:00
..
RelNotes The fifth batch 2024-03-07 15:59:42 -08:00
config Merge branch 'jk/upload-pack-bounded-resources' 2024-03-07 15:59:42 -08:00
howto Merge branch 'js/update-urls-in-doc-and-comment' into maint-2.43 2024-02-08 16:22:01 -08:00
includes
mergetools mergetools: vimdiff: use correct tool's name when reading mergetool config 2024-02-19 08:45:14 -08:00
technical refs: introduce reftable backend 2024-02-07 08:28:37 -08:00
.gitattributes
.gitignore
CodingGuidelines Merge branch 'jc/doc-compat-util' 2024-03-05 09:44:43 -08:00
Makefile unit tests: add a project plan document 2023-11-10 08:15:25 +09:00
MyFirstContribution.txt Merge branch 'jc/majordomo-to-subspace' into maint-2.43 2024-02-13 14:44:50 -08:00
MyFirstObjectWalk.txt Merge branch 'vd/adjust-mfow-doc-to-updated-headers' 2023-07-17 11:30:42 -07:00
ReviewingGuidelines.txt documentation: remove unnecessary hyphens 2023-10-09 12:06:29 -07:00
SubmittingPatches SubmittingPatches: hyphenate non-ASCII 2023-12-27 21:33:24 -08:00
ToolsForGit.txt documentation: add some commas where they are helpful 2023-10-09 12:06:44 -07:00
asciidoc.conf
asciidoctor-extensions.rb
blame-options.txt
build-docdep.perl
cat-texi.perl
cmd-list.perl
config.txt Merge branch 'jc/attr-tree-config' 2023-10-30 07:09:55 +09:00
date-formats.txt
diff-format.txt
diff-generate-patch.txt documentation: add some commas where they are helpful 2023-10-09 12:06:44 -07:00
diff-options.txt doc: enforce placeholders in documentation 2023-12-26 11:06:57 -08:00
doc-diff
docbook-xsl.css
docbook.xsl
everyday.txto
fetch-options.txt fetch: add new config option fetch.all 2024-01-08 13:36:23 -08:00
fix-texi.perl
fsck-msgids.txt documentation: add missing article 2023-10-09 12:06:29 -07:00
git-add.txt Merge branch 'jc/doc-add-placeholder-fix' into HEAD 2024-03-01 14:38:55 -08:00
git-am.txt Merge branch 'jc/am-whitespace-doc' 2024-02-27 16:04:31 -08:00
git-annotate.txt
git-apply.txt documentation: add some commas where they are helpful 2023-10-09 12:06:44 -07:00
git-archimport.txt
git-archive.txt documentation: wording improvements 2023-10-09 12:04:21 -07:00
git-bisect-lk2009.txt
git-bisect.txt Merge branch 'jc/bisect-doc' into maint-2.43 2024-02-13 14:44:51 -08:00
git-blame.txt doc: enforce dashes in placeholders 2023-12-26 11:06:55 -08:00
git-branch.txt branch: clarify <oldbranch> term 2024-01-08 10:06:05 -08:00
git-bugreport.txt doc: enforce dashes in placeholders 2023-12-26 11:06:55 -08:00
git-bundle.txt
git-cat-file.txt doc/cat-file: make synopsis and description less confusing 2023-10-09 12:46:33 -07:00
git-check-attr.txt documentation: add some commas where they are helpful 2023-10-09 12:06:44 -07:00
git-check-ignore.txt documentation: fix whitespace issues 2023-10-09 12:06:29 -07:00
git-check-mailmap.txt
git-check-ref-format.txt documentation: add missing fullstops 2023-10-09 12:06:47 -07:00
git-checkout-index.txt documentation: add some commas where they are helpful 2023-10-09 12:06:44 -07:00
git-checkout.txt Merge branch 'jc/orphan-unborn' 2024-01-02 13:51:30 -08:00
git-cherry-pick.txt
git-cherry.txt
git-citool.txt
git-clean.txt Merge branch 'ch/clean-docfix' into maint-2.42 2023-11-02 16:53:25 +09:00
git-clone.txt doc: close unclosed angle-bracket of a placeholder in git-clone doc 2024-02-20 15:02:27 -08:00
git-column.txt
git-commit-graph.txt doc: enforce dashes in placeholders 2023-12-26 11:06:55 -08:00
git-commit-tree.txt
git-commit.txt doc: correct the 50 characters soft limit 2023-09-28 10:49:23 -07:00
git-config.txt doc: enforce placeholders in documentation 2023-12-26 11:06:57 -08:00
git-count-objects.txt documentation: add missing article 2023-10-09 12:06:29 -07:00
git-credential-cache--daemon.txt
git-credential-cache.txt documentation: add missing words 2023-10-09 12:06:29 -07:00
git-credential-store.txt documentation: add missing words 2023-10-09 12:06:29 -07:00
git-credential.txt documentation: wording improvements 2023-10-09 12:04:21 -07:00
git-cvsexportcommit.txt
git-cvsimport.txt doc: switch links to https 2023-11-26 10:07:05 +09:00
git-cvsserver.txt doc: enforce dashes in placeholders 2023-12-26 11:06:55 -08:00
git-daemon.txt doc: enforce placeholders in documentation 2023-12-26 11:06:57 -08:00
git-describe.txt
git-diagnose.txt doc: enforce dashes in placeholders 2023-12-26 11:06:55 -08:00
git-diff-files.txt documentation: add some commas where they are helpful 2023-10-09 12:06:44 -07:00
git-diff-index.txt documentation: wording improvements 2023-10-09 12:04:21 -07:00
git-diff-tree.txt documentation: add missing fullstops 2023-10-09 12:06:47 -07:00
git-diff.txt docs: AUTO_MERGE is not that special 2023-12-15 14:08:28 -08:00
git-difftool.txt Merge branch 'ps/difftool-dir-diff-exit-code' into HEAD 2024-03-01 14:38:54 -08:00
git-fast-export.txt doc: end sentences with full-stop 2024-02-20 15:03:13 -08:00
git-fast-import.txt doc: enforce dashes in placeholders 2023-12-26 11:06:55 -08:00
git-fetch-pack.txt documentation: add missing words 2023-10-09 12:06:29 -07:00
git-fetch.txt doc: enforce dashes in placeholders 2023-12-26 11:06:55 -08:00
git-filter-branch.txt doc: enforce dashes in placeholders 2023-12-26 11:06:55 -08:00
git-fmt-merge-msg.txt
git-for-each-ref.txt Merge branch 'kn/for-all-refs' 2024-03-05 09:44:44 -08:00
git-for-each-repo.txt
git-format-patch.txt Merge branch 'js/update-urls-in-doc-and-comment' into maint-2.43 2024-02-08 16:22:01 -08:00
git-fsck-objects.txt
git-fsck.txt documentation: add missing article 2023-10-09 12:06:29 -07:00
git-fsmonitor--daemon.txt documentation: add some commas where they are helpful 2023-10-09 12:06:44 -07:00
git-gc.txt builtin/repack.c: implement support for `--max-cruft-size` 2023-10-05 13:26:11 -07:00
git-get-tar-commit-id.txt documentation: fix typos 2023-10-09 12:06:24 -07:00
git-grep.txt documentation: fix typos 2023-10-09 12:06:24 -07:00
git-gui.txt
git-hash-object.txt documentation: wording improvements 2023-10-09 12:04:21 -07:00
git-help.txt documentation: add missing fullstops 2023-10-09 12:06:47 -07:00
git-hook.txt documentation: fix capitalization 2023-10-09 12:06:29 -07:00
git-http-backend.txt documentation: wording improvements 2023-10-09 12:04:21 -07:00
git-http-fetch.txt documentation: wording improvements 2023-10-09 12:04:21 -07:00
git-http-push.txt documentation: add some commas where they are helpful 2023-10-09 12:06:44 -07:00
git-imap-send.txt doc: switch links to https 2023-11-26 10:07:05 +09:00
git-index-pack.txt index-pack: --fsck-objects to take an optional argument for fsck msgs 2024-02-01 11:09:53 -08:00
git-init-db.txt
git-init.txt builtin/init: introduce `--ref-format=` value flag 2024-01-02 09:24:48 -08:00
git-instaweb.txt
git-interpret-trailers.txt trailer doc: <token> is a <key> or <keyAlias>, not both 2023-09-07 23:04:44 -07:00
git-log.txt diff-merges: introduce '--dd' option 2023-10-09 12:47:29 -07:00
git-ls-files.txt ls-files: avoid the verb "deprecate" for individual options 2024-01-25 10:55:53 -08:00
git-ls-remote.txt
git-ls-tree.txt Merge branch 'rs/doc-ls-tree-hex-literal' 2023-06-22 16:29:07 -07:00
git-mailinfo.txt
git-mailsplit.txt documentation: add missing article 2023-10-09 12:06:29 -07:00
git-maintenance.txt documentation: wording improvements 2023-10-09 12:04:21 -07:00
git-merge-base.txt documentation: add some commas where they are helpful 2023-10-09 12:06:44 -07:00
git-merge-file.txt merge-file: add --diff-algorithm option 2023-11-22 14:23:06 +09:00
git-merge-index.txt
git-merge-one-file.txt
git-merge-tree.txt merge-tree: accept 3 trees as arguments 2024-01-29 09:20:49 -08:00
git-merge.txt Merge branch 'ml/doc-merge-updates' into maint-2.43 2024-02-08 16:22:10 -08:00
git-mergetool--lib.txt documentation: fix capitalization 2023-10-09 12:06:29 -07:00
git-mergetool.txt documentation: add some commas where they are helpful 2023-10-09 12:06:44 -07:00
git-mktag.txt documentation: add missing article 2023-10-09 12:06:29 -07:00
git-mktree.txt documentation: wording improvements 2023-10-09 12:04:21 -07:00
git-multi-pack-index.txt
git-mv.txt doc: enforce dashes in placeholders 2023-12-26 11:06:55 -08:00
git-name-rev.txt documentation: add some commas where they are helpful 2023-10-09 12:06:44 -07:00
git-notes.txt doc: enforce dashes in placeholders 2023-12-26 11:06:55 -08:00
git-p4.txt
git-pack-objects.txt pack-objects: allow `--filter` without `--stdout` 2023-10-02 14:54:29 -07:00
git-pack-redundant.txt
git-pack-refs.txt
git-patch-id.txt
git-prune-packed.txt documentation: add missing words 2023-10-09 12:06:29 -07:00
git-prune.txt documentation: add missing article 2023-10-09 12:06:29 -07:00
git-pull.txt
git-push.txt Merge branch 'ms/doc-push-fix' into maint-2.42 2023-11-02 16:53:28 +09:00
git-quiltimport.txt documentation: add missing quotes 2023-10-09 12:06:47 -07:00
git-range-diff.txt Merge branch 'sn/typo-grammo-phraso-fixes' 2023-10-30 07:09:55 +09:00
git-read-tree.txt documentation: add missing article 2023-10-09 12:06:29 -07:00
git-rebase.txt Merge branch 'ak/rebase-autosquash' 2024-03-05 09:44:44 -08:00
git-receive-pack.txt documentation: add missing article 2023-10-09 12:06:29 -07:00
git-reflog.txt builtin/reflog: introduce subcommand to list reflogs 2024-02-21 09:58:07 -08:00
git-remote-ext.txt documentation: add missing article 2023-10-09 12:06:29 -07:00
git-remote-fd.txt documentation: add missing parenthesis 2023-10-09 12:06:47 -07:00
git-remote-helpers.txto
git-remote.txt git-remote.txt: fix typo 2024-02-21 10:02:55 -08:00
git-repack.txt Merge branch 'ps/git-repack-doc-fixes' 2023-10-30 07:09:57 +09:00
git-replace.txt doc: enforce dashes in placeholders 2023-12-26 11:06:55 -08:00
git-replay.txt replay: add --contained to rebase contained branches 2023-11-26 10:10:49 +09:00
git-request-pull.txt documentation: add some commas where they are helpful 2023-10-09 12:06:44 -07:00
git-rerere.txt
git-reset.txt
git-restore.txt documentation: add missing words 2023-10-09 12:06:29 -07:00
git-rev-list.txt documentation: fix subject/verb agreement 2023-10-09 12:06:29 -07:00
git-rev-parse.txt doc: git-rev-parse: enforce command-line description syntax 2024-02-20 14:41:37 -08:00
git-revert.txt doc: enforce dashes in placeholders 2023-12-26 11:06:55 -08:00
git-rm.txt documentation: fix apostrophe usage 2023-10-09 12:06:29 -07:00
git-send-email.txt Merge branch 'ds/doc-send-email-capitalization' into HEAD 2024-03-01 14:38:54 -08:00
git-send-pack.txt documentation: add missing article 2023-10-09 12:06:29 -07:00
git-sh-i18n--envsubst.txt
git-sh-i18n.txt
git-sh-setup.txt documentation: add missing article 2023-10-09 12:06:29 -07:00
git-shell.txt
git-shortlog.txt
git-show-branch.txt documentation: add some commas where they are helpful 2023-10-09 12:06:44 -07:00
git-show-index.txt
git-show-ref.txt builtin/show-ref: add new mode to check for reference existence 2023-11-01 12:09:01 +09:00
git-show.txt documentation: fix singular vs. plural 2023-10-09 12:06:29 -07:00
git-sparse-checkout.txt
git-stage.txt
git-stash.txt
git-status.txt doc: enforce dashes in placeholders 2023-12-26 11:06:55 -08:00
git-stripspace.txt documentation: fix capitalization 2023-10-09 12:06:29 -07:00
git-submodule.txt doc: enforce dashes in placeholders 2023-12-26 11:06:55 -08:00
git-svn.txt doc: enforce dashes in placeholders 2023-12-26 11:06:55 -08:00
git-switch.txt Merge branch 'jc/orphan-unborn' 2024-01-02 13:51:30 -08:00
git-symbolic-ref.txt documentation: fix subject/verb agreement 2023-10-09 12:06:29 -07:00
git-tag.txt doc: enforce dashes in placeholders 2023-12-26 11:06:55 -08:00
git-tools.txt
git-unpack-file.txt
git-unpack-objects.txt
git-update-index.txt documentation: add some commas where they are helpful 2023-10-09 12:06:44 -07:00
git-update-ref.txt documentation: add missing article 2023-10-09 12:06:29 -07:00
git-update-server-info.txt documentation: fix capitalization 2023-10-09 12:06:29 -07:00
git-upload-archive.txt
git-upload-pack.txt documentation: fix typos 2023-10-09 12:06:24 -07:00
git-var.txt documentation: wording improvements 2023-10-09 12:04:21 -07:00
git-verify-commit.txt
git-verify-pack.txt documentation: add missing article 2023-10-09 12:06:29 -07:00
git-verify-tag.txt
git-version.txt
git-web--browse.txt
git-whatchanged.txt documentation: add missing article 2023-10-09 12:06:29 -07:00
git-worktree.txt orphan/unborn: add to the glossary and use them consistently 2023-11-24 12:11:23 +09:00
git-write-tree.txt
git.txt Merge branch 'jc/no-lazy-fetch' 2024-03-07 15:59:40 -08:00
gitattributes.txt merge-ll: expose revision names to custom drivers 2024-01-24 13:15:06 -08:00
gitcli.txt documentation: add missing article 2023-10-09 12:06:29 -07:00
gitcore-tutorial.txt doc: switch links to https 2023-11-26 10:07:05 +09:00
gitcredentials.txt Merge branch 'mh/doc-credential-helpers' 2023-07-18 07:28:52 -07:00
gitcvs-migration.txt
gitdiffcore.txt doc: enforce dashes in placeholders 2023-12-26 11:06:55 -08:00
giteveryday.txt Merge branch 'sn/typo-grammo-phraso-fixes' 2023-10-30 07:09:55 +09:00
gitfaq.txt
gitformat-bundle.txt documentation: fix subject/verb agreement 2023-10-09 12:06:29 -07:00
gitformat-chunk.txt documentation: fix verb tense 2023-10-09 12:06:29 -07:00
gitformat-commit-graph.txt
gitformat-index.txt doc: enforce dashes in placeholders 2023-12-26 11:06:55 -08:00
gitformat-pack.txt midx: implement `BTMP` chunk 2023-12-14 14:38:07 -08:00
gitformat-signature.txt
gitglossary.txt
githooks.txt doc: enforce dashes in placeholders 2023-12-26 11:06:55 -08:00
gitignore.txt Merge branch 'jc/gitignore-doc-pattern-markup' 2023-07-27 15:26:37 -07:00
gitk.txt doc: enforce dashes in placeholders 2023-12-26 11:06:55 -08:00
gitmailmap.txt
gitmodules.txt doc: highlight that .gitmodules does not support !command 2023-07-25 14:55:07 -07:00
gitnamespaces.txt
gitprotocol-capabilities.txt doc: enforce dashes in placeholders 2023-12-26 11:06:55 -08:00
gitprotocol-common.txt documentation: remove extraneous words 2023-10-09 12:06:29 -07:00
gitprotocol-http.txt Merge branch 'js/update-urls-in-doc-and-comment' into maint-2.43 2024-02-08 16:22:01 -08:00
gitprotocol-pack.txt documentation: fix subject/verb agreement 2023-10-09 12:06:29 -07:00
gitprotocol-v2.txt upload-pack: accept only a single packfile-uri line 2024-02-28 14:42:01 -08:00
gitremote-helpers.txt transport-helper: drop "object-format <algo>" option 2024-03-20 10:01:27 -07:00
gitrepository-layout.txt doc: make the gitfile syntax easier to discover 2023-12-03 10:54:51 +09:00
gitrevisions.txt
gitsubmodules.txt doc: enforce dashes in placeholders 2023-12-26 11:06:55 -08:00
gittutorial-2.txt
gittutorial.txt doc: correct the 50 characters soft limit (+) 2023-10-09 12:07:26 -07:00
gitweb.conf.txt Merge branch 'js/update-urls-in-doc-and-comment' into maint-2.43 2024-02-08 16:22:01 -08:00
gitweb.txt Merge branch 'js/update-urls-in-doc-and-comment' into maint-2.43 2024-02-08 16:22:01 -08:00
gitworkflows.txt
glossary-content.txt Merge branch 'jc/orphan-unborn' into maint-2.43 2024-02-08 16:22:10 -08:00
howto-index.sh
i18n.txt documentation: fix subject/verb agreement 2023-10-09 12:06:29 -07:00
install-doc-quick.sh
install-webdoc.sh
line-range-format.txt
line-range-options.txt
lint-fsck-msgids.perl
lint-gitlink.perl
lint-man-end-blurb.perl
lint-man-section-order.perl
manpage-bold-literal.xsl
manpage-normal.xsl
manpage.xsl
merge-options.txt docs: MERGE_AUTOSTASH is not that special 2023-12-15 14:08:28 -08:00
merge-strategies.txt
object-format-disclaimer.txt doc: sha256 is no longer experimental 2023-07-31 09:11:04 -07:00
pretty-formats.txt pretty: add pointer and tag options to %(decorate) 2023-08-21 11:40:10 -07:00
pretty-options.txt documentation: add missing article 2023-10-09 12:06:29 -07:00
pull-fetch-param.txt documentation: add missing article 2023-10-09 12:06:29 -07:00
ref-reachability-filters.txt
ref-storage-format.txt refs: introduce reftable backend 2024-02-07 08:28:37 -08:00
rerere-options.txt
rev-list-description.txt
rev-list-options.txt Merge branch 'ml/log-merge-with-cherry-pick-and-other-pseudo-heads' 2024-03-07 15:59:41 -08:00
revisions.txt
scalar.txt scalar: add --[no-]src option 2023-08-28 09:16:06 -07:00
sequencer.txt
signoff-option.txt doc: switch links to https 2023-11-26 10:07:05 +09:00
texi.xsl
trace2-target-values.txt doc: enforce dashes in placeholders 2023-12-26 11:06:55 -08:00
transfer-data-leaks.txt
urls-remotes.txt documentation: fix singular vs. plural 2023-10-09 12:06:29 -07:00
urls.txt doc: enforce dashes in placeholders 2023-12-26 11:06:55 -08:00
user-manual.conf
user-manual.txt Merge branch 'ja/doc-placeholders-fix' 2024-02-08 13:20:34 -08:00