{"thread":{"id":"64253","subject":"[PATCH 0/3] doc: convert git-stash, git tag and git worktree to synopis style","startedAt":"2025-10-05T21:11:46Z","lastAt":"2025-10-10T18:23:53Z","messageCount":9,"participants":["Jean-Noël Avila via GitGitGadget","Kristoffer Haugsbakk","Jean-Noël Avila","Junio C Hamano","Jean-Noël AVILA"],"isPatch":true,"patchVersion":1,"patchTotal":3},"messages":[{"id":"527949","messageId":"pull.1969.git.1759698702.gitgitgadget@gmail.com","threadId":"64253","inReplyTo":null,"subject":"[PATCH 0/3] doc: convert git-stash, git tag and git worktree to synopis style","fromName":"Jean-Noël Avila via GitGitGadget","fromEmail":"gitgitgadget@gmail.com","sentAt":"2025-10-05T21:11:39Z","receivedAt":"2025-10-05T21:11:46Z","isPatch":true,"sender":{"key":"jn.avila@free.fr","avatar":"https://avatars.githubusercontent.com/u/156172?v=4"},"body":" * Switch the synopsis to a synopsis block which will automatically format\n   placeholders in italics and keywords in monospace\n * Use instead of in the description\n * Use backticks for keywords and more complex option descriptions. The new\n   rendering engine will apply synopsis rules to these spans.\n\nAlso add the CONFIGURATION section when it is missing and do not refer to\nthe man page in the description of settings when this list is included in\nthe manual page.\n\nJean-Noël Avila (3):\n  doc: convert git-stash.adoc to synopis style\n  doc: convert git tag to synopsis style\n  doc: convert git worktree to synopsis style\n\n Documentation/config/stash.adoc    |  29 +++--\n Documentation/config/tag.adoc      |  22 ++--\n Documentation/config/worktree.adoc |  14 +--\n Documentation/git-stash.adoc       | 134 +++++++++++-----------\n Documentation/git-tag.adoc         | 173 +++++++++++++++--------------\n Documentation/git-worktree.adoc    | 161 ++++++++++++++-------------\n 6 files changed, 280 insertions(+), 253 deletions(-)\n\n\nbase-commit: 5099f64a82ccc80f3c6567589bfeb5e9a1b9fd6b\nPublished-As: https://github.com/gitgitgadget/git/releases/tag/pr-1969%2Fjnavila%2Fdoc_git_stash-v1\nFetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1969/jnavila/doc_git_stash-v1\nPull-Request: https://github.com/gitgitgadget/git/pull/1969\n-- \ngitgitgadget\n"},{"id":"527950","messageId":"3f3e5a87e834a6cd1d5d7769bdd2c0dcfaa4b6ae.1759698702.git.gitgitgadget@gmail.com","threadId":"64253","inReplyTo":"pull.1969.git.1759698702.gitgitgadget@gmail.com","subject":"[PATCH 1/3] doc: convert git-stash.adoc to synopis style","fromName":"Jean-Noël Avila via GitGitGadget","fromEmail":"gitgitgadget@gmail.com","sentAt":"2025-10-05T21:11:40Z","receivedAt":"2025-10-05T21:11:49Z","isPatch":true,"sender":{"key":"jn.avila@free.fr","avatar":"https://avatars.githubusercontent.com/u/156172?v=4"},"body":"From: =?UTF-8?q?Jean-No=C3=ABl=20Avila?= <jn.avila@free.fr>\n\n- Switch the synopsis to a synopsis block which will automatically\n  format placeholders in italics and keywords in monospace\n- Use _<placeholder>_ instead of <placeholder> in the description\n- Use `backticks` for keywords and more complex option\ndescriptions. The new rendering engine will apply synopsis rules to\nthese spans.\n\nAlso do not refer to the man page in the description of settings when this\ndescription is already in the man page.\n\nSigned-off-by: Jean-Noël Avila <jn.avila@free.fr>\n---\n Documentation/config/stash.adoc |  29 ++++---\n Documentation/git-stash.adoc    | 134 ++++++++++++++++----------------\n 2 files changed, 85 insertions(+), 78 deletions(-)\n\ndiff --git a/Documentation/config/stash.adoc b/Documentation/config/stash.adoc\nindex e556105a15..7fc32027f7 100644\n--- a/Documentation/config/stash.adoc\n+++ b/Documentation/config/stash.adoc\n@@ -1,19 +1,28 @@\n-stash.index::\n+ifndef::git-stash[]\n+:see-show: See the description of the 'show' command in linkgit:git-stash[1].\n+endif::git-stash[]\n+\n+ifdef::git-stash[]\n+:see-show:\n+endif::git-stash[]\n+\n+`stash.index`::\n \tIf this is set to true, `git stash apply` and `git stash pop` will\n-\tbehave as if `--index` was supplied. Defaults to false. See the\n-\tdescriptions in linkgit:git-stash[1].\n+\tbehave as if `--index` was supplied. Defaults to false.\n+ifndef::git-stash[]\n+See the descriptions in linkgit:git-stash[1].\n+endif::git-stash[]\n \n-stash.showIncludeUntracked::\n+`stash.showIncludeUntracked`::\n \tIf this is set to true, the `git stash show` command will show\n-\tthe untracked files of a stash entry.  Defaults to false. See\n-\tthe description of the 'show' command in linkgit:git-stash[1].\n+\tthe untracked files of a stash entry. Defaults to false. {see-show}\n \n-stash.showPatch::\n+`stash.showPatch`::\n \tIf this is set to true, the `git stash show` command without an\n \toption will show the stash entry in patch form.  Defaults to false.\n-\tSee the description of the 'show' command in linkgit:git-stash[1].\n+\t{see-show}\n \n-stash.showStat::\n+`stash.showStat`::\n \tIf this is set to true, the `git stash show` command without an\n \toption will show a diffstat of the stash entry.  Defaults to true.\n-\tSee the description of the 'show' command in linkgit:git-stash[1].\n+\t{see-show}\ndiff --git a/Documentation/git-stash.adoc b/Documentation/git-stash.adoc\nindex e2300a19a2..235d57ddd8 100644\n--- a/Documentation/git-stash.adoc\n+++ b/Documentation/git-stash.adoc\n@@ -7,24 +7,24 @@ git-stash - Stash the changes in a dirty working directory away\n \n SYNOPSIS\n --------\n-[verse]\n-'git stash' list [<log-options>]\n-'git stash' show [-u | --include-untracked | --only-untracked] [<diff-options>] [<stash>]\n-'git stash' drop [-q | --quiet] [<stash>]\n-'git stash' pop [--index] [-q | --quiet] [<stash>]\n-'git stash' apply [--index] [-q | --quiet] [<stash>]\n-'git stash' branch <branchname> [<stash>]\n-'git stash' [push [-p | --patch] [-S | --staged] [-k | --[no-]keep-index] [-q | --quiet]\n+[synopsis]\n+git stash list [<log-options>]\n+git stash show [-u | --include-untracked | --only-untracked] [<diff-options>] [<stash>]\n+git stash drop [-q | --quiet] [<stash>]\n+git stash pop [--index] [-q | --quiet] [<stash>]\n+git stash apply [--index] [-q | --quiet] [<stash>]\n+git stash branch <branchname> [<stash>]\n+git stash [push [-p | --patch] [-S | --staged] [-k | --[no-]keep-index] [-q | --quiet]\n \t     [-u | --include-untracked] [-a | --all] [(-m | --message) <message>]\n \t     [--pathspec-from-file=<file> [--pathspec-file-nul]]\n \t     [--] [<pathspec>...]]\n-'git stash' save [-p | --patch] [-S | --staged] [-k | --[no-]keep-index] [-q | --quiet]\n-\t     [-u | --include-untracked] [-a | --all] [<message>]\n-'git stash' clear\n-'git stash' create [<message>]\n-'git stash' store [(-m | --message) <message>] [-q | --quiet] <commit>\n-'git stash' export (--print | --to-ref <ref>) [<stash>...]\n-'git stash' import <commit>\n+git stash save [-p | --patch] [-S | --staged] [-k | --[no-]keep-index] [-q | --quiet]\n+           [-u | --include-untracked] [-a | --all] [<message>]\n+git stash clear\n+git stash create [<message>]\n+git stash store [(-m | --message) <message>] [-q | --quiet] <commit>\n+git stash export (--print | --to-ref <ref>) [<stash>...]\n+git stash import <commit>\n \n DESCRIPTION\n -----------\n@@ -38,7 +38,7 @@ The modifications stashed away by this command can be listed with\n `git stash list`, inspected with `git stash show`, and restored\n (potentially on top of a different commit) with `git stash apply`.\n Calling `git stash` without any arguments is equivalent to `git stash push`.\n-A stash is by default listed as \"WIP on 'branchname' ...\", but\n+A stash is by default listed as \"WIP on '<branchname>' ...\", but\n you can give a more descriptive message on the command line when\n you create one.\n \n@@ -47,16 +47,16 @@ stashes are found in the reflog of this reference and can be named using\n the usual reflog syntax (e.g. `stash@{0}` is the most recently\n created stash, `stash@{1}` is the one before it, `stash@{2.hours.ago}`\n is also possible). Stashes may also be referenced by specifying just the\n-stash index (e.g. the integer `n` is equivalent to `stash@{n}`).\n+stash index (e.g. the integer `<n>` is equivalent to `stash@{<n>}`).\n \n COMMANDS\n --------\n \n-push [-p|--patch] [-S|--staged] [-k|--[no-]keep-index] [-u|--include-untracked] [-a|--all] [-q|--quiet] [(-m|--message) <message>] [--pathspec-from-file=<file> [--pathspec-file-nul]] [--] [<pathspec>...]::\n+`push [-p | --patch] [-S | --staged] [-k | --[no-]keep-index] [-u | --include-untracked] [ -a | --all] [-q | --quiet] [(-m|--message) <message>] [--pathspec-from-file=<file> [--pathspec-file-nul]] [--] [<pathspec>...]`::\n \n \tSave your local modifications to a new 'stash entry' and roll them\n-\tback to HEAD (in the working tree and in the index).\n-\tThe <message> part is optional and gives\n+\tback to `HEAD` (in the working tree and in the index).\n+\tThe _<message>_ part is optional and gives\n \tthe description along with the stashed state.\n +\n For quickly making a snapshot, you can omit \"push\".  In this mode,\n@@ -65,14 +65,14 @@ subcommand from making an unwanted stash entry.  The two exceptions to this\n are `stash -p` which acts as alias for `stash push -p` and pathspec elements,\n which are allowed after a double hyphen `--` for disambiguation.\n \n-save [-p|--patch] [-S|--staged] [-k|--[no-]keep-index] [-u|--include-untracked] [-a|--all] [-q|--quiet] [<message>]::\n+`save [-p | --patch] [-S | --staged] [-k | --[no-]keep-index] [-u | --include-untracked] [-a | --all] [-q | --quiet] [<message>]`::\n \n \tThis option is deprecated in favour of 'git stash push'.  It\n \tdiffers from \"stash push\" in that it cannot take pathspec.\n \tInstead, all non-option arguments are concatenated to form the stash\n \tmessage.\n \n-list [<log-options>]::\n+`list [<log-options>]`::\n \n \tList the stash entries that you currently have.  Each 'stash entry' is\n \tlisted with its name (e.g. `stash@{0}` is the latest entry, `stash@{1}` is\n@@ -88,7 +88,7 @@ stash@{1}: On master: 9cc0589... Add git-stash\n The command takes options applicable to the 'git log'\n command to control what is shown and how. See linkgit:git-log[1].\n \n-show [-u|--include-untracked|--only-untracked] [<diff-options>] [<stash>]::\n+`show [-u | --include-untracked | --only-untracked] [<diff-options>] [<stash>]`::\n \n \tShow the changes recorded in the stash entry as a diff between the\n \tstashed contents and the commit back when the stash entry was first\n@@ -96,12 +96,12 @@ show [-u|--include-untracked|--only-untracked] [<diff-options>] [<stash>]::\n \tBy default, the command shows the diffstat, but it will accept any\n \tformat known to 'git diff' (e.g., `git stash show -p stash@{1}`\n \tto view the second most recent entry in patch form).\n-\tIf no `<diff-option>` is provided, the default behavior will be given\n+\tIf no _<diff-option>_ is provided, the default behavior will be given\n \tby the `stash.showStat`, and `stash.showPatch` config variables. You\n \tcan also use `stash.showIncludeUntracked` to set whether\n \t`--include-untracked` is enabled by default.\n \n-pop [--index] [-q|--quiet] [<stash>]::\n+`pop [--index] [-q | --quiet] [<stash>]`::\n \n \tRemove a single stashed state from the stash list and apply it\n \ton top of the current working tree state, i.e., do the inverse\n@@ -112,19 +112,19 @@ Applying the state can fail with conflicts; in this case, it is not\n removed from the stash list. You need to resolve the conflicts by hand\n and call `git stash drop` manually afterwards.\n \n-apply [--index] [-q|--quiet] [<stash>]::\n+`apply [--index] [-q | --quiet] [<stash>]`::\n \n \tLike `pop`, but do not remove the state from the stash list. Unlike `pop`,\n \t`<stash>` may be any commit that looks like a commit created by\n \t`stash push` or `stash create`.\n \n-branch <branchname> [<stash>]::\n+`branch <branchname> [<stash>]`::\n \n-\tCreates and checks out a new branch named `<branchname>` starting from\n-\tthe commit at which the `<stash>` was originally created, applies the\n-\tchanges recorded in `<stash>` to the new working tree and index.\n-\tIf that succeeds, and `<stash>` is a reference of the form\n-\t`stash@{<revision>}`, it then drops the `<stash>`.\n+\tCreates and checks out a new branch named _<branchname>_ starting from\n+\tthe commit at which the _<stash>_ was originally created, applies the\n+\tchanges recorded in _<stash>_ to the new working tree and index.\n+\tIf that succeeds, and _<stash>_ is a reference of the form\n+\t`stash@{<revision>}`, it then drops the _<stash>_.\n +\n This is useful if the branch on which you ran `git stash push` has\n changed enough that `git stash apply` fails due to conflicts. Since\n@@ -132,54 +132,51 @@ the stash entry is applied on top of the commit that was HEAD at the\n time `git stash` was run, it restores the originally stashed state\n with no conflicts.\n \n-clear::\n+`clear`::\n \tRemove all the stash entries. Note that those entries will then\n \tbe subject to pruning, and may be impossible to recover (see\n-\t'Examples' below for a possible strategy).\n-\n-drop [-q|--quiet] [<stash>]::\n+\t'EXAMPLES' below for a possible strategy).\n \n+`drop [-q | --quiet] [<stash>]`::\n \tRemove a single stash entry from the list of stash entries.\n \n-create::\n-\n+`create`::\n \tCreate a stash entry (which is a regular commit object) and\n \treturn its object name, without storing it anywhere in the ref\n \tnamespace.\n \tThis is intended to be useful for scripts.  It is probably not\n \tthe command you want to use; see \"push\" above.\n \n-store::\n+`store`::\n \n \tStore a given stash created via 'git stash create' (which is a\n \tdangling merge commit) in the stash ref, updating the stash\n \treflog.  This is intended to be useful for scripts.  It is\n \tprobably not the command you want to use; see \"push\" above.\n \n-export ( --print | --to-ref <ref> ) [<stash>...]::\n+`export ( --print | --to-ref <ref> ) [<stash>...]`::\n \n \tExport the specified stashes, or all of them if none are specified, to\n \ta chain of commits which can be transferred using the normal fetch and\n \tpush mechanisms, then imported using the `import` subcommand.\n \n-import <commit>::\n-\n+`import <commit>`::\n \tImport the specified stashes from the specified commit, which must have been\n \tcreated by `export`, and add them to the list of stashes.  To replace the\n \texisting stashes, use `clear` first.\n \n OPTIONS\n -------\n--a::\n---all::\n+`-a`::\n+`--all`::\n \tThis option is only valid for `push` and `save` commands.\n +\n All ignored and untracked files are also stashed and then cleaned\n up with `git clean`.\n \n--u::\n---include-untracked::\n---no-include-untracked::\n+`-u`::\n+`--include-untracked`::\n+`--no-include-untracked`::\n \tWhen used with the `push` and `save` commands,\n \tall untracked files are also stashed and then cleaned up with\n \t`git clean`.\n@@ -187,12 +184,12 @@ up with `git clean`.\n When used with the `show` command, show the untracked files in the stash\n entry as part of the diff.\n \n---only-untracked::\n+`--only-untracked`::\n \tThis option is only valid for the `show` command.\n +\n Show only the untracked files in the stash entry as part of the diff.\n \n---index::\n+`--index`::\n \tThis option is only valid for `pop` and `apply` commands.\n +\n Tries to reinstate not only the working tree's changes, but also\n@@ -200,15 +197,15 @@ the index's ones. However, this can fail, when you have conflicts\n (which are stored in the index, where you therefore can no longer\n apply the changes as they were originally).\n \n--k::\n---keep-index::\n---no-keep-index::\n+`-k`::\n+`--keep-index`::\n+`--no-keep-index`::\n \tThis option is only valid for `push` and `save` commands.\n +\n All changes already added to the index are left intact.\n \n--p::\n---patch::\n+`-p`::\n+`--patch`::\n \tThis option is only valid for `push` and `save` commands.\n +\n Interactively select hunks from the diff between HEAD and the\n@@ -224,8 +221,8 @@ The `--patch` option implies `--keep-index`.  You can use\n \n include::diff-context-options.adoc[]\n \n--S::\n---staged::\n+`-S`::\n+`--staged`::\n \tThis option is only valid for `push` and `save` commands.\n +\n Stash only the changes that are currently staged. This is similar to\n@@ -234,49 +231,49 @@ of current branch.\n +\n The `--patch` option has priority over this one.\n \n---pathspec-from-file=<file>::\n+`--pathspec-from-file=<file>`::\n \tThis option is only valid for `push` command.\n +\n-Pathspec is passed in `<file>` instead of commandline args. If\n-`<file>` is exactly `-` then standard input is used. Pathspec\n+Pathspec is passed in _<file>_ instead of commandline args. If\n+_<file>_ is exactly `-` then standard input is used. Pathspec\n elements are separated by LF or CR/LF. Pathspec elements can be\n quoted as explained for the configuration variable `core.quotePath`\n (see linkgit:git-config[1]). See also `--pathspec-file-nul` and\n global `--literal-pathspecs`.\n \n---pathspec-file-nul::\n+`--pathspec-file-nul`::\n \tThis option is only valid for `push` command.\n +\n Only meaningful with `--pathspec-from-file`. Pathspec elements are\n separated with NUL character and all other characters are taken\n literally (including newlines and quotes).\n \n--q::\n---quiet::\n+`-q`::\n+`--quiet`::\n \tThis option is only valid for `apply`, `drop`, `pop`, `push`,\n \t`save`, `store` commands.\n +\n Quiet, suppress feedback messages.\n \n---print::\n+`--print`::\n \tThis option is only valid for the `export` command.\n +\n Create the chain of commits representing the exported stashes without\n storing it anywhere in the ref namespace and print the object ID to\n standard output.  This is designed for scripts.\n \n---to-ref::\n+`--to-ref`::\n \tThis option is only valid for the `export` command.\n +\n Create the chain of commits representing the exported stashes and store\n it to the specified ref.\n \n-\\--::\n+`--`::\n \tThis option is only valid for `push` command.\n +\n Separates pathspec from options for disambiguation purposes.\n \n-<pathspec>...::\n+`<pathspec>...`::\n \tThis option is only valid for `push` command.\n +\n The new stash entry records the modified states only for the files\n@@ -286,11 +283,11 @@ too, leaving files that do not match the pathspec intact.\n +\n For more details, see the 'pathspec' entry in linkgit:gitglossary[7].\n \n-<stash>::\n+_<stash>_::\n \tThis option is only valid for `apply`, `branch`, `drop`, `pop`,\n \t`show`, and `export` commands.\n +\n-A reference of the form `stash@{<revision>}`. When no `<stash>` is\n+A reference of the form `stash@{<revision>}`. When no _<stash>_ is\n given, the latest stash is assumed (that is, `stash@{0}`).\n \n DISCUSSION\n@@ -419,6 +416,7 @@ CONFIGURATION\n \n include::includes/cmd-config-section-all.adoc[]\n \n+:git-stash: 1\n include::config/stash.adoc[]\n \n \n-- \ngitgitgadget\n\n"},{"id":"527951","messageId":"9d231428eaf45c131a5caddad510d86c5f22fe9b.1759698702.git.gitgitgadget@gmail.com","threadId":"64253","inReplyTo":"pull.1969.git.1759698702.gitgitgadget@gmail.com","subject":"[PATCH 2/3] doc: convert git tag to synopsis style","fromName":"Jean-Noël Avila via GitGitGadget","fromEmail":"gitgitgadget@gmail.com","sentAt":"2025-10-05T21:11:41Z","receivedAt":"2025-10-05T21:11:50Z","isPatch":true,"sender":{"key":"jn.avila@free.fr","avatar":"https://avatars.githubusercontent.com/u/156172?v=4"},"body":"From: =?UTF-8?q?Jean-No=C3=ABl=20Avila?= <jn.avila@free.fr>\n\n- Switch the synopsis to a synopsis block which will automatically\n  format placeholders in italics and keywords in monospace\n- Use _<placeholder>_ instead of <placeholder> in the description\n- Use `backticks` for keywords and more complex option\ndescriptions. The new rendering engine will apply synopsis rules to\nthese spans.\n\nAlso add the config section in the manual page and do not refer to the man\npage in the description of settings when this description is already in the\nman page.\n\nSigned-off-by: Jean-Noël Avila <jn.avila@free.fr>\n---\n Documentation/config/tag.adoc |  22 +++--\n Documentation/git-tag.adoc    | 173 ++++++++++++++++++----------------\n 2 files changed, 104 insertions(+), 91 deletions(-)\n\ndiff --git a/Documentation/config/tag.adoc b/Documentation/config/tag.adoc\nindex 5062a057ff..d878da98d4 100644\n--- a/Documentation/config/tag.adoc\n+++ b/Documentation/config/tag.adoc\n@@ -1,17 +1,23 @@\n-tag.forceSignAnnotated::\n+`tag.forceSignAnnotated`::\n \tA boolean to specify whether annotated tags created should be GPG signed.\n \tIf `--annotate` is specified on the command line, it takes\n \tprecedence over this option.\n \n-tag.sort::\n-\tThis variable controls the sort ordering of tags when displayed by\n-\tlinkgit:git-tag[1]. Without the \"--sort=<value>\" option provided, the\n-\tvalue of this variable will be used as the default.\n+`tag.sort`::\n+ifdef::git-tag[]\n+This variable controls the sort ordering of tags when displayed by `git-tag`.\n+endif::git-tag[]\n+ifndef::git-tag[]\n+This variable controls the sort ordering of tags when displayed by\n+linkgit:git-tag[1].\n+endif::git-tag[]\n+Without the `--sort=<value>` option provided, the value of this variable will\n+be used as the default.\n \n-tag.gpgSign::\n+`tag.gpgSign`::\n \tA boolean to specify whether all tags should be GPG signed.\n \tUse of this option when running in an automated script can\n \tresult in a large number of tags being signed. It is therefore\n-\tconvenient to use an agent to avoid typing your gpg passphrase\n+\tconvenient to use an agent to avoid typing your GPG passphrase\n \tseveral times. Note that this option doesn't affect tag signing\n-\tbehavior enabled by \"-u <keyid>\" or \"--local-user=<keyid>\" options.\n+\tbehavior enabled by `-u <keyid>` or `--local-user=<keyid>` options.\ndiff --git a/Documentation/git-tag.adoc b/Documentation/git-tag.adoc\nindex a4b1c0ec05..0f7badc116 100644\n--- a/Documentation/git-tag.adoc\n+++ b/Documentation/git-tag.adoc\n@@ -8,21 +8,21 @@ git-tag - Create, list, delete or verify a tag object signed with GPG\n \n SYNOPSIS\n --------\n-[verse]\n-'git tag' [-a | -s | -u <key-id>] [-f] [-m <msg> | -F <file>] [-e]\n+[synopsis]\n+git tag [-a | -s | -u <key-id>] [-f] [-m <msg> | -F <file>] [-e]\n \t[(--trailer <token>[(=|:)<value>])...]\n \t<tagname> [<commit> | <object>]\n-'git tag' -d <tagname>...\n-'git tag' [-n[<num>]] -l [--contains <commit>] [--no-contains <commit>]\n+git tag -d <tagname>...\n+git tag [-n[<num>]] -l [--contains <commit>] [--no-contains <commit>]\n \t[--points-at <object>] [--column[=<options>] | --no-column]\n \t[--create-reflog] [--sort=<key>] [--format=<format>]\n \t[--merged <commit>] [--no-merged <commit>] [<pattern>...]\n-'git tag' -v [--format=<format>] <tagname>...\n+git tag -v [--format=<format>] <tagname>...\n \n DESCRIPTION\n -----------\n \n-Add a tag reference in `refs/tags/`, unless `-d/-l/-v` is given\n+Add a tag reference in `refs/tags/`, unless `-d`/`-l`/`-v` is given\n to delete, list or verify tags.\n \n Unless `-f` is given, the named tag must not yet exist.\n@@ -58,129 +58,129 @@ lightweight tags by default.\n \n OPTIONS\n -------\n--a::\n---annotate::\n+`-a`::\n+`--annotate`::\n \tMake an unsigned, annotated tag object\n \n--s::\n---sign::\n+`-s`::\n+`--sign`::\n \tMake a GPG-signed tag, using the default e-mail address's key.\n \tThe default behavior of tag GPG-signing is controlled by `tag.gpgSign`\n \tconfiguration variable if it exists, or disabled otherwise.\n \tSee linkgit:git-config[1].\n \n---no-sign::\n+`--no-sign`::\n \tOverride `tag.gpgSign` configuration variable that is\n \tset to force each and every tag to be signed.\n \n--u <key-id>::\n---local-user=<key-id>::\n+`-u <key-id>`::\n+`--local-user=<key-id>`::\n \tMake a GPG-signed tag, using the given key.\n \n--f::\n---force::\n+`-f`::\n+`--force`::\n \tReplace an existing tag with the given name (instead of failing)\n \n--d::\n---delete::\n+`-d`::\n+`--delete`::\n \tDelete existing tags with the given names.\n \n--v::\n---verify::\n+`-v`::\n+`--verify`::\n \tVerify the GPG signature of the given tag names.\n \n--n<num>::\n-\t<num> specifies how many lines from the annotation, if any,\n-\tare printed when using -l. Implies `--list`.\n+`-n<num>`::\n+\t_<num>_ specifies how many lines from the annotation, if any,\n+\tare printed when using `-l`. Implies `--list`.\n +\n The default is not to print any annotation lines.\n If no number is given to `-n`, only the first line is printed.\n If the tag is not annotated, the commit message is displayed instead.\n \n--l::\n---list::\n+`-l`::\n+`--list`::\n \tList tags. With optional `<pattern>...`, e.g. `git tag --list\n \t'v-*'`, list only the tags that match the pattern(s).\n +\n-Running \"git tag\" without arguments also lists all tags. The pattern\n-is a shell wildcard (i.e., matched using fnmatch(3)). Multiple\n+Running `git tag` without arguments also lists all tags. The pattern\n+is a shell wildcard (i.e., matched using `fnmatch`(3)). Multiple\n patterns may be given; if any of them matches, the tag is shown.\n +\n This option is implicitly supplied if any other list-like option such\n as `--contains` is provided. See the documentation for each of those\n options for details.\n \n---sort=<key>::\n+`--sort=<key>`::\n \tSort based on the key given.  Prefix `-` to sort in\n-\tdescending order of the value. You may use the --sort=<key> option\n-\tmultiple times, in which case the last key becomes the primary\n-\tkey. Also supports \"version:refname\" or \"v:refname\" (tag\n-\tnames are treated as versions). The \"version:refname\" sort\n-\torder can also be affected by the \"versionsort.suffix\"\n+\tdescending order of the value. You may use the `--sort=<key>` option\n+\tmultiple times, in which case the last _<key>_ becomes the primary\n+\tkey. Also supports \"`version:refname`\" or \"`v:refname`\" (tag\n+\tnames are treated as versions). The \"`version:refname`\" sort\n+\torder can also be affected by the \"`versionsort.suffix`\"\n \tconfiguration variable.\n \tThe keys supported are the same as those in `git for-each-ref`.\n \tSort order defaults to the value configured for the `tag.sort`\n \tvariable if it exists, or lexicographic order otherwise. See\n \tlinkgit:git-config[1].\n \n---color[=<when>]::\n+`--color[=<when>]`::\n \tRespect any colors specified in the `--format` option. The\n-\t`<when>` field must be one of `always`, `never`, or `auto` (if\n-\t`<when>` is absent, behave as if `always` was given).\n+\t_<when>_ field must be one of `always`, `never`, or `auto` (if\n+\t_<when>_ is absent, behave as if `always` was given).\n \n--i::\n---ignore-case::\n+`-i`::\n+`--ignore-case`::\n \tSorting and filtering tags are case insensitive.\n \n---omit-empty::\n+`--omit-empty`::\n \tDo not print a newline after formatted refs where the format expands\n \tto the empty string.\n \n---column[=<options>]::\n---no-column::\n+`--column[=<options>]`::\n+`--no-column`::\n \tDisplay tag listing in columns. See configuration variable\n \t`column.tag` for option syntax. `--column` and `--no-column`\n-\twithout options are equivalent to 'always' and 'never' respectively.\n+\twithout options are equivalent to `always` and `never` respectively.\n +\n This option is only applicable when listing tags without annotation lines.\n \n---contains [<commit>]::\n-\tOnly list tags which contain the specified commit (HEAD if not\n+`--contains [<commit>]`::\n+\tOnly list tags which contain _<commit>_ (`HEAD` if not\n \tspecified). Implies `--list`.\n \n---no-contains [<commit>]::\n-\tOnly list tags which don't contain the specified commit (HEAD if\n+`--no-contains [<commit>]`::\n+\tOnly list tags which don't contain _<commit>_ (`HEAD` if\n \tnot specified). Implies `--list`.\n \n---merged [<commit>]::\n-\tOnly list tags whose commits are reachable from the specified\n-\tcommit (`HEAD` if not specified).\n+`--merged [<commit>]`::\n+\tOnly list tags whose commits are reachable from\n+\t_<commit>_ (`HEAD` if not specified).\n \n---no-merged [<commit>]::\n-\tOnly list tags whose commits are not reachable from the specified\n-\tcommit (`HEAD` if not specified).\n+`--no-merged [<commit>]`::\n+\tOnly list tags whose commits are not reachable from\n+\t_<commit>_ (`HEAD` if not specified).\n \n---points-at <object>::\n-\tOnly list tags of the given object (HEAD if not\n+`--points-at [<object>]`::\n+\tOnly list tags of _<object>_ (`HEAD` if not\n \tspecified). Implies `--list`.\n \n--m <msg>::\n---message=<msg>::\n-\tUse the given tag message (instead of prompting).\n+`-m <msg>`::\n+`--message=<msg>`::\n+\tUse _<msg>_ (instead of prompting).\n \tIf multiple `-m` options are given, their values are\n \tconcatenated as separate paragraphs.\n \tImplies `-a` if none of `-a`, `-s`, or `-u <key-id>`\n \tis given.\n \n--F <file>::\n---file=<file>::\n-\tTake the tag message from the given file.  Use '-' to\n+`-F <file>`::\n+`--file=<file>`::\n+\tTake the tag message from _<file>_.  Use `-` to\n \tread the message from the standard input.\n \tImplies `-a` if none of `-a`, `-s`, or `-u <key-id>`\n \tis given.\n \n---trailer <token>[(=|:)<value>]::\n-\tSpecify a (<token>, <value>) pair that should be applied as a\n+`--trailer <token>[(=|:)<value>]`::\n+\tSpecify a (_<token>_, _<value>_) pair that should be applied as a\n \ttrailer. (e.g. `git tag --trailer \"Custom-Key: value\"`\n \twill add a \"Custom-Key\" trailer to the tag message.)\n \tThe `trailer.*` configuration variables\n@@ -190,46 +190,45 @@ This option is only applicable when listing tags without annotation lines.\n \tThe trailers can be extracted in `git tag --list`, using\n \t`--format=\"%(trailers)\"` placeholder.\n \n--e::\n---edit::\n-\tThe message taken from file with `-F` and command line with\n-\t`-m` are usually used as the tag message unmodified.\n-\tThis option lets you further edit the message taken from these sources.\n+`-e`::\n+`--edit`::\n+\tLet further edit the message taken from file with `-F` and command line with\n+\t`-m`.\n \n---cleanup=<mode>::\n-\tThis option sets how the tag message is cleaned up.\n-\tThe  '<mode>' can be one of 'verbatim', 'whitespace' and 'strip'.  The\n-\t'strip' mode is default. The 'verbatim' mode does not change message at\n-\tall, 'whitespace' removes just leading/trailing whitespace lines and\n-\t'strip' removes both whitespace and commentary.\n+`--cleanup=<mode>`::\n+\tSet how the tag message is cleaned up.\n+\tThe  _<mode>_ can be one of `verbatim`, `whitespace` and `strip`.  The\n+\t`strip` mode is default. The `verbatim` mode does not change message at\n+\tall, `whitespace` removes just leading/trailing whitespace lines and\n+\t`strip` removes both whitespace and commentary.\n \n---create-reflog::\n+`--create-reflog`::\n \tCreate a reflog for the tag. To globally enable reflogs for tags, see\n \t`core.logAllRefUpdates` in linkgit:git-config[1].\n \tThe negated form `--no-create-reflog` only overrides an earlier\n \t`--create-reflog`, but currently does not negate the setting of\n \t`core.logAllRefUpdates`.\n \n---format=<format>::\n+`--format=<format>`::\n \tA string that interpolates `%(fieldname)` from a tag ref being shown\n \tand the object it points at.  The format is the same as\n \tthat of linkgit:git-for-each-ref[1].  When unspecified,\n \tdefaults to `%(refname:strip=2)`.\n \n-<tagname>::\n+_<tagname>_::\n \tThe name of the tag to create, delete, or describe.\n \tThe new tag name must pass all checks defined by\n \tlinkgit:git-check-ref-format[1].  Some of these checks\n \tmay restrict the characters allowed in a tag name.\n \n-<commit>::\n-<object>::\n+_<commit>_::\n+_<object>_::\n \tThe object that the new tag will refer to, usually a commit.\n-\tDefaults to HEAD.\n+\tDefaults to `HEAD`.\n \n CONFIGURATION\n -------------\n-By default, 'git tag' in sign-with-default mode (-s) will use your\n+By default, `git tag` in sign-with-default mode (`-s`) will use your\n committer identity (of the form `Your Name <your@email.address>`) to\n find a key.  If you want to use a different default key, you can specify\n it in the repository configuration as follows:\n@@ -252,7 +251,7 @@ On Re-tagging\n What should you do when you tag a wrong commit and you would\n want to re-tag?\n \n-If you never pushed anything out, just re-tag it. Use \"-f\" to\n+If you never pushed anything out, just re-tag it. Use `-f` to\n replace the old one. And you're done.\n \n But if you have pushed things out (or others could just read\n@@ -268,12 +267,12 @@ the old tag. In that case you can do one of two things:\n \n . The insane thing.\n   You really want to call the new version \"X\" too, 'even though'\n-  others have already seen the old one. So just use 'git tag -f'\n+  others have already seen the old one. So just use `git tag -f`\n   again, as if you hadn't already published the old one.\n \n However, Git does *not* (and it should not) change tags behind\n users back. So if somebody already got the old tag, doing a\n-'git pull' on your tree shouldn't just make them overwrite the old\n+`git pull` on your tree shouldn't just make them overwrite the old\n one.\n \n If somebody got a release tag from you, you cannot just change\n@@ -325,7 +324,7 @@ private anchor point tags from the other person.\n \n Often, \"please pull\" messages on the mailing list just provide\n two pieces of information: a repo URL and a branch name; this\n-is designed to be easily cut&pasted at the end of a 'git fetch'\n+is designed to be easily cut&pasted at the end of a `git fetch`\n command line:\n \n ------------\n@@ -403,6 +402,14 @@ FILES\n \tuser in an editor session will be available in this file, but\n \tmay be overwritten by the next invocation of `git tag`.\n \n+CONFIGURATION\n+-------------\n+\n+include::includes/cmd-config-section-all.adoc[]\n+\n+:git-tag: 1\n+include::config/tag.adoc[]\n+\n NOTES\n -----\n \n-- \ngitgitgadget\n\n"},{"id":"527952","messageId":"c62b65c2cee52a2470847e4d4f3032e08df01066.1759698702.git.gitgitgadget@gmail.com","threadId":"64253","inReplyTo":"pull.1969.git.1759698702.gitgitgadget@gmail.com","subject":"[PATCH 3/3] doc: convert git worktree to synopsis style","fromName":"Jean-Noël Avila via GitGitGadget","fromEmail":"gitgitgadget@gmail.com","sentAt":"2025-10-05T21:11:42Z","receivedAt":"2025-10-05T21:11:53Z","isPatch":true,"sender":{"key":"jn.avila@free.fr","avatar":"https://avatars.githubusercontent.com/u/156172?v=4"},"body":"From: =?UTF-8?q?Jean-No=C3=ABl=20Avila?= <jn.avila@free.fr>\n\n- Switch the synopsis to a synopsis block which will automatically\n  format placeholders in italics and keywords in monospace\n- Use _<placeholder>_ instead of <placeholder> in the description\n- Use `backticks` for keywords and more complex option\ndescriptions. The new rendering engine will apply synopsis rules to\nthese spans.\n\nAlso add the config section in the manual page and do not refer to the man\npage in the description of settings when this description is already in the\nman page.\n\nSigned-off-by: Jean-Noël Avila <jn.avila@free.fr>\n---\n Documentation/config/worktree.adoc |  14 +--\n Documentation/git-worktree.adoc    | 161 +++++++++++++++--------------\n 2 files changed, 91 insertions(+), 84 deletions(-)\n\ndiff --git a/Documentation/config/worktree.adoc b/Documentation/config/worktree.adoc\nindex 9e3f84f748..a248076ea5 100644\n--- a/Documentation/config/worktree.adoc\n+++ b/Documentation/config/worktree.adoc\n@@ -1,4 +1,4 @@\n-worktree.guessRemote::\n+`worktree.guessRemote`::\n \tIf no branch is specified and neither `-b` nor `-B` nor\n \t`--detach` is used, then `git worktree add` defaults to\n \tcreating a new branch from HEAD.  If `worktree.guessRemote` is\n@@ -6,14 +6,14 @@ worktree.guessRemote::\n \tbranch whose name uniquely matches the new branch name.  If\n \tsuch a branch exists, it is checked out and set as \"upstream\"\n \tfor the new branch.  If no such match can be found, it falls\n-\tback to creating a new branch from the current HEAD.\n+\tback to creating a new branch from the current `HEAD`.\n \n-worktree.useRelativePaths::\n-\tLink worktrees using relative paths (when \"true\") or absolute\n-\tpaths (when \"false\"). This is particularly useful for setups\n+`worktree.useRelativePaths`::\n+\tLink worktrees using relative paths (when \"`true`\") or absolute\n+\tpaths (when \"`false`\"). This is particularly useful for setups\n \twhere the repository and worktrees may be moved between\n-\tdifferent locations or environments. Defaults to \"false\".\n+\tdifferent locations or environments. Defaults to \"`false`\".\n +\n-Note that setting `worktree.useRelativePaths` to \"true\" implies enabling the\n+Note that setting `worktree.useRelativePaths` to \"`true`\" implies enabling the\n `extensions.relativeWorktrees` config (see linkgit:git-config[1]),\n thus making it incompatible with older versions of Git.\ndiff --git a/Documentation/git-worktree.adoc b/Documentation/git-worktree.adoc\nindex 389e669ac0..f272f79783 100644\n--- a/Documentation/git-worktree.adoc\n+++ b/Documentation/git-worktree.adoc\n@@ -8,16 +8,16 @@ git-worktree - Manage multiple working trees\n \n SYNOPSIS\n --------\n-[verse]\n-'git worktree add' [-f] [--detach] [--checkout] [--lock [--reason <string>]]\n-\t\t   [--orphan] [(-b | -B) <new-branch>] <path> [<commit-ish>]\n-'git worktree list' [-v | --porcelain [-z]]\n-'git worktree lock' [--reason <string>] <worktree>\n-'git worktree move' <worktree> <new-path>\n-'git worktree prune' [-n] [-v] [--expire <expire>]\n-'git worktree remove' [-f] <worktree>\n-'git worktree repair' [<path>...]\n-'git worktree unlock' <worktree>\n+[synopsis]\n+git worktree add [-f] [--detach] [--checkout] [--lock [--reason <string>]]\n+\t\t [--orphan] [(-b | -B) <new-branch>] <path> [<commit-ish>]\n+git worktree list [-v | --porcelain [-z]]\n+git worktree lock [--reason <string>] <worktree>\n+git worktree move <worktree> <new-path>\n+git worktree prune [-n] [-v] [--expire <expire>]\n+git worktree remove [-f] <worktree>\n+git worktree repair [<path>...]\n+git worktree unlock <worktree>\n \n DESCRIPTION\n -----------\n@@ -37,7 +37,7 @@ zero or more linked worktrees. When you are done with a linked worktree,\n remove it with `git worktree remove`.\n \n In its simplest form, `git worktree add <path>` automatically creates a\n-new branch whose name is the final component of `<path>`, which is\n+new branch whose name is the final component of _<path>_, which is\n convenient if you plan to work on a new topic. For instance, `git\n worktree add ../hotfix` creates new branch `hotfix` and checks it out at\n path `../hotfix`. To instead work on an existing branch in a new worktree,\n@@ -63,16 +63,16 @@ locked.\n \n COMMANDS\n --------\n-add <path> [<commit-ish>]::\n+`add <path> [<commit-ish>]`::\n \n-Create a worktree at `<path>` and checkout `<commit-ish>` into it. The new worktree\n+Create a worktree at _<path>_ and checkout _<commit-ish>_ into it. The new worktree\n is linked to the current repository, sharing everything except per-worktree\n-files such as `HEAD`, `index`, etc. As a convenience, `<commit-ish>` may\n+files such as `HEAD`, `index`, etc. As a convenience, _<commit-ish>_ may\n be a bare \"`-`\", which is synonymous with `@{-1}`.\n +\n-If `<commit-ish>` is a branch name (call it `<branch>`) and is not found,\n+If _<commit-ish>_ is a branch name (call it _<branch>_) and is not found,\n and neither `-b` nor `-B` nor `--detach` are used, but there does\n-exist a tracking branch in exactly one remote (call it `<remote>`)\n+exist a tracking branch in exactly one remote (call it _<remote>_)\n with a matching name, treat as equivalent to:\n +\n ------------\n@@ -81,32 +81,32 @@ $ git worktree add --track -b <branch> <path> <remote>/<branch>\n +\n If the branch exists in multiple remotes and one of them is named by\n the `checkout.defaultRemote` configuration variable, we'll use that\n-one for the purposes of disambiguation, even if the `<branch>` isn't\n+one for the purposes of disambiguation, even if the _<branch>_ isn't\n unique across all remotes. Set it to\n e.g. `checkout.defaultRemote=origin` to always checkout remote\n-branches from there if `<branch>` is ambiguous but exists on the\n+branches from there if _<branch>_ is ambiguous but exists on the\n `origin` remote. See also `checkout.defaultRemote` in\n linkgit:git-config[1].\n +\n-If `<commit-ish>` is omitted and neither `-b` nor `-B` nor `--detach` used,\n+If _<commit-ish>_ is omitted and neither `-b` nor `-B` nor `--detach` used,\n then, as a convenience, the new worktree is associated with a branch (call\n-it `<branch>`) named after `$(basename <path>)`.  If `<branch>` doesn't\n+it _<branch>_) named after `$(basename <path>)`.  If _<branch>_ doesn't\n exist, a new branch based on `HEAD` is automatically created as if\n-`-b <branch>` was given.  If `<branch>` does exist, it will be checked out\n+`-b <branch>` was given.  If _<branch>_ does exist, it will be checked out\n in the new worktree, if it's not checked out anywhere else, otherwise the\n command will refuse to create the worktree (unless `--force` is used).\n +\n-If `<commit-ish>` is omitted, neither `--detach`, or `--orphan` is\n+If _<commit-ish>_ is omitted, neither `--detach`, or `--orphan` is\n used, and there are no valid local branches (or remote branches if\n `--guess-remote` is specified) then, as a convenience, the new worktree is\n-associated with a new unborn branch named `<branch>` (after\n+associated with a new unborn branch named _<branch>_ (after\n `$(basename <path>)` if neither `-b` or `-B` is used) as if `--orphan` was\n passed to the command. In the event the repository has a remote and\n `--guess-remote` is used, but no remote or local branches exist, then the\n command fails with a warning reminding the user to fetch from their remote\n first (or override by using `-f/--force`).\n \n-list::\n+`list`::\n \n List details of each worktree.  The main worktree is listed first,\n followed by each of the linked worktrees.  The output details include\n@@ -115,32 +115,32 @@ branch currently checked out (or \"detached HEAD\" if none), \"locked\" if\n the worktree is locked, \"prunable\" if the worktree can be pruned by the\n `prune` command.\n \n-lock::\n+`lock`::\n \n If a worktree is on a portable device or network share which is not always\n mounted, lock it to prevent its administrative files from being pruned\n automatically. This also prevents it from being moved or deleted.\n Optionally, specify a reason for the lock with `--reason`.\n \n-move::\n+`move`::\n \n Move a worktree to a new location. Note that the main worktree or linked\n worktrees containing submodules cannot be moved with this command. (The\n `git worktree repair` command, however, can reestablish the connection\n with linked worktrees if you move the main worktree manually.)\n \n-prune::\n+`prune`::\n \n Prune worktree information in `$GIT_DIR/worktrees`.\n \n-remove::\n+`remove`::\n \n Remove a worktree. Only clean worktrees (no untracked files and no\n modification in tracked files) can be removed. Unclean worktrees or ones\n with submodules can be removed with `--force`. The main worktree cannot be\n removed.\n \n-repair [<path>...]::\n+`repair [<path>...]`::\n \n Repair worktree administrative files, if possible, if they have become\n corrupted or outdated due to external factors.\n@@ -154,72 +154,72 @@ Similarly, if the working tree for a linked worktree is moved without\n using `git worktree move`, the main worktree (or bare repository) will be\n unable to locate it. Running `repair` within the recently-moved worktree\n will reestablish the connection. If multiple linked worktrees are moved,\n-running `repair` from any worktree with each tree's new `<path>` as an\n+running `repair` from any worktree with each tree's new _<path>_ as an\n argument, will reestablish the connection to all the specified paths.\n +\n If both the main worktree and linked worktrees have been moved or copied manually,\n-then running `repair` in the main worktree and specifying the new `<path>`\n+then running `repair` in the main worktree and specifying the new _<path>_\n of each linked worktree will reestablish all connections in both\n directions.\n \n-unlock::\n+`unlock`::\n \n Unlock a worktree, allowing it to be pruned, moved or deleted.\n \n OPTIONS\n -------\n \n--f::\n---force::\n+`-f`::\n+`--force`::\n \tBy default, `add` refuses to create a new worktree when\n-\t`<commit-ish>` is a branch name and is already checked out by\n-\tanother worktree, or if `<path>` is already assigned to some\n-\tworktree but is missing (for instance, if `<path>` was deleted\n+\t_<commit-ish>_ is a branch name and is already checked out by\n+\tanother worktree, or if _<path>_ is already assigned to some\n+\tworktree but is missing (for instance, if _<path>_ was deleted\n \tmanually). This option overrides these safeguards. To add a missing but\n \tlocked worktree path, specify `--force` twice.\n +\n `move` refuses to move a locked worktree unless `--force` is specified\n twice. If the destination is already assigned to some other worktree but is\n-missing (for instance, if `<new-path>` was deleted manually), then `--force`\n+missing (for instance, if _<new-path>_ was deleted manually), then `--force`\n allows the move to proceed; use `--force` twice if the destination is locked.\n +\n `remove` refuses to remove an unclean worktree unless `--force` is used.\n To remove a locked worktree, specify `--force` twice.\n \n--b <new-branch>::\n--B <new-branch>::\n-\tWith `add`, create a new branch named `<new-branch>` starting at\n-\t`<commit-ish>`, and check out `<new-branch>` into the new worktree.\n-\tIf `<commit-ish>` is omitted, it defaults to `HEAD`.\n+`-b <new-branch>`::\n+`-B <new-branch>`::\n+\tWith `add`, create a new branch named _<new-branch>_ starting at\n+\t_<commit-ish>_, and check out _<new-branch>_ into the new worktree.\n+\tIf _<commit-ish>_ is omitted, it defaults to `HEAD`.\n \tBy default, `-b` refuses to create a new branch if it already\n-\texists. `-B` overrides this safeguard, resetting `<new-branch>` to\n-\t`<commit-ish>`.\n+\texists. `-B` overrides this safeguard, resetting _<new-branch>_ to\n+\t_<commit-ish>_.\n \n--d::\n---detach::\n+`-d`::\n+`--detach`::\n \tWith `add`, detach `HEAD` in the new worktree. See \"DETACHED HEAD\"\n \tin linkgit:git-checkout[1].\n \n---checkout::\n---no-checkout::\n-\tBy default, `add` checks out `<commit-ish>`, however, `--no-checkout` can\n+`--checkout`::\n+`--no-checkout`::\n+\tBy default, `add` checks out _<commit-ish>_, however, `--no-checkout` can\n \tbe used to suppress checkout in order to make customizations,\n \tsuch as configuring sparse-checkout. See \"Sparse checkout\"\n \tin linkgit:git-read-tree[1].\n \n---guess-remote::\n---no-guess-remote::\n-\tWith `worktree add <path>`, without `<commit-ish>`, instead\n+`--guess-remote`::\n+`--no-guess-remote`::\n+\tWith `worktree add <path>`, without _<commit-ish>_, instead\n \tof creating a new branch from `HEAD`, if there exists a tracking\n-\tbranch in exactly one remote matching the basename of `<path>`,\n+\tbranch in exactly one remote matching the basename of _<path>_,\n \tbase the new branch on the remote-tracking branch, and mark\n \tthe remote-tracking branch as \"upstream\" from the new branch.\n +\n This can also be set up as the default behaviour by using the\n `worktree.guessRemote` config option.\n \n---relative-paths::\n---no-relative-paths::\n+`--relative-paths`::\n+`--no-relative-paths`::\n \tLink worktrees using relative paths or absolute paths (default).\n \tOverrides the `worktree.useRelativePaths` config option, see\n \tlinkgit:git-config[1].\n@@ -227,60 +227,60 @@ This can also be set up as the default behaviour by using the\n With `repair`, the linking files will be updated if there's an absolute/relative\n mismatch, even if the links are correct.\n \n---track::\n---no-track::\n-\tWhen creating a new branch, if `<commit-ish>` is a branch,\n+`--track`::\n+`--no-track`::\n+\tWhen creating a new branch, if _<commit-ish>_ is a branch,\n \tmark it as \"upstream\" from the new branch.  This is the\n-\tdefault if `<commit-ish>` is a remote-tracking branch.  See\n+\tdefault if _<commit-ish>_ is a remote-tracking branch.  See\n \t`--track` in linkgit:git-branch[1] for details.\n \n---lock::\n+`--lock`::\n \tKeep the worktree locked after creation. This is the\n \tequivalent of `git worktree lock` after `git worktree add`,\n \tbut without a race condition.\n \n--n::\n---dry-run::\n+`-n`::\n+`--dry-run`::\n \tWith `prune`, do not remove anything; just report what it would\n \tremove.\n \n---orphan::\n+`--orphan`::\n \tWith `add`, make the new worktree and index empty, associating\n-\tthe worktree with a new unborn branch named `<new-branch>`.\n+\tthe worktree with a new unborn branch named _<new-branch>_.\n \n---porcelain::\n+`--porcelain`::\n \tWith `list`, output in an easy-to-parse format for scripts.\n \tThis format will remain stable across Git versions and regardless of user\n \tconfiguration.  It is recommended to combine this with `-z`.\n \tSee below for details.\n \n--z::\n-\tTerminate each line with a NUL rather than a newline when\n+`-z`::\n+\tTerminate each line with a _NUL_ rather than a newline when\n \t`--porcelain` is specified with `list`. This makes it possible\n \tto parse the output when a worktree path contains a newline\n \tcharacter.\n \n--q::\n---quiet::\n+`-q`::\n+`--quiet`::\n \tWith `add`, suppress feedback messages.\n \n--v::\n---verbose::\n+`-v`::\n+`--verbose`::\n \tWith `prune`, report all removals.\n +\n With `list`, output additional information about worktrees (see below).\n \n---expire <time>::\n-\tWith `prune`, only expire unused worktrees older than `<time>`.\n+`--expire <time>`::\n+\tWith `prune`, only expire unused worktrees older than _<time>_.\n +\n With `list`, annotate missing worktrees as prunable if they are older than\n-`<time>`.\n+_<time>_.\n \n---reason <string>::\n+`--reason <string>`::\n \tWith `lock` or with `add --lock`, an explanation why the worktree\n \tis locked.\n \n-<worktree>::\n+_<worktree>_::\n \tWorktrees can be identified by path, either relative or absolute.\n +\n If the last path components in the worktree's path is unique among\n@@ -522,6 +522,13 @@ $ popd\n $ git worktree remove ../temp\n ------------\n \n+CONFIGURATION\n+-------------\n+\n+include::includes/cmd-config-section-all.adoc[]\n+\n+include::config/worktree.adoc[]\n+\n BUGS\n ----\n Multiple checkout in general is still experimental, and the support\n-- \ngitgitgadget\n"},{"id":"528434","messageId":"02383db0-545a-4f4c-9fa9-30a819a30de2@app.fastmail.com","threadId":"64253","inReplyTo":"3f3e5a87e834a6cd1d5d7769bdd2c0dcfaa4b6ae.1759698702.git.gitgitgadget@gmail.com","subject":"Re: [PATCH 1/3] doc: convert git-stash.adoc to synopis style","fromName":"Kristoffer Haugsbakk","fromEmail":"kristofferhaugsbakk@fastmail.com","sentAt":"2025-10-09T23:48:28Z","receivedAt":"2025-10-09T23:48:49Z","isPatch":true,"sender":{"key":"kristofferhaugsbakk@fastmail.com","avatar":null},"body":"On Sun, Oct 5, 2025, at 23:11, Jean-Noël Avila via GitGitGadget wrote:\n> From: =?UTF-8?q?Jean-No=C3=ABl=20Avila?= <jn.avila@free.fr>\n>\n> - Switch the synopsis to a synopsis block which will automatically\n>   format placeholders in italics and keywords in monospace\n> - Use _<placeholder>_ instead of <placeholder> in the description\n> - Use `backticks` for keywords and more complex option\n> descriptions. The new rendering engine will apply synopsis rules to\n> these spans.\n>\n> Also do not refer to the man page in the description of settings when this\n> description is already in the man page.\n>\n> Signed-off-by: Jean-Noël Avila <jn.avila@free.fr>\n> ---\n>  Documentation/config/stash.adoc |  29 ++++---\n>  Documentation/git-stash.adoc    | 134 ++++++++++++++++----------------\n>  2 files changed, 85 insertions(+), 78 deletions(-)\n>\n> diff --git a/Documentation/config/stash.adoc b/Documentation/config/stash.adoc\n> index e556105a15..7fc32027f7 100644\n> --- a/Documentation/config/stash.adoc\n> +++ b/Documentation/config/stash.adoc\n> @@ -1,19 +1,28 @@\n> -stash.index::\n> +ifndef::git-stash[]\n> +:see-show: See the description of the 'show' command in linkgit:git-stash[1].\n\nOkay, here you use 'show' and not `show` because this conditional\nattribute will pass on `show` and render it as such, not as\ninline-verbatim “show”. Bare 'show' is indeed better than bare `show`.\n\n> +endif::git-stash[]\n> +\n> +ifdef::git-stash[]\n> +:see-show:\n> +endif::git-stash[]\n>[snip]\n"},{"id":"528470","messageId":"bb0f530b-96f3-4655-8448-1d322413cd1f@free.fr","threadId":"64253","inReplyTo":"02383db0-545a-4f4c-9fa9-30a819a30de2@app.fastmail.com","subject":"Re: [PATCH 1/3] doc: convert git-stash.adoc to synopis style","fromName":"Jean-Noël Avila","fromEmail":"jn.avila@free.fr","sentAt":"2025-10-10T06:40:44Z","receivedAt":"2025-10-10T06:40:54Z","isPatch":true,"sender":{"key":"jn.avila@free.fr","avatar":"https://avatars.githubusercontent.com/u/156172?v=4"},"body":"Le 10/10/2025 à 01:48, Kristoffer Haugsbakk a écrit :\n> On Sun, Oct 5, 2025, at 23:11, Jean-Noël Avila via GitGitGadget wrote:\n>> From: =?UTF-8?q?Jean-No=C3=ABl=20Avila?= <jn.avila@free.fr>\n>>\n>> - Switch the synopsis to a synopsis block which will automatically\n>>   format placeholders in italics and keywords in monospace\n>> - Use _<placeholder>_ instead of <placeholder> in the description\n>> - Use `backticks` for keywords and more complex option\n>> descriptions. The new rendering engine will apply synopsis rules to\n>> these spans.\n>>\n>> Also do not refer to the man page in the description of settings when this\n>> description is already in the man page.\n>>\n>> Signed-off-by: Jean-Noël Avila <jn.avila@free.fr>\n>> ---\n>>  Documentation/config/stash.adoc |  29 ++++---\n>>  Documentation/git-stash.adoc    | 134 ++++++++++++++++----------------\n>>  2 files changed, 85 insertions(+), 78 deletions(-)\n>>\n>> diff --git a/Documentation/config/stash.adoc b/Documentation/config/stash.adoc\n>> index e556105a15..7fc32027f7 100644\n>> --- a/Documentation/config/stash.adoc\n>> +++ b/Documentation/config/stash.adoc\n>> @@ -1,19 +1,28 @@\n>> -stash.index::\n>> +ifndef::git-stash[]\n>> +:see-show: See the description of the 'show' command in linkgit:git-stash[1].\n> \n> Okay, here you use 'show' and not `show` because this conditional\n> attribute will pass on `show` and render it as such, not as\n> inline-verbatim “show”. Bare 'show' is indeed better than bare `show`.\n\nTBH I did not spot the issue when I did this. I wasn't aware that\nAsciidoc does not automatically handle inline formatting in attributes.\nBut it seems we can force it. This \"show\" keyword should definitely be\ninline verbatim.\n\nWil try and reroll.\n\n> \n>> +endif::git-stash[]\n>> +\n>> +ifdef::git-stash[]\n>> +:see-show:\n>> +endif::git-stash[]\n>> [snip]\n\n"},{"id":"528517","messageId":"xmqqsefqah44.fsf@gitster.g","threadId":"64253","inReplyTo":"bb0f530b-96f3-4655-8448-1d322413cd1f@free.fr","subject":"Re: [PATCH 1/3] doc: convert git-stash.adoc to synopis style","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2025-10-10T15:52:59Z","receivedAt":"2025-10-10T15:53:01Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jean-Noël Avila <jn.avila@free.fr> writes:\n\n>>> diff --git a/Documentation/config/stash.adoc b/Documentation/config/stash.adoc\n>>> index e556105a15..7fc32027f7 100644\n>>> --- a/Documentation/config/stash.adoc\n>>> +++ b/Documentation/config/stash.adoc\n>>> @@ -1,19 +1,28 @@\n>>> -stash.index::\n>>> +ifndef::git-stash[]\n>>> +:see-show: See the description of the 'show' command in linkgit:git-stash[1].\n>> \n>> Okay, here you use 'show' and not `show` because this conditional\n>> attribute will pass on `show` and render it as such, not as\n>> inline-verbatim “show”. Bare 'show' is indeed better than bare `show`.\n>\n> TBH I did not spot the issue when I did this. I wasn't aware that\n> Asciidoc does not automatically handle inline formatting in attributes.\n> But it seems we can force it. This \"show\" keyword should definitely be\n> inline verbatim.\n>\n> Wil try and reroll.\n\nThis is already in 'next', isn't it, though?\n"},{"id":"528529","messageId":"5929880.DvuYhMxLoT@cayenne","threadId":"64253","inReplyTo":"xmqqsefqah44.fsf@gitster.g","subject":"Re: [PATCH 1/3] doc: convert git-stash.adoc to synopis style","fromName":"Jean-Noël AVILA","fromEmail":"jn.avila@free.fr","sentAt":"2025-10-10T17:43:17Z","receivedAt":"2025-10-10T17:43:36Z","isPatch":true,"sender":{"key":"jn.avila@free.fr","avatar":"https://avatars.githubusercontent.com/u/156172?v=4"},"body":"On Friday, 10 October 2025 17:52:59 CEST Junio C Hamano wrote:\n> Jean-Noël Avila <jn.avila@free.fr> writes:\n> >>> diff --git a/Documentation/config/stash.adoc b/Documentation/config/\nstash.adoc\n> >>> index e556105a15..7fc32027f7 100644\n> >>> --- a/Documentation/config/stash.adoc\n> >>> +++ b/Documentation/config/stash.adoc\n> >>> @@ -1,19 +1,28 @@\n> >>> -stash.index::\n> >>> +ifndef::git-stash[]\n> >>> +:see-show: See the description of the 'show' command in linkgit:git-\nstash[1].\n> >> \n> >> Okay, here you use 'show' and not `show` because this conditional\n> >> attribute will pass on `show` and render it as such, not as\n> >> inline-verbatim “show”. Bare 'show' is indeed better than bare `show`.\n> > \n> > TBH I did not spot the issue when I did this. I wasn't aware that\n> > Asciidoc does not automatically handle inline formatting in attributes.\n> > But it seems we can force it. This \"show\" keyword should definitely be\n> > inline verbatim.\n> > \n> > Wil try and reroll.\n> \n> This is already in 'next', isn't it, though?\n\nThat's fine. I couldn't come up with a substitution scheme that would work \ncorrectly for both asciidoc.py and asciidoctor.\n\nSo let's just let this patch as it is and recall that attributes are not a \npanacea.\n\n\n"},{"id":"528531","messageId":"xmqqh5w68vk9.fsf@gitster.g","threadId":"64253","inReplyTo":"5929880.DvuYhMxLoT@cayenne","subject":"Re: [PATCH 1/3] doc: convert git-stash.adoc to synopis style","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2025-10-10T18:23:50Z","receivedAt":"2025-10-10T18:23:53Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Jean-Noël AVILA <jn.avila@free.fr> writes:\n\n>> > Wil try and reroll.\n>> \n>> This is already in 'next', isn't it, though?\n>\n> That's fine. I couldn't come up with a substitution scheme that would work \n> correctly for both asciidoc.py and asciidoctor.\n>\n> So let's just let this patch as it is and recall that attributes are not a \n> panacea.\n\nOK.  Let me make sure that I did not mark the topic as \"on hold\".\n\nThanks.\n"}]}