diff --git a/.gitignore b/.gitignore index 4da58c6754899e..0209bd16f209c2 100644 --- a/.gitignore +++ b/.gitignore @@ -233,6 +233,7 @@ /.vscode/ /tags /TAGS +/tools/precompiled.h.gch /cscope* /compile_commands.json /.cache/ diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index cd6fd4a5047e87..3f2483550038f6 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -133,8 +133,11 @@ build:mingw64: before_script: - *windows_before_script - ./ci/install-sdk.ps1 -directory "git-sdk" + - ./ci/install-dependencies.ps1 -Mingw script: - - git-sdk/usr/bin/bash.exe -l -c 'ci/make-test-artifacts.sh artifacts' + # The minimal SDK's profile resets PATH. + - git-sdk/usr/bin/bash.exe -l -c + 'PATH=$PATH:/c/Rust/bin ci/make-test-artifacts.sh artifacts' artifacts: paths: - artifacts diff --git a/Documentation/BreakingChanges.adoc b/Documentation/BreakingChanges.adoc index 73bb939359c72e..c2cef3f528fcac 100644 --- a/Documentation/BreakingChanges.adoc +++ b/Documentation/BreakingChanges.adoc @@ -156,7 +156,7 @@ Cf. <2f5de416-04ba-c23d-1e0b-83bb655829a7@zombino.com>, "packed-refs" file. + Users that get immediate benefit from the "reftable" backend could continue to -opt-in to the "reftable" format manually by setting the "init.defaultRefFormat" +opt-in to the "reftable" format manually by setting the "init.defaultRefStorageFormat" config. But defaults matter, and we think that overall users will have a better experience with less platform-specific quirks when they use the new backend by default. diff --git a/Documentation/RelNotes/2.98.0.adoc b/Documentation/RelNotes/2.98.0.adoc new file mode 100644 index 00000000000000..9e253921afbf41 --- /dev/null +++ b/Documentation/RelNotes/2.98.0.adoc @@ -0,0 +1,295 @@ +Git v2.98 Release Notes +======================= + +This is meant to be the antepenultimate release to prepare for the +long anticipated Git 3.0 which has been vaporware for so long. + + +UI, Workflows & Features +------------------------ + + * The experimental 'git history' command has been taught a new 'squash' + subcommand to fold a range of commits into a single commit, with any + descendants replayed on top. + + * A new hook 'report' is added to 'git receive-pack', which runs after + reference updates and allows the server to filter or modify the + packet-line status report sent back to the client. + + * The terminology regarding reference storage formats has been unified + across command-line options, environment variables, configuration + variables, and source code, standardizing on the phrase "ref storage + format" (e.g., `--ref-storage-format`, `'GIT_REF_STORAGE_FORMAT'`). + Additionally, the `--ref-storage-format` option has been updated to + accept payloads in the form `://`. + + * The build-time knob 'USE_NSEC' for nanosecond stat precision has been + converted to a runtime configuration 'core.useNanosec', allowing + distributions to bundle one binary that adapts to filesystem + capabilities dynamically. + + * The command-line completion script (in 'contrib/') has been taught + to complete the 'repair' subcommand for 'git worktree'. + + * Various documentation files have been updated to use explicit + '<>' AsciiDoc cross-references instead of plain text + references. This improves rendering on the web and avoids broken + links when manual pages are included into other pages. + + * The 'git var' command has been updated to output individual components + of the author and committer identities, take multiple keys on the + command-line, and support NUL-delimited output with the '-z' option. + + * The 'git-contacts' program (in contrib/) has been taught to read + patches from the standard input stream when an explicit dash ('-') is + passed in place of a file. + + * The @{upstream} notation had short-hand @{u} from the beginning, + and @{push} learned corresponding @{p} to match. + + * The 'format-patch' command has been updated with options to + configure notes specifically for range-diff output, allowing them to + differ from the notes displayed on the patches themselves. + + * Validation of the 'fetch.followRemoteHEAD' configuration variable + has been deferred to when it is actually used, preventing irrelevant + warnings during 'git fetch' invocations that do not consult it. + + * "git status" now suggests to use 'git merge --continue', not 'git commit', + when done with conflicts during a 'git merge'. + + +Performance, Internal Implementation, Development Support etc. +-------------------------------------------------------------- + + * The setup of alternates has been deferred to object database + creation time during clone, which drops the unused ad-hoc alternate + writing API, simplifying the object database backend interface. + + * Updates to Coccinelle semantic patches to correctly handle the + 'FREE_AND_NULL()' macro and avoid generating broken transformations + for negated pointer checks. + + * The 'Makefile' has been taught to precompile 'git-compat-util.h' to + speed up overall compilation, while excluding sources that do not + include the compatibility header. + + * The can_all_from_reach() and can_all_from_reach_with_flag() + functions have been updated to accept a repository context, + preventing bugs where submodule merging incorrectly reads from the + superproject's commit-graph. + + * The error reporting machinery in the WinANSI compatibility layer has + been simplified to pass the exact Windows error code and correctly + format arguments for fatal errors. + + * The Debian 12 CI job has been updated to skip a half-auth clone test + that occasionally fails due to a bug in the packaged curl version + handling early HTTP/2 responses. + + * The CI script has been updated to check for one-indexed slice numbers + when deciding to run unit tests on Windows, mirroring the behaviour in + the modern GitHub and GitLab workflows. + + * The Windows GitLab CI job has been updated to provision and use the + GCC-targeting Rust toolchain for MinGW builds, fixing job failures + caused by incomplete Rust setup and missing linker support. + + * The external merge driver in 'git merge' now uses the tempfile API + to create its temporary files. This ensures that these temporaries + are reliably cleaned up even when the merge driver or its parent Git + process is terminated abruptly. + + * The performance test for `git fetch` pack-dir rescans has been + updated to use the `--no-deref` option when cleaning up + remote-tracking branches. This prevents `git update-ref` from + failing with a multiple updates error when both a symref and its + target are deleted in the same transaction. + + * The build configurations for Meson have been optimized to avoid + recompiling HTTP sources multiple times and to utilize precompiled + headers for test-helpers and unit tests, reducing clean build times. + Additionally, the shell completion tests and GitLab CI MSVC runner + jobs have been fixed. + + * The handling of index conflicts in 'git stash apply --index' has + been optimized. Instead of relying on expensive external + subprocesses using 'git diff-tree' and 'git apply', the index is now + merged in-core using the merge-ort machinery, which fixes a + concurrent lock file issue with autostash. + + * The parse-options API has been updated to support grouping + subcommands, and the 'git refs' command has been updated to use this + new feature to categorize its subcommands in its help output. + + * Fix definition for the "--all" option to use symbolic constant + in the options[] array passed to parse_options API. + + * The shell quoting of a lazy prereq script was quoted incorrectly and + allowed variables dereferenced at the wrong moment, breaking the + curl version detection. + + * The requirement for a 'SYNOPSIS' section in section 7 manual pages + has been relaxed by updating the linter script, and dummy + 'SYNOPSIS' sections from existing section 7 documentation have been + removed to improve the rendered output + + * A test script (t0450) has been updated to use the test_path_is_file + and test_path_is_missing helper functions, which provides better + diagnostic output on failure. + + * The routine that rewrites the packed-refs file has been optimized to + directly pass unmodified reference records verbatim to the output + via fwrite(3p), instead of redundantly re-formatting them with + fprintf(3p). + + * The fetch.writeCommitGraph behavior has been optimized to + incrementally update the commit graph using only the newly fetched + commits as seeds. This avoids a full reachability scan of all + references and drastically reduces the post-fetch commit-graph + update time for repositories with many references. + + * The odb_source API has been refactored to make alternates an + implementation detail of the files backend instead of managing them + at the core object database layer. + + * The test for verifying a signed tag with a missing key has been + updated to point GNUPGHOME to an unused directory rather than + deleting the active gpghome directory, working around a flaky rm + failure caused by the background gpg-agent observed on Alpine. + + +Fixes since v2.56 +----------------- + + * Updates to Coccinelle semantic patches to correctly handle the + 'FREE_AND_NULL()' macro and avoid generating broken transformations + for negated pointer checks. + (merge 32814b69d0 jc/cocci-free-updates later to maint). + + * The files backend has been updated to avoid unconditionally locking + the 'packed-refs' file when deleting a root ref (which are never + packed). + (merge d8e4585822 ak/refs-files-root-ref-lock later to maint). + + * The server-side protocol v2 response order for 'wanted-refs' and + 'shallow-info' has been swapped to match the client's expectation, + fixing a fetch failure when the server has 'uploadpack.allowRefInWant' + enabled and the client performs a shallow fetch. + (merge 191740edaa rr/upload-pack-swap-shallow-wanted-ref later to maint). + + * Assorted fixes for code paths that are not careful with boundary and + error conditions. + (merge c88341b7e1 js/coverity-fixes later to maint). + + * A bug in git diff --no-index that mishandled reverse (-R) output + when conflicts existed between a file and a directory has been + fixed. + (merge 9a13b3742b hd/diff-no-index-reverse-fix later to maint). + + * 'git pull' has been taught to fail more gracefully instead of + segfaulting when lookup_commit_reference() fails on unparseable + objects. + (merge 38bdda17dd jk/pull-null-merge-head later to maint). + + * The sequencer machinery (used by 'git rebase', 'git cherry-pick', and + 'git revert') has been updated to defer automatic maintenance tasks + until the end of the operation, preventing nested 'git commit', 'git + merge', and 'exec' commands from triggering GC operations that could + contend for locks or delete open packs while the sequence is in + progress. + (merge eba1a1c5dd tb/rerere-lock-grace later to maint). + + * When 'core.fsyncMethod' is set to 'batch', the ODB transaction + failed to properly flush large blob packfiles residing in the + temporary directory before migrating the directory's contents to the + main object store. The execution sequence has been corrected by + performing the packfile flush before the temporary directory + migration, averting failure. + (merge ef7faa6350 jt/object-file-batch-fsync-fix later to maint). + + * The default expiry periods for both reachable and unreachable reflog + entries have been corrected from a past regression that swapped + them. + (merge 60cf500551 ps/reflog-expiry-fix later to maint). + + * The directory traversal logic has been updated to correctly evaluate + pathspecs for ignored directories containing nested repositories, + and has been fortified to gracefully handle null pathspecs during + checkout operations. + (merge ebc067f3cc rs/dir-skip-nested-repo-fix later to maint). + + * The command-line parsing of revision options has been updated to + properly distinguish between malformed and unknown options, and to + correctly report the name of unknown options after they have been + moved during the option parsing process. + (merge da2926c8f5 jk/parse-revision-opt-fixes later to maint). + + * The documentation for 'git-name-rev' has been updated to refer to + object IDs instead of SHA-1, to more accurately reflect that the + active hash algorithm is used. + (merge b2ab8fccc3 jk/name-rev-update-hash-descriptions later to maint). + + * The HTTP transport has been updated to handle changes in recent curl + versions that strip credentials from the effective URL, preventing + unnecessary credential prompts during redirects. + (merge 76524c2604 jk/http-curl-strip-creds later to maint). + + * The timestamp used for checking the reflog of a remote-tracking + branch during 'git push --force-if-includes' was left uninitialized + when the reflog was completely empty, which has been corrected. + (merge c84ed3a0ab as/push-force-if-includes-no-reflog later to maint). + + * CI resource exhaustion during test runs on GitHub Actions has been + mitigated by switching a comparison of a huge output to use a binary + comparison, and by capping the parallel jobs on Linux to the number + of available CPUs. + (merge 4f956cf43a td/ci-large-test-resources later to maint). + + * The `t5520` test script has been updated to disable reflog expiration. + This prevents test flakiness caused by the auto-maintenance + reflog-expire task, which would otherwise immediately expire the + test's reflogs due to them carrying hardcoded timestamps from 2005. + (merge a68cca9953 tb/t5520-reflog-expire later to maint). + + * The internal representation of timezones in the reflog for the + reftable format has been fixed to match the specification, which + dictates an offset in minutes rather than the parsed "+HHMM" integer + representation. + (merge e14e2b6cf2 ps/reftable-reflog-timezone later to maint). + + * The internal diff and merge machinery has been updated to use + standard size_t types rather than signed longs for buffer + allocations and offsets, preventing subtle overflow issues on LLP64 + architectures, and plugging uninitialized memory leaks along error + paths. + (merge 5b0456361d jk/xdiff-size_t later to maint). + + * The documentation for 'git remote set-head' has been updated to + clarify that it only modifies the local repository's remote-tracking + symbolic reference, and does not alter the target remote + repository's own 'HEAD'. + (merge c5f8f60719 mg/doc-remote-set-head later to maint). + + * The commit map populated from the state branch in 'git + filter-branch' has been corrected to parse the map using the + original-to-rewritten order. + (merge 4811dabed7 gm/filter-branch-state-map-fix later to maint). + + * The documentation for core.pager has been updated to provide + examples of overriding the LESS environment variable for custom + pagers by prefixing the pager command in the configuration. + (merge c7860da7db tz/doc-override-less-env later to maint). + + * Closing a packfile did not evict the entries belonging to it from + the delta base cache, which could lead to data corruption when a + newly allocated packfile happened to reuse the same memory address. + The cache eviction logic has been updated to remove these stale + entries upon closing a pack + (merge 8d596ea8e7 ps/packfile-stale-delta-base-cache-fix later to maint). + + * Other code cleanup, docfix, build fix, etc. + (merge e638de60bc kz/doc-add-rm-typofix later to maint). + (merge 778c73948a kz/doc-user-manual-typo later to maint). + (merge 42017ff979 kh/doc-trailers-cmd-examples later to maint). + (merge 49e646f1c9 dk/fix-shattered-io-link later to maint). diff --git a/Documentation/config/advice.adoc b/Documentation/config/advice.adoc index 81f80a92745123..3d91c90eda72f9 100644 --- a/Documentation/config/advice.adoc +++ b/Documentation/config/advice.adoc @@ -59,6 +59,10 @@ all advice messages. forceDeleteBranch:: Shown when the user tries to delete a not fully merged branch without the force option set. + historyUpdateRefs:: + Shown when `git history squash` refuses because a local branch + cannot be rewritten as a descendant of the squashed commit, to + tell the user about `--update-refs=head`. ignoredHook:: Shown when a hook is ignored because the hook is not set as executable. diff --git a/Documentation/config/core.adoc b/Documentation/config/core.adoc index 340329edc38143..bdc74d291cc38c 100644 --- a/Documentation/config/core.adoc +++ b/Documentation/config/core.adoc @@ -118,6 +118,13 @@ core.trustctime:: crawlers and some backup systems). See linkgit:git-update-index[1]. True by default. +core.useNanosec:: + If true, use nanosecond precision for ctime and mtime + comparisons between the index and the working tree (if Git + was compiled to respect this option). + This is unsafe on some platforms; + see link:technical/racy-git.html[Racy Git]. False by default. + core.splitIndex:: If true, the split-index feature of the index will be used. See linkgit:git-update-index[1]. False by default. @@ -614,9 +621,17 @@ command to `LESS=FRX less -S`. The environment does not set the long lines. Similarly, setting `core.pager` to `less -+F` will deactivate the `F` option specified by the environment from the command-line, deactivating the "quit if one screen" behavior of -`less`. One can specifically activate some flags for particular -commands: for example, setting `pager.blame` to `less -S` enables -line truncation only for `git blame`. +`less`. ++ +Another way to deactivate an option is prefixing `core.pager` with +`LESS="RX"` to remove `-F` or `LESS=""` to override all options. +This is useful if the `core.pager` command eventually runs `less` or +a command which respects the `LESS` environment variable but lacks +command line options to override `LESS` options. ++ +One can specifically activate some flags for particular commands: for +example, setting `pager.blame` to `less -S` enables line truncation +only for `git blame`. + Likewise, when the `LV` environment variable is unset, Git sets it to `-c`. You can override this setting by exporting `LV` with diff --git a/Documentation/config/feature.adoc b/Documentation/config/feature.adoc index 924f5ff4e3caaa..e25877059162e0 100644 --- a/Documentation/config/feature.adoc +++ b/Documentation/config/feature.adoc @@ -25,7 +25,7 @@ reusing objects from multiple packs instead of just one. significantly smaller in the presence of certain filename collisions with Git's default name-hash. + -* `init.defaultRefFormat=reftable` causes newly initialized repositories to use +* `init.defaultRefStorageFormat=reftable` causes newly initialized repositories to use the reftable format for storing references. This new format solves issues with case-insensitive filesystems, compresses better and performs significantly better with many use cases. Refer to Documentation/technical/reftable.adoc for diff --git a/Documentation/config/init.adoc b/Documentation/config/init.adoc index 7b4abdaf8ba29b..e45bd692dbc91e 100644 --- a/Documentation/config/init.adoc +++ b/Documentation/config/init.adoc @@ -13,11 +13,13 @@ endif::[] `--object-format=` in linkgit:git-init[1]. Both the command line option and the `GIT_DEFAULT_HASH` environment variable take precedence over this config. -`init.defaultRefFormat`:: +`init.defaultRefStorageFormat`:: Allows overriding the default ref storage format for new repositories. - See `--ref-format=` in linkgit:git-init[1]. Both the command line - option and the `GIT_DEFAULT_REF_FORMAT` environment variable take + See `--ref-storage-format=` in linkgit:git-init[1]. Both the command line + option and the `GIT_DEFAULT_REF_STORAGE_FORMAT` environment variable take precedence over this config. +`init.defaultRefFormat`:: + Deprecated alias of `init.defaultRefStorageFormat`. init.defaultSubmodulePathConfig:: A boolean that specifies if `git init` and `git clone` should diff --git a/Documentation/fetch-options.adoc b/Documentation/fetch-options.adoc index 035f780e583cee..47dea1de8e5328 100644 --- a/Documentation/fetch-options.adoc +++ b/Documentation/fetch-options.adoc @@ -199,7 +199,7 @@ endif::git-pull[] providing the tag refspec. ifndef::git-pull[] + -See the PRUNING section below for more details. +See the <> section below for more details. `-P`:: `--prune-tags`:: @@ -210,7 +210,7 @@ See the PRUNING section below for more details. a shorthand for providing the explicit tag refspec along with `--prune`, see the discussion about that in its documentation. + -See the PRUNING section below for more details. +See the <> section below for more details. endif::git-pull[] diff --git a/Documentation/git-add.adoc b/Documentation/git-add.adoc index 16b06e38e185d1..40f94b11fe2fc2 100644 --- a/Documentation/git-add.adoc +++ b/Documentation/git-add.adoc @@ -117,7 +117,7 @@ The intent of this option is to pick and choose lines of the patch to apply, or even to modify the contents of lines to be staged. This can be quicker and more flexible than using the interactive hunk selector. However, it is easy to confuse oneself and create a patch that does not -apply to the index. See EDITING PATCHES below. +apply to the index. See <> below. `-u`:: `--update`:: @@ -223,7 +223,7 @@ for `git add --no-all ...`, i.e. ignored removed files. `--`:: This option can be used to separate command-line options from - the list of files, (useful when filenames might be mistaken + the list of files (useful when filenames might be mistaken for command-line options). @@ -375,6 +375,7 @@ diff:: `HEAD` and index). +[[EDITING_PATCHES]] EDITING PATCHES --------------- diff --git a/Documentation/git-bundle.adoc b/Documentation/git-bundle.adoc index 03cd36fe8d2f7a..cd722bd674f034 100644 --- a/Documentation/git-bundle.adoc +++ b/Documentation/git-bundle.adoc @@ -43,7 +43,7 @@ header indicating what references are contained within the bundle. Like the packed archive format itself bundles can either be self-contained, or be created using exclusions. -See the "OBJECT PREREQUISITES" section below. +See the <> section below. Bundles created using revision exclusions are "thin packs" created using the `--thin` option to linkgit:git-pack-objects[1], and @@ -94,7 +94,8 @@ unbundle :: :: A list of arguments, acceptable to 'git rev-parse' and - 'git rev-list' (and containing a named ref, see SPECIFYING REFERENCES + 'git rev-list' (and containing a named ref, see + <> below), that specifies the specific objects and references to transport. For example, `master~10..master` causes the current master reference to be packaged along with all objects @@ -127,6 +128,7 @@ unbundle :: This flag makes the command not to report its progress on the standard error stream. +[[SPECIFYING_REFERENCES]] SPECIFYING REFERENCES --------------------- @@ -169,6 +171,7 @@ $ git bundle create master-yesterday.bundle master~10..master~5 fatal: Refusing to create empty bundle. ---------------- +[[OBJECT_PREREQUISITES]] OBJECT PREREQUISITES -------------------- diff --git a/Documentation/git-cat-file.adoc b/Documentation/git-cat-file.adoc index 514bfc00328caf..c4ea2524cf18a6 100644 --- a/Documentation/git-cat-file.adoc +++ b/Documentation/git-cat-file.adoc @@ -115,7 +115,7 @@ are not of the requested type. -- * When used with `--textconv` or `--filters`, the input lines must specify the path, separated by whitespace. See the section - `BATCH OUTPUT` below for details. + <> below for details. * When used with `--use-mailmap`, for commit and tag objects, the contents part of the output shows the identities replaced using the @@ -133,7 +133,7 @@ are not of the requested type. -- * When used with `--textconv` or `--filters`, the input lines must specify the path, separated by whitespace. See the section - `BATCH OUTPUT` below for details. + <> below for details. * When used with `--use-mailmap`, for commit and tag objects, the printed object information shows the size of the object as if the @@ -149,7 +149,7 @@ are not of the requested type. -- * When used with `--textconv` or `--filters`, the input lines must specify the path, separated by whitespace. See the section - `BATCH OUTPUT` below for details. + <> below for details. * When used with `--use-mailmap`, for commit and tag objects, the `contents` command shows the identities replaced using the @@ -295,6 +295,7 @@ If `-p` is specified, the contents of `` are pretty-printed. If `` is specified, the raw (though uncompressed) contents of the `` will be returned. +[[BATCH_OUTPUT]] BATCH OUTPUT ------------ @@ -333,12 +334,12 @@ newline. The available atoms are: `objectsize:disk`:: The size, in bytes, that the object takes up on disk. See the - note about on-disk sizes in the `CAVEATS` section below. + note about on-disk sizes in the <> section below. `deltabase`:: If the object is stored as a delta on-disk, this expands to the full hex representation of the delta base object name. - Otherwise, expands to the null OID (all zeroes). See `CAVEATS` + Otherwise, expands to the null OID (all zeroes). See <> below. `rest`:: @@ -447,6 +448,7 @@ are replaced with NUL terminators. This ensures that output will be parsable if the output itself would contain a linefeed and is thus recommended for scripting purposes. +[[CAVEATS]] CAVEATS ------- diff --git a/Documentation/git-checkout.adoc b/Documentation/git-checkout.adoc index a8b3b8c2e238bf..2aefea02287456 100644 --- a/Documentation/git-checkout.adoc +++ b/Documentation/git-checkout.adoc @@ -27,7 +27,8 @@ DESCRIPTION 2. **Restore a different version of a file**, for example with `git checkout ` or `git checkout ` -See ARGUMENT DISAMBIGUATION below for how Git decides which one to do. +See <> below +for how Git decides which one to do. `git checkout []`:: Switch to __. This sets the current branch to __ and @@ -68,7 +69,7 @@ uncommitted changes. The same as `git checkout `, except that instead of pointing `HEAD` at the branch, it points `HEAD` at the commit ID. - See the "DETACHED HEAD" section below for more. + See the <> section below for more. + Omitting __ detaches `HEAD` at the tip of the current branch. @@ -210,8 +211,8 @@ variable. Rather than checking out a branch to work on it, check out a commit for inspection and discardable experiments. This is the default behavior of `git checkout ` when - __ is not a branch name. See the "DETACHED HEAD" section - below for details. + __ is not a branch name. See the + <> section below for details. `--orphan `:: Create a new unborn branch, named __, started from @@ -372,6 +373,7 @@ leave out at most one of __ and __, in which case it defaults to ` + For more details, see the 'pathspec' entry in linkgit:gitglossary[7]. +[[DETACHED_HEAD]] DETACHED HEAD ------------- `HEAD` normally refers to a named branch (e.g. `master`). Meanwhile, each @@ -504,6 +506,7 @@ $ git reflog -2 HEAD # or $ git log -g -2 HEAD ------------ +[[ARGUMENT_DISAMBIGUATION]] ARGUMENT DISAMBIGUATION ----------------------- diff --git a/Documentation/git-clone.adoc b/Documentation/git-clone.adoc index b6e1f8ada22813..07f7cf1a98dd3f 100644 --- a/Documentation/git-clone.adoc +++ b/Documentation/git-clone.adoc @@ -348,12 +348,18 @@ or `--mirror` is given) The result is Git repository can be separated from working tree. -`--ref-format=`:: +`--ref-storage-format=`:: -Specify the given ref storage format for the repository. The valid values are: +Specify the given ref storage __ for the repository. Backends that +require additional configuration accept a payload in the form +`://`, for example a connection string identifying the +database that shall store the references. The valid values are: + include::ref-storage-format.adoc[] +`--ref-format=`:: +Deprecated alias of `--ref-storage-format=`. + `-j`:: `--jobs=`:: The number of submodules fetched at the same time. diff --git a/Documentation/git-credential-cache.adoc b/Documentation/git-credential-cache.adoc index 54fa7a27e199f0..2f6395937d002e 100644 --- a/Documentation/git-credential-cache.adoc +++ b/Documentation/git-credential-cache.adoc @@ -24,7 +24,7 @@ user by filesystem permissions. You probably don't want to invoke this command directly; it is meant to be used as a credential helper by other parts of Git. See -linkgit:gitcredentials[7] or `EXAMPLES` below. +linkgit:gitcredentials[7] or <> below. OPTIONS ------- @@ -54,6 +54,7 @@ credentials before their timeout, you can issue an `exit` action: git credential-cache exit -------------------------------------- +[[EXAMPLES]] EXAMPLES -------- diff --git a/Documentation/git-credential-store.adoc b/Documentation/git-credential-store.adoc index 71864a872642e8..3f8a426f93259f 100644 --- a/Documentation/git-credential-store.adoc +++ b/Documentation/git-credential-store.adoc @@ -24,7 +24,7 @@ Git programs. You probably don't want to invoke this command directly; it is meant to be used as a credential helper by other parts of git. See -linkgit:gitcredentials[7] or `EXAMPLES` below. +linkgit:gitcredentials[7] or <> below. OPTIONS ------- @@ -67,6 +67,7 @@ written to. When erasing credentials, matching credentials will be erased from all files. +[[EXAMPLES]] EXAMPLES -------- diff --git a/Documentation/git-fast-export.adoc b/Documentation/git-fast-export.adoc index 719aeca244d534..0c2ce385c45cc5 100644 --- a/Documentation/git-fast-export.adoc +++ b/Documentation/git-fast-export.adoc @@ -148,12 +148,12 @@ by keeping the marks the same across runs. --anonymize:: Anonymize the contents of the repository while still retaining the shape of the history and stored tree. See the section on - `ANONYMIZING` below. + <> below. --anonymize-map=[:]:: Convert token `` to `` in the anonymized output. If `` is omitted, map `` to itself (i.e., do not - anonymize it). See the section on `ANONYMIZING` below. + anonymize it). See the section on <> below. --reference-excluded-parents:: By default, running a command such as `git fast-export @@ -219,6 +219,7 @@ referenced by that revision range contains the string 'refs/heads/master'. +[[ANONYMIZING]] ANONYMIZING ----------- diff --git a/Documentation/git-fast-import.adoc b/Documentation/git-fast-import.adoc index fd165e11d2d259..c5e1cec1a50495 100644 --- a/Documentation/git-fast-import.adoc +++ b/Documentation/git-fast-import.adoc @@ -31,6 +31,7 @@ imports are supported from a particular foreign source depends on the frontend program in use. +[[OPTIONS]] OPTIONS ------- @@ -456,7 +457,7 @@ and control the current import process. More detailed discussion supports the specified feature, and aborts if it does not. `option`:: - Specify any of the options listed under OPTIONS that do not + Specify any of the options listed under <> that do not change stream semantic to suit the frontend's needs. This command is optional and is not needed to perform an import. @@ -1242,7 +1243,7 @@ no-relative-marks:: force:: Act as though the corresponding command-line option with a leading `--` was passed on the command line - (see OPTIONS, above). + (see <>, above). import-marks:: import-marks-if-exists:: @@ -1291,7 +1292,7 @@ options the user may specify to git fast-import itself. .... The `