git-commit-vandalism/Documentation
Derrick Stolee bff03c47f7 bundle-uri: create base key-value pair parsing
There will be two primary ways to advertise a bundle list: as a list of
packet lines in Git's protocol v2 and as a config file served from a
bundle URI. Both of these fundamentally use a list of key-value pairs.
We will use the same set of key-value pairs across these formats.

Create a new bundle_list_update() method that is currently unusued, but
will be used in the next change. It inspects each key to see if it is
understood and then applies it to the given bundle_list. Here are the
keys that we teach Git to understand:

* bundle.version: This value should be an integer. Git currently
  understands only version 1 and will ignore the list if the version is
  any other value. This version can be increased in the future if we
  need to add new keys that Git should not ignore. We can add new
  "heuristic" keys without incrementing the version.

* bundle.mode: This value should be one of "all" or "any". If this
  mode is not understood, then Git will ignore the list. This mode
  indicates whether Git needs all of the bundle list items to make a
  complete view of the content or if any single item is sufficient.

The rest of the keys use a bundle identifier "<id>" as part of the key
name. Keys using the same "<id>" describe a single bundle list item.

* bundle.<id>.uri: This stores the URI of the bundle item. This
  currently is expected to be an absolute URI, but will be relaxed to be
  a relative URI in the future.

While parsing, return an error if a URI key is repeated, since we can
make that restriction with bundle lists.

Make the git_parse_int() method global so we can parse the integer
version value carefully.

Signed-off-by: Derrick Stolee <derrickstolee@github.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2022-10-12 09:13:24 -07:00
..
config bundle-uri: create base key-value pair parsing 2022-10-12 09:13:24 -07:00
howto docs: move pack format docs to man section 5 2022-08-04 14:12:24 -07:00
mergetools
RelNotes The fourteenth batch 2022-08-18 13:07:05 -07:00
technical Merge branch 'ds/bundle-uri-more' 2022-08-18 13:07:04 -07:00
.gitattributes
.gitignore
asciidoc.conf
asciidoctor-extensions.rb
blame-options.txt
build-docdep.perl
cat-texi.perl
cmd-list.perl
CodingGuidelines Documentation/ToolsForGit.txt: Tools for developing Git 2022-04-21 09:50:25 -07:00
config.txt bundle-uri: create base key-value pair parsing 2022-10-12 09:13:24 -07:00
date-formats.txt
diff-format.txt diff-format.txt: correct misleading wording 2022-06-13 11:57:03 -07:00
diff-generate-patch.txt
diff-options.txt
doc-diff
docbook-xsl.css
docbook.xsl
everyday.txto
fetch-options.txt
fix-texi.perl
git-add.txt doc add: renormalize is not idempotent for CRCRLF 2022-08-10 11:26:38 -07:00
git-am.txt doc: consolidate --rerere-autoupdate description 2022-08-03 13:47:11 -07:00
git-annotate.txt
git-apply.txt
git-archimport.txt
git-archive.txt archive-tar: use internal gzip by default 2022-06-15 13:19:47 -07:00
git-bisect-lk2009.txt
git-bisect.txt
git-blame.txt
git-branch.txt branch: new autosetupmerge option 'simple' for matching branches 2022-04-29 11:20:55 -07:00
git-bugreport.txt
git-bundle.txt docs: move pack format docs to man section 5 2022-08-04 14:12:24 -07:00
git-cat-file.txt Merge branch 'tb/cat-file-z' 2022-08-05 15:52:14 -07:00
git-check-attr.txt
git-check-ignore.txt
git-check-mailmap.txt
git-check-ref-format.txt
git-checkout-index.txt
git-checkout.txt
git-cherry-pick.txt doc: consolidate --rerere-autoupdate description 2022-08-03 13:47:11 -07:00
git-cherry.txt
git-citool.txt
git-clean.txt
git-clone.txt clone: --bundle-uri cannot be combined with --depth 2022-08-10 14:07:37 -07:00
git-column.txt
git-commit-graph.txt docs: move commit-graph format docs to man section 5 2022-08-04 14:12:23 -07:00
git-commit-tree.txt
git-commit.txt
git-config.txt Documentation: define protected configuration 2022-07-14 15:08:29 -07:00
git-count-objects.txt
git-credential-cache--daemon.txt
git-credential-cache.txt
git-credential-store.txt
git-credential.txt
git-cvsexportcommit.txt
git-cvsimport.txt
git-cvsserver.txt git-cvsserver: clarify directory list 2022-07-19 12:45:31 -07:00
git-daemon.txt daemon: clarify directory arguments 2022-07-19 12:45:31 -07:00
git-describe.txt
git-diff-files.txt
git-diff-index.txt diff-index.txt: update raw output format in examples 2022-06-13 11:59:16 -07:00
git-diff-tree.txt
git-diff.txt
git-difftool.txt
git-fast-export.txt
git-fast-import.txt
git-fetch-pack.txt
git-fetch.txt
git-filter-branch.txt
git-fmt-merge-msg.txt
git-for-each-ref.txt
git-for-each-repo.txt
git-format-patch.txt
git-fsck-objects.txt
git-fsck.txt
git-fsmonitor--daemon.txt
git-gc.txt gc: simplify --cruft description 2022-06-21 08:58:04 -07:00
git-get-tar-commit-id.txt
git-grep.txt grep: add --max-count command line option 2022-06-22 13:23:29 -07:00
git-gui.txt
git-hash-object.txt
git-help.txt git docs: add a category for file formats, protocols and interfaces 2022-08-04 14:12:23 -07:00
git-hook.txt
git-http-backend.txt
git-http-fetch.txt
git-http-push.txt
git-imap-send.txt
git-index-pack.txt
git-init-db.txt
git-init.txt
git-instaweb.txt
git-interpret-trailers.txt
git-log.txt
git-ls-files.txt ls-files: introduce "--format" option 2022-07-23 10:53:55 -07:00
git-ls-remote.txt
git-ls-tree.txt
git-mailinfo.txt
git-mailsplit.txt
git-maintenance.txt
git-merge-base.txt
git-merge-file.txt
git-merge-index.txt
git-merge-one-file.txt
git-merge-tree.txt git-merge-tree.txt: add a section on potentional usage mistakes 2022-06-22 16:10:06 -07:00
git-merge.txt doc: consolidate --rerere-autoupdate description 2022-08-03 13:47:11 -07:00
git-mergetool--lib.txt
git-mergetool.txt
git-mktag.txt
git-mktree.txt
git-multi-pack-index.txt docs: move pack format docs to man section 5 2022-08-04 14:12:24 -07:00
git-mv.txt
git-name-rev.txt
git-notes.txt
git-p4.txt git-p4: improve encoding handling to support inconsistent encodings 2022-05-04 10:30:01 -07:00
git-pack-objects.txt builtin/pack-objects.c: --cruft without expiration 2022-05-26 15:48:26 -07:00
git-pack-redundant.txt
git-pack-refs.txt
git-patch-id.txt
git-prune-packed.txt
git-prune.txt
git-pull.txt
git-push.txt
git-quiltimport.txt
git-range-diff.txt
git-read-tree.txt Merge branch 'en/sparse-cone-becomes-default' 2022-06-03 14:30:33 -07:00
git-rebase.txt Merge branch 'jc/rerere-autoupdate-doc' 2022-08-14 23:19:27 -07:00
git-receive-pack.txt
git-reflog.txt Documentation/git-reflog: remove unneeded \ from \{ 2022-08-01 14:33:44 -07:00
git-remote-ext.txt
git-remote-fd.txt
git-remote-helpers.txto
git-remote.txt builtin/remote.c: teach -v to list filters for promisor remotes 2022-05-09 10:53:58 -07:00
git-repack.txt builtin/repack.c: support generating a cruft pack 2022-05-26 15:48:26 -07:00
git-replace.txt
git-request-pull.txt
git-rerere.txt
git-reset.txt
git-restore.txt
git-rev-list.txt
git-rev-parse.txt
git-revert.txt doc: consolidate --rerere-autoupdate description 2022-08-03 13:47:11 -07:00
git-rm.txt
git-send-email.txt
git-send-pack.txt
git-sh-i18n--envsubst.txt
git-sh-i18n.txt
git-sh-setup.txt
git-shell.txt
git-shortlog.txt
git-show-branch.txt
git-show-index.txt
git-show-ref.txt
git-show.txt
git-sparse-checkout.txt Documentation: some sparsity wording clarifications 2022-04-21 23:12:39 -07:00
git-stage.txt
git-stash.txt
git-status.txt
git-stripspace.txt
git-submodule.txt
git-svn.txt
git-switch.txt
git-symbolic-ref.txt
git-tag.txt
git-tools.txt
git-unpack-file.txt
git-unpack-objects.txt
git-update-index.txt
git-update-ref.txt
git-update-server-info.txt
git-upload-archive.txt
git-upload-pack.txt docs: move http-protocol docs to man section 5 2022-08-04 14:12:24 -07:00
git-var.txt
git-verify-commit.txt
git-verify-pack.txt
git-verify-tag.txt
git-version.txt
git-web--browse.txt
git-whatchanged.txt
git-worktree.txt
git-write-tree.txt
git.txt Merge branch 'ab/tech-docs-to-help' 2022-08-14 23:19:28 -07:00
gitattributes.txt
gitcli.txt
gitcore-tutorial.txt
gitcredentials.txt
gitcvs-migration.txt
gitdiffcore.txt
giteveryday.txt
gitfaq.txt
gitformat-bundle.txt docs: move protocol-related docs to man section 5 2022-08-04 14:12:23 -07:00
gitformat-chunk.txt docs: move pack format docs to man section 5 2022-08-04 14:12:24 -07:00
gitformat-commit-graph.txt docs: move pack format docs to man section 5 2022-08-04 14:12:24 -07:00
gitformat-index.txt Merge branch 'ab/tech-docs-to-help' 2022-08-14 23:19:28 -07:00
gitformat-pack.txt docs: move cruft pack docs to gitformat-pack 2022-08-04 14:12:24 -07:00
gitformat-signature.txt docs: move signature docs to man section 5 2022-08-04 14:12:24 -07:00
gitglossary.txt
githooks.txt
gitignore.txt
gitk.txt
gitmailmap.txt
gitmodules.txt
gitnamespaces.txt
gitprotocol-capabilities.txt docs: move protocol-related docs to man section 5 2022-08-04 14:12:23 -07:00
gitprotocol-common.txt docs: move protocol-related docs to man section 5 2022-08-04 14:12:23 -07:00
gitprotocol-http.txt docs: move http-protocol docs to man section 5 2022-08-04 14:12:24 -07:00
gitprotocol-pack.txt docs: move http-protocol docs to man section 5 2022-08-04 14:12:24 -07:00
gitprotocol-v2.txt docs: move http-protocol docs to man section 5 2022-08-04 14:12:24 -07:00
gitremote-helpers.txt remote-curl: add 'get' capability 2022-08-10 14:07:37 -07:00
gitrepository-layout.txt
gitrevisions.txt
gitsubmodules.txt
gittutorial-2.txt
gittutorial.txt
gitweb.conf.txt
gitweb.txt
gitworkflows.txt
glossary-content.txt
howto-index.sh
i18n.txt
install-doc-quick.sh
install-webdoc.sh
line-range-format.txt
line-range-options.txt
lint-gitlink.perl
lint-man-end-blurb.perl
lint-man-section-order.perl git docs: add a category for file formats, protocols and interfaces 2022-08-04 14:12:23 -07:00
Makefile Merge branch 'ds/bundle-uri-more' 2022-08-18 13:07:04 -07:00
manpage-base-url.xsl.in
manpage-bold-literal.xsl
manpage-normal.xsl
manpage-quote-apos.xsl
manpage.xsl
merge-options.txt
merge-strategies.txt
MyFirstContribution.txt MyFirstContribution: drop PR description for GGG single-patch contributions 2022-05-12 18:10:00 -07:00
MyFirstObjectWalk.txt
object-format-disclaimer.txt
pretty-formats.txt
pretty-options.txt
pull-fetch-param.txt
ref-reachability-filters.txt
rerere-options.txt doc: clarify rerere-autoupdate 2022-08-03 13:57:25 -07:00
rev-list-description.txt
rev-list-options.txt rev-list: support human-readable output for --disk-usage 2022-08-11 13:45:23 -07:00
revisions.txt Merge branch 'tk/rev-parse-doc-clarify-at-u' into maint 2022-07-27 13:19:52 -07:00
sequencer.txt
signoff-option.txt
SubmittingPatches SubmittingPatches: use more stable git.ozlabs.org URL 2022-05-11 08:19:08 -07:00
texi.xsl
ToolsForGit.txt Documentation/ToolsForGit.txt: Tools for developing Git 2022-04-21 09:50:25 -07:00
trace2-target-values.txt
transfer-data-leaks.txt
urls-remotes.txt
urls.txt
user-manual.conf
user-manual.txt docs: move pack format docs to man section 5 2022-08-04 14:12:24 -07:00