git/Documentation
Derrick Stolee 0087a87ba8 commit-graph: persist existence of changed-paths
The changed-path Bloom filters were released in v2.27.0, but have a
significant drawback. A user can opt-in to writing the changed-path
filters using the "--changed-paths" option to "git commit-graph write"
but the next write will drop the filters unless that option is
specified.

This becomes even more important when considering the interaction with
gc.writeCommitGraph (on by default) or fetch.writeCommitGraph (part of
features.experimental). These config options trigger commit-graph writes
that the user did not signal, and hence there is no --changed-paths
option available.

Allow a user that opts-in to the changed-path filters to persist the
property of "my commit-graph has changed-path filters" automatically. A
user can drop filters using the --no-changed-paths option.

In the process, we need to be extremely careful to match the Bloom
filter settings as specified by the commit-graph. This will allow future
versions of Git to customize these settings, and the version with this
change will persist those settings as commit-graphs are rewritten on
top.

Use the trace2 API to signal the settings used during the write, and
check that output in a test after manually adjusting the correct bytes
in the commit-graph file.

Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2020-07-01 14:17:43 -07:00
..
RelNotes The second batch post 2.26 cycle 2020-03-26 17:11:21 -07:00
config Merge branch 'ds/default-pack-use-sparse-to-true' 2020-03-29 09:32:51 -07:00
howto update how-to-maintain-git 2020-03-09 07:57:57 -07:00
technical commit-graph-format.txt: all multi-byte numbers are in network byte order 2020-06-08 12:28:49 -07:00
.gitattributes
.gitignore
CodingGuidelines
Makefile Merge branch 'es/walken-tutorial' 2019-11-10 18:02:11 +09:00
MyFirstContribution.txt MyFirstContribution: rephrase contact info 2020-02-14 09:36:56 -08:00
MyFirstObjectWalk.txt cache: move doc to cache.h 2019-11-18 15:21:29 +09:00
SubmittingPatches Merge branch 'dl/pretty-reference' 2019-12-10 13:11:43 -08:00
asciidoc.conf
asciidoctor-extensions.rb
blame-options.txt
build-docdep.perl
cat-texi.perl
cmd-list.perl
config.txt Merge branch 'jc/config-tar' 2020-03-25 13:57:44 -07:00
date-formats.txt
diff-format.txt doc: indent multi-line items in list 2019-12-13 12:18:07 -08:00
diff-generate-patch.txt
diff-options.txt diff-options.txt: avoid "regex" overload in example 2020-02-09 09:25:24 -08:00
doc-diff doc-diff: use single-colon rule in rendering Makefile 2020-02-18 13:53:30 -08:00
docbook-xsl.css
docbook.xsl
everyday.txto
fetch-options.txt pull: document more passthru options 2020-03-11 11:29:14 -07:00
fix-texi.perl
git-add.txt add: support the --pathspec-from-file option 2019-12-04 10:10:37 -08:00
git-am.txt am: support --show-current-patch=diff to retrieve .git/rebase-apply/patch 2020-02-20 13:20:41 -08:00
git-annotate.txt
git-apply.txt
git-archimport.txt
git-archive.txt
git-bisect-lk2009.txt Merge branch 'dl/lore-is-the-archive' 2019-12-06 15:09:24 -08:00
git-bisect.txt
git-blame.txt
git-branch.txt
git-bundle.txt Merge branch 'po/bundle-doc-clonable' 2019-12-10 13:11:41 -08:00
git-cat-file.txt
git-check-attr.txt
git-check-ignore.txt Merge branch 'en/check-ignore' into maint 2020-03-17 15:02:23 -07:00
git-check-mailmap.txt
git-check-ref-format.txt
git-checkout-index.txt
git-checkout.txt checkout, restore: support the --pathspec-from-file option 2019-12-04 10:10:37 -08:00
git-cherry-pick.txt
git-cherry.txt
git-citool.txt
git-clean.txt
git-clone.txt Merge branch 'ja/doc-markup-cleanup' 2019-12-25 11:22:00 -08:00
git-column.txt
git-commit-graph.txt commit-graph: persist existence of changed-paths 2020-07-01 14:17:43 -07:00
git-commit-tree.txt doc: move author and committer information to git-commit(1) 2020-01-22 12:27:08 -08:00
git-commit.txt doc: provide guidance on user.name format 2020-01-22 12:27:08 -08:00
git-config.txt config: add '--show-scope' to print the scope of a config value 2020-02-10 10:49:12 -08:00
git-count-objects.txt
git-credential-cache--daemon.txt
git-credential-cache.txt
git-credential-store.txt
git-credential.txt credential: move doc to credential.h 2019-11-18 15:21:29 +09:00
git-cvsexportcommit.txt
git-cvsimport.txt
git-cvsserver.txt
git-daemon.txt
git-describe.txt
git-diff-files.txt
git-diff-index.txt
git-diff-tree.txt
git-diff.txt
git-difftool.txt
git-fast-export.txt
git-fast-import.txt fast-import: add options for rewriting submodules 2020-02-28 09:53:41 -08:00
git-fetch-pack.txt
git-fetch.txt
git-filter-branch.txt git-filter-branch.txt: wrap "maths" notation in backticks 2020-02-04 12:17:18 -08:00
git-fmt-merge-msg.txt
git-for-each-ref.txt
git-format-patch.txt format-patch: teach --no-base 2019-12-05 06:06:18 -08:00
git-fsck-objects.txt
git-fsck.txt
git-gc.txt
git-get-tar-commit-id.txt
git-grep.txt Merge branch 'mt/threaded-grep-in-object-store' 2020-02-14 12:54:20 -08:00
git-gui.txt
git-hash-object.txt
git-help.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 builtin/init-db: allow specifying hash algorithm on command line 2020-02-24 09:33:27 -08:00
git-instaweb.txt
git-interpret-trailers.txt
git-log.txt Merge branch 'pb/clarify-line-log-doc' 2020-01-06 14:17:50 -08:00
git-ls-files.txt
git-ls-remote.txt Merge branch 'jc/doc-single-h-is-for-help' into maint 2020-03-17 15:02:24 -07:00
git-ls-tree.txt
git-mailinfo.txt
git-mailsplit.txt
git-merge-base.txt
git-merge-file.txt
git-merge-index.txt
git-merge-one-file.txt
git-merge-tree.txt
git-merge.txt
git-mergetool--lib.txt
git-mergetool.txt
git-mktag.txt
git-mktree.txt
git-multi-pack-index.txt
git-mv.txt
git-name-rev.txt
git-notes.txt
git-p4.txt
git-pack-objects.txt config: set pack.useSparse=true by default 2020-03-20 14:22:31 -07:00
git-pack-redundant.txt
git-pack-refs.txt
git-parse-remote.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 Merge branch 'dl/range-diff-with-notes' 2019-12-05 12:52:44 -08:00
git-read-tree.txt sparse-checkout: create builtin with 'list' subcommand 2019-11-22 16:11:43 +09:00
git-rebase.txt git-rebase.txt: highlight backend differences with commit rewording 2020-03-11 12:11:08 -07:00
git-receive-pack.txt
git-reflog.txt
git-remote-ext.txt
git-remote-fd.txt
git-remote-helpers.txto
git-remote.txt
git-repack.txt
git-replace.txt
git-request-pull.txt
git-rerere.txt
git-reset.txt reset: support the `--pathspec-from-file` option 2019-11-20 13:01:53 +09:00
git-restore.txt checkout, restore: support the --pathspec-from-file option 2019-12-04 10:10:37 -08:00
git-rev-list.txt
git-rev-parse.txt rev-parse: make --show-toplevel without a worktree an error 2019-11-20 10:19:58 +09:00
git-revert.txt
git-rm.txt rm: support the --pathspec-from-file option 2020-02-19 10:56:49 -08:00
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-shortlog.txt: include commit limiting options 2019-11-10 15:13:23 +09:00
git-show-branch.txt
git-show-index.txt
git-show-ref.txt
git-show.txt
git-sparse-checkout.txt Merge branch 'ds/sparse-add' 2020-03-05 10:43:02 -08:00
git-stage.txt
git-stash.txt stash push: support the --pathspec-from-file option 2020-02-19 10:56:49 -08:00
git-status.txt
git-stripspace.txt
git-submodule.txt Merge branch 'es/recursive-single-branch-clone' 2020-03-05 10:43:03 -08:00
git-svn.txt git svn: stop using `rebase --preserve-merges` 2019-11-23 09:49:23 +09:00
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 doc: dissuade users from trying to ignore tracked files 2020-01-22 12:27:49 -08:00
git-update-ref.txt
git-update-server-info.txt
git-upload-archive.txt
git-upload-pack.txt
git-var.txt
git-verify-commit.txt
git-verify-pack.txt
git-verify-tag.txt
git-web--browse.txt
git-whatchanged.txt
git-worktree.txt
git-write-tree.txt
git.txt builtin/init-db: add environment variable for new repo hash 2020-02-24 09:33:29 -08:00
gitattributes.txt Merge branch 'ln/userdiff-elixir' 2019-12-01 09:04:36 -08:00
gitcli.txt Merge branch 'jc/doc-single-h-is-for-help' into maint 2020-03-17 15:02:24 -07:00
gitcore-tutorial.txt doc/gitcore-tutorial: fix prose to match example command 2020-01-08 08:56:40 -08:00
gitcredentials.txt Merge branch 'bc/wildcard-credential' 2020-03-05 10:43:02 -08:00
gitcvs-migration.txt
gitdiffcore.txt
giteveryday.txt
gitglossary.txt
githooks.txt fsmonitor: update documentation for hook version and watchman hooks 2020-01-23 15:10:23 -08:00
gitignore.txt
gitk.txt doc: log, gitk: line-log arguments must exist in starting revision 2019-12-26 11:00:15 -08:00
gitmodules.txt Merge branch 'pb/submodule-doc-xref' 2019-12-25 11:21:59 -08:00
gitnamespaces.txt
gitremote-helpers.txt
gitrepository-layout.txt Merge branch 'sg/dir-trie-fixes' 2019-11-10 18:02:14 +09:00
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
lint-gitlink.perl
mailmap.txt
manpage-1.72.xsl
manpage-base-url.xsl.in
manpage-base.xsl
manpage-bold-literal.xsl
manpage-normal.xsl
manpage-quote-apos.xsl
manpage-suppress-sp.xsl
manpage.xsl
merge-options.txt
merge-strategies.txt merge-strategies: fix typo "reflected to" to "reflected in" 2019-11-11 11:04:46 +09:00
pretty-formats.txt Merge branch 'hi/gpg-mintrustlevel' 2020-01-30 14:17:08 -08:00
pretty-options.txt Merge branch 'dl/pretty-reference' 2019-12-10 13:11:43 -08:00
pull-fetch-param.txt
rev-list-options.txt Merge branch 'dl/pretty-reference' 2019-12-10 13:11:43 -08:00
revisions.txt
sequencer.txt
texi.xsl
trace2-target-values.txt
transfer-data-leaks.txt
urls-remotes.txt
urls.txt
user-manual.conf
user-manual.txt Merge branch 'dl/lore-is-the-archive' 2019-12-06 15:09:24 -08:00