path: root/Documentation
AgeCommit message (Collapse)Author
16 hoursAnother batch before -rc1HEADmastermainJunio C Hamano
Signed-off-by: Junio C Hamano <>
6 daysGit 2.39-rc0v2.39.0-rc0Junio C Hamano
Signed-off-by: Junio C Hamano <>
6 daysMerge branch 'mh/gitcredentials-generate'Junio C Hamano
Doc update. * mh/gitcredentials-generate: Docs: describe how a credential-generating helper works
6 daysMerge branch 'ps/receive-use-only-advertised'Junio C Hamano
"git receive-pack" used to use all the local refs as the boundary for checking connectivity of the data "git push" sent, but now it uses only the refs that it advertised to the pusher. In a repository with the .hideRefs configuration, this reduces the resources needed to perform the check. cf. <> cf. <xmqqr0yrizqm.fsf@gitster.g> * ps/receive-use-only-advertised: receive-pack: only use visible refs for connectivity check rev-parse: add `--exclude-hidden=` option revision: add new parameter to exclude hidden refs revision: introduce struct to handle exclusions revision: move together exclusion-related functions refs: get rid of global list of hidden refs refs: fix memory leak when parsing hideRefs config
6 daysMerge branch 'jt/submodule-on-demand'Junio C Hamano
Push all submodules recursively with '--recurse-submodules=on-demand'. * jt/submodule-on-demand: Doc: document push.recurseSubmodules=only
6 daysMerge branch 'tb/howto-maintain-git-fixes'Junio C Hamano
A pair of bugfixes to the Documentation/howto/maintain-git.txt guide. * tb/howto-maintain-git-fixes: Documentation: build from jch..seen Documentation: build from master..jch
6 daysMerge branch 'rp/maintenance-qol'Junio C Hamano
'git maintenance register' is taught to write configuration to an arbitrary path, and 'git for-each-repo' is taught to expand tilde characters in paths. * rp/maintenance-qol: builtin/gc.c: fix use-after-free in maintenance_unregister() maintenance --unregister: fix uninit'd data use & -Wdeclaration-after-statement maintenance: add option to register in a specific config for-each-repo: interpolate repo path arguments
10 daysThe thirteenth batchTaylor Blau
Signed-off-by: Taylor Blau <>
10 daysMerge branch 'en/sparse-checkout-design'Taylor Blau
Design doc. * en/sparse-checkout-design: sparse-checkout.txt: new document with sparse-checkout directions
10 daysMerge branch 'mh/credential-unrecognized-attrs'Taylor Blau
Docfix. * mh/credential-unrecognized-attrs: docs: clarify that credential discards unrecognised attributes
10 daysMerge branch 'mh/increase-credential-cache-timeout'Taylor Blau
Update the credential-cache documentation to provide a more realistic example. * mh/increase-credential-cache-timeout: Documentation: increase example cache timeout to 1 hour
10 daysMerge branch 'tb/repack-expire-to'Taylor Blau
"git repack" learns to send cruft objects out of the way into packfiles outside the repository. * tb/repack-expire-to: builtin/repack.c: implement `--expire-to` for storing pruned objects builtin/repack.c: write cruft packs to arbitrary locations builtin/repack.c: pass "cruft_expiration" to `write_cruft_pack` builtin/repack.c: pass "out" to `prepare_pack_objects`
11 daysrev-parse: add `--exclude-hidden=` optionPatrick Steinhardt
Add a new `--exclude-hidden=` option that is similar to the one we just added to git-rev-list(1). Given a section name `uploadpack` or `receive` as argument, it causes us to exclude all references that would be hidden by the respective `$section.hideRefs` configuration. Signed-off-by: Patrick Steinhardt <> Signed-off-by: Taylor Blau <>
11 daysrevision: add new parameter to exclude hidden refsPatrick Steinhardt
Users can optionally hide refs from remote users in git-upload-pack(1), git-receive-pack(1) and others via the `transfer.hideRefs`, but there is not an easy way to obtain the list of all visible or hidden refs right now. We'll require just that though for a performance improvement in our connectivity check. Add a new option `--exclude-hidden=` that excludes any hidden refs from the next pseudo-ref like `--all` or `--branches`. Signed-off-by: Patrick Steinhardt <> Signed-off-by: Taylor Blau <>
14 daysmaintenance: add option to register in a specific configRonan Pigott
maintenance register currently records the maintenance repo exclusively within the user's global configuration, but other configuration files may be relevant when running maintenance if they are included from the global config. This option allows the user to choose where maintenance repos are recorded. Signed-off-by: Ronan Pigott <> Signed-off-by: Taylor Blau <>
14 daysThe twelfth batchTaylor Blau
Signed-off-by: Taylor Blau <>
14 daysMerge branch 'vh/my-first-contribution-typo'Taylor Blau
Documentation fix. * vh/my-first-contribution-typo: Documentation: fix typo
14 daysMerge branch 'ks/partialclone-casing'Taylor Blau
Documentation fix. * ks/partialclone-casing: repository-version.txt: partialClone casing change
14 daysMerge branch 'mh/password-can-be-pat'Taylor Blau
Documentation update to git-credential(1). * mh/password-can-be-pat: Documentation/gitcredentials.txt: mention password alternatives
14 daysDocs: describe how a credential-generating helper worksM Hickford
Previously the docs only described storage helpers. A concrete example: Git Credential Manager can generate credentials for GitHub and GitLab via OAuth. Signed-off-by: M Hickford <> Signed-off-by: Taylor Blau <>
14 daysDocumentation: fix typoVlad-Stefan Harbuz
Signed-off-by: Vlad-Stefan Harbuz <> Signed-off-by: Taylor Blau <>
14 daysDoc: document push.recurseSubmodules=onlyJonathan Tan
Git learned pushing submodules without pushing the superproject by the user specifying --recurse-submodules=only through 6c656c3fe4 ("submodules: add RECURSE_SUBMODULES_ONLY value", 2016-12-20) and 225e8bf778 ("push: add option to push only submodules", 2016-12-20). For users who use this feature regularly, it is desirable to have an equivalent configuration. It turns out that such a configuration (push.recurseSubmodules=only) is already supported, even though it is neither documented nor mentioned in the commit messages, due to the way the --recurse-submodules=only feature was implemented (a function used to parse --recurse-submodules was updated to support "only", but that same function is used to parse push.recurseSubmodules too). What is left is to document it and test it, which is what this commit does. There is a possible point of confusion when recursing into a submodule that itself has the push.recurseSubmodules=only configuration, because if a repository has only its submodules pushed and not itself, its superproject can never be pushed. Therefore, treat such configurations as being "on-demand", and print a warning message. Signed-off-by: Jonathan Tan <> Signed-off-by: Taylor Blau <>
2022-11-13docs: clarify that credential discards unrecognised attributesM Hickford
It was previously unclear how unrecognised attributes are handled. Signed-off-by: M Hickford <> Signed-off-by: Taylor Blau <>
2022-11-11repository-version.txt: partialClone casing changeKousik Sanagavarapu
Remotes are considered "promisor" if extensions.partialClone and some other configuration variables are set. The casing for this in Documentation/technical/repository-version.txt is not proper and may cause confusion. This change corrects this casing. Signed-off-by: Kousik Sanagavarapu <> Signed-off-by: Taylor Blau <>
2022-11-10Documentation: increase example cache timeout to 1 hourM Hickford
Previously, the example *decreased* the cache timeout compared to the default, making it less user friendly. Instead, nudge users to make cache more usable. Many users choose store over cache. The default timeout remains 15 minutes. A stronger nudge would be to increase that. Signed-off-by: M Hickford <> Signed-off-by: Taylor Blau <>
2022-11-08The eleventh batchTaylor Blau
Signed-off-by: Taylor Blau <>
2022-11-08Merge branch 'vb/ls-files-docfix'Taylor Blau
Docfix. * vb/ls-files-docfix: ls-files: fix --ignored and --killed flags in synopsis
2022-11-08Merge branch 'po/glossary-around-traversal'Taylor Blau
The glossary entries for "commit-graph file" and "reachability bitmap" have been added. * po/glossary-around-traversal: glossary: add reachability bitmap description glossary: add "commit graph" description doc: use 'object database' not ODB or abbreviation doc: use "commit-graph" hyphenation consistently
2022-11-08Merge branch 'es/mark-gc-cruft-as-experimental'Taylor Blau
Enable gc.cruftpacks by default for those who opt into feature.experimental setting. * es/mark-gc-cruft-as-experimental: config: let feature.experimental imply gc.cruftPacks=true gc: add tests for --cruft and friends
2022-11-08Merge branch 'tb/howto-using-redo-script'Taylor Blau
Doc update. * tb/howto-using-redo-script: Documentation/howto/maintain-git.txt: fix Meta/ invocation
2022-11-08Documentation/gitcredentials.txt: mention password alternativesM Hickford
Git asks for a "password", but the user might use a personal access token or OAuth access token instead. Example: Password for '': Signed-off-by: M Hickford <> Signed-off-by: Taylor Blau <>
2022-11-08ls-files: fix --ignored and --killed flags in synopsisVincent Bernat
Signed-off-by: Vincent Bernat <> Signed-off-by: Taylor Blau <>
2022-11-07sparse-checkout.txt: new document with sparse-checkout directionsElijah Newren
Once upon a time, Matheus wrote some patches to make git grep [--cached | <REVISION>] ... restrict its output to the sparsity specification when working in a sparse checkout[1]. That effort got derailed by two things: (1) The --sparse-index work just beginning which we wanted to avoid creating conflicts for (2) Never deciding on flag and config names and planned high level behavior for all commands. More recently, Shaoxuan implemented a more limited form of Matheus' patches that only affected --cached, using a different flag name, but also changing the default behavior in line with what Matheus did. This again highlighted the fact that we never decided on command line flag names, config option names, and the big picture path forward. The --sparse-index work has been mostly complete (or at least released into production even if some small edges remain) for quite some time now. We have also had several discussions on flag and config names, though we never came to solid conclusions. Stolee once upon a time suggested putting all these into some document in Documentation/technical[3], which Victoria recently also requested[4]. I'm behind the times, but here's a patch attempting to finally do that. [1] (See his second link in that email in particular) [2] [3] (Scroll to the very end for the final few paragraphs) [4] Signed-off-by: Elijah Newren <> Signed-off-by: Taylor Blau <>
2022-11-04The tenth batchTaylor Blau
Signed-off-by: Taylor Blau <>
2022-10-31Documentation: build from jch..seenTaylor Blau
In a similar spirit as the previous commit, the 'seen' branch gets rebuilt by reintegrating topics between 'jch' and the (old) tip of 'seen'. Update the instructions on how to generate Meta/ for the first time to reflect this. Signed-off-by: Taylor Blau <>
2022-10-31Documentation: build from master..jchTaylor Blau
Rebuilding the 'jch' branch begins by reintegrating any topics between 'master' and 'jch', not 'master' and 'seen'. In the maintainer guide, the documentation isn't quite right, since the initial input to Meta/Reintegrate is "master..seen", not "master..jch". This can lead to confusing results when generating the Meta/ script for the first time. Additionally, rebuilding 'jch' takes place in two steps. First, running the script up to the first "### match next" cut-line, and then comparing the result with what's on 'next' (i.e. with "git diff jch next"). Then, the remaining set of topics get merged down to 'jch' (which aren't on 'next') by running the entire "" script. Clarify the documentation to reflect this. Signed-off-by: Taylor Blau <>
2022-10-31The ninth batchTaylor Blau
Signed-off-by: Taylor Blau <>
2022-10-31Merge branch 'jc/doc-fsck-msgids'Taylor Blau
Add documentation for message IDs in fsck error messages. * jc/doc-fsck-msgids: Documentation: add lint-fsck-msgids fsck: document msg-id fsck: remove the unused MISSING_TREE_OBJECT fsck: remove the unused BAD_TAG_OBJECT
2022-10-31Merge branch 'en/merge-tree-sequence'Taylor Blau
"git merge-tree --stdin" is a new way to request a series of merges and report the merge results. * en/merge-tree-sequence: merge-tree: support multiple batched merges with --stdin merge-tree: update documentation for differences in -z output
2022-10-31Merge branch 'ds/bundle-uri-3'Taylor Blau
Define the logical elements of a "bundle list", data structure to store them in-core, format to transfer them, and code to parse them. * ds/bundle-uri-3: bundle-uri: suppress stderr from remote-https bundle-uri: quiet failed unbundlings bundle: add flags to verify_bundle() bundle-uri: fetch a list of bundles bundle: properly clear all revision flags bundle-uri: limit recursion depth for bundle lists bundle-uri: parse bundle list in config format bundle-uri: unit test "key=value" parsing bundle-uri: create "key=value" line parsing bundle-uri: create base key-value pair parsing bundle-uri: create bundle_list struct and helpers bundle-uri: use plain string in find_temp_filename()
2022-10-31Merge branch 'jr/embargoed-releases-doc'Taylor Blau
The role the security mailing list plays in an embargoed release has been documented. * jr/embargoed-releases-doc: embargoed releases: also describe the git-security list and the process
2022-10-31Merge branch 'pw/rebase-keep-base-fixes'Taylor Blau
"git rebase --keep-base" used to discard the commits that are already cherry-picked to the upstream, even when "keep-base" meant that the base, on top of which the history is being rebuilt, does not yet include these cherry-picked commits. The --keep-base option now implies --reapply-cherry-picks and --no-fork-point options. * pw/rebase-keep-base-fixes: rebase --keep-base: imply --no-fork-point rebase --keep-base: imply --reapply-cherry-picks rebase: factor out branch_base calculation rebase: rename merge_base to branch_base rebase: store orig_head as a commit rebase: be stricter when reading state files containing oids t3416: set $EDITOR in subshell t3416: tighten two tests
2022-10-31Merge branch 'jh/trace2-timers-and-counters'Taylor Blau
Two new facilities, "timer" and "counter", are introduced to the trace2 API. * jh/trace2-timers-and-counters: trace2: add global counter mechanism trace2: add stopwatch timers trace2: convert ctx.thread_name from strbuf to pointer trace2: improve thread-name documentation in the thread-context trace2: rename the thread_name argument to trace2_thread_start api-trace2.txt: elminate section describing the public trace2 API tr2tls: clarify TLS terminology trace2: use size_t alloc,nr_open_regions in tr2tls_thread_ctx
2022-10-31Merge branch 'tb/shortlog-group'Taylor Blau
"git shortlog" learned to group by the "format" string. * tb/shortlog-group: shortlog: implement `--group=committer` in terms of `--group=<format>` shortlog: implement `--group=author` in terms of `--group=<format>` shortlog: extract `shortlog_finish_setup()` shortlog: support arbitrary commit format `--group`s shortlog: extract `--group` fragment for translation shortlog: make trailer insertion a noop when appropriate shortlog: accept `--date`-related options
2022-10-31Merge branch 'sg/stable-docdep'Taylor Blau
Make sure generated dependency file is stably sorted to help developers debugging their build issues. * sg/stable-docdep: Documentation/build-docdep.perl: generate sorted output
2022-10-31Merge branch 'sd/doc-smtp-encryption'Taylor Blau
* sd/doc-smtp-encryption: docs: git-send-email: difference between ssl and tls smtp-encryption
2022-10-31Merge branch 'jz/patch-id'Taylor Blau
A new "--include-whitespace" option is added to "git patch-id", and existing bugs in the internal patch-id logic that did not match what "git patch-id" produces have been corrected. * jz/patch-id: builtin: patch-id: remove unused diff-tree prefix builtin: patch-id: add --verbatim as a command mode patch-id: fix patch-id for mode changes builtin: patch-id: fix patch-id with binary diffs patch-id: use stable patch-id for rebases patch-id: fix stable patch id for binary / header-only
2022-10-30glossary: add reachability bitmap descriptionPhilip Oakley
Describe the purpose of the reachability bitmap. Signed-off-by: Philip Oakley <> Signed-off-by: Taylor Blau <>
2022-10-30glossary: add "commit graph" descriptionPhilip Oakley
Git has an additional "commit graph" capability that supplements the normal commit object's directed acyclic graph (DAG). The supplemental commit graph file is designed for speed of access. Describe the commit graph both from the normative DAG view point and from the commit graph file perspective. Also, clarify the link between the branch ref and branch tip by linking to the `ref` glossary entry, matching this commit graph entry. The commit-graph file is also distinguished by its hyphenation. Subsequent commit catches the few cases where the hyphenation of commit-graph was missing. Signed-off-by: Philip Oakley <> Signed-off-by: Taylor Blau <>
2022-10-30doc: use 'object database' not ODB or abbreviationPhilip Oakley
The abbreviation 'ODB' is used in the technical documentation sections for commit-graph and parallel-checkout, along with an 'odb' option in `git-pack-redundant`, without expansion. Use 'object database' in full, in those entries. The text has not been reflowed to keep the changes minimal. While in the glossary for `object` terms, add the common`oid` abbreviation to its entry. Signed-off-by: Philip Oakley <> Signed-off-by: Taylor Blau <>