{"thread":{"id":"63139","subject":"[PATCH 0/2] doc: apply new format to git-branch man page","startedAt":"2025-03-15T16:31:53Z","lastAt":"2025-03-19T08:16:28Z","messageCount":11,"participants":["Jean-Noël Avila via GitGitGadget","Junio C Hamano","Jean-Noël AVILA"],"isPatch":true,"patchVersion":1,"patchTotal":2},"messages":[{"id":"514354","messageId":"pull.1880.git.1742056310.gitgitgadget@gmail.com","threadId":"63139","inReplyTo":null,"subject":"[PATCH 0/2] doc: apply new format to git-branch man page","fromName":"Jean-Noël Avila via GitGitGadget","fromEmail":"gitgitgadget@gmail.com","sentAt":"2025-03-15T16:31:48Z","receivedAt":"2025-03-15T16:31:53Z","isPatch":true,"sender":{"key":"jn.avila@free.fr","avatar":"https://avatars.githubusercontent.com/u/156172?v=4"},"body":"Working on git-branch's doc uncovered a bug in the completion logic that did\nnot take into account the new formatting of options. Apart from that, the\nchanges are quite standard now.\n\nJean-Noël Avila (2):\n  completion: take into account the formatting backticks for options\n  doc: apply new format to git-branch man page\n\n Documentation/config/branch.adoc | 105 +++++------\n Documentation/git-branch.adoc    | 287 +++++++++++++++----------------\n generate-configlist.sh           |   4 +-\n 3 files changed, 198 insertions(+), 198 deletions(-)\n\n\nbase-commit: 683c54c999c301c2cd6f715c411407c413b1d84e\nPublished-As: https://github.com/gitgitgadget/git/releases/tag/pr-1880%2Fjnavila%2Fdoc_git_branch-v1\nFetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1880/jnavila/doc_git_branch-v1\nPull-Request: https://github.com/gitgitgadget/git/pull/1880\n-- \ngitgitgadget\n"},{"id":"514355","messageId":"f8883d83f3096ce16e5dfc9647a41970396693f4.1742056310.git.gitgitgadget@gmail.com","threadId":"63139","inReplyTo":"pull.1880.git.1742056310.gitgitgadget@gmail.com","subject":"[PATCH 1/2] completion: take into account the formatting backticks for options","fromName":"Jean-Noël Avila via GitGitGadget","fromEmail":"gitgitgadget@gmail.com","sentAt":"2025-03-15T16:31:49Z","receivedAt":"2025-03-15T16:31: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\nWith the modern formatting of the manpages, the options and commands are now\nbackticked in their definition lists. This patch updates the generation of\nthe completion list to take into account this new format.\n\nSigned-off-by: Jean-Noël Avila <jn.avila@free.fr>\n---\n generate-configlist.sh | 4 ++--\n 1 file changed, 2 insertions(+), 2 deletions(-)\n\ndiff --git a/generate-configlist.sh b/generate-configlist.sh\nindex dffdaada8b5..802178daad4 100755\n--- a/generate-configlist.sh\n+++ b/generate-configlist.sh\n@@ -13,8 +13,8 @@ print_config_list () {\n \tcat <<EOF\n static const char *config_name_list[] = {\n EOF\n-\tgrep -h '^[a-zA-Z].*\\..*::$' \"$SOURCE_DIR\"/Documentation/*config.adoc \"$SOURCE_DIR\"/Documentation/config/*.adoc |\n-\tsed '/deprecated/d; s/::$//; s/,  */\\n/g' |\n+\tgrep -h '^`\\?[a-zA-Z].*\\..*`\\?::$' \"$SOURCE_DIR\"/Documentation/*config.adoc \"$SOURCE_DIR\"/Documentation/config/*.adoc |\n+\tsed '/deprecated/d; s/::$//; s/`//g; s/,  */\\n/g' |\n \tsort |\n \tsed 's/^.*$/\t\"&\",/'\n \tcat <<EOF\n-- \ngitgitgadget\n\n"},{"id":"514356","messageId":"b2e7867006e1800eb6dc52902006998afd5800cc.1742056310.git.gitgitgadget@gmail.com","threadId":"63139","inReplyTo":"pull.1880.git.1742056310.gitgitgadget@gmail.com","subject":"[PATCH 2/2] doc: apply new format to git-branch man page","fromName":"Jean-Noël Avila via GitGitGadget","fromEmail":"gitgitgadget@gmail.com","sentAt":"2025-03-15T16:31:50Z","receivedAt":"2025-03-15T16:31:55Z","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 automatically\n  formats 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 applies synopsis rules to\nthese spans.\n\nSigned-off-by: Jean-Noël Avila <jn.avila@free.fr>\n---\n Documentation/config/branch.adoc | 105 +++++------\n Documentation/git-branch.adoc    | 287 +++++++++++++++----------------\n 2 files changed, 196 insertions(+), 196 deletions(-)\n\ndiff --git a/Documentation/config/branch.adoc b/Documentation/config/branch.adoc\nindex 432b9cd2c0e..e35ea7ac640 100644\n--- a/Documentation/config/branch.adoc\n+++ b/Documentation/config/branch.adoc\n@@ -1,41 +1,42 @@\n-branch.autoSetupMerge::\n-\tTells 'git branch', 'git switch' and 'git checkout' to set up new branches\n+`branch.autoSetupMerge`::\n+\tTells `git branch`, `git switch` and `git checkout` to set up new branches\n \tso that linkgit:git-pull[1] will appropriately merge from the\n \tstarting point branch. Note that even if this option is not set,\n \tthis behavior can be chosen per-branch using the `--track`\n-\tand `--no-track` options. The valid settings are: `false` -- no\n-\tautomatic setup is done; `true` -- automatic setup is done when the\n-\tstarting point is a remote-tracking branch; `always` --\n-\tautomatic setup is done when the starting point is either a\n-\tlocal branch or remote-tracking branch; `inherit` -- if the starting point\n-\thas a tracking configuration, it is copied to the new\n-\tbranch; `simple` -- automatic setup is done only when the starting point\n+\tand `--no-track` options.  This option defaults to `true`. The valid settings\n+\tare:\n+`false`;; no automatic setup is done\n+`true`;; automatic setup is done when the starting point is a remote-tracking branch\n+`always`;; automatic setup is done when the starting point is either a\n+\tlocal branch or remote-tracking branch\n+`inherit`;; if the starting point has a tracking configuration, it is copied to the new\n+\tbranch\n+`simple`;; automatic setup is done only when the starting point\n \tis a remote-tracking branch and the new branch has the same name as the\n-\tremote branch. This option defaults to true.\n+\tremote branch.\n \n-branch.autoSetupRebase::\n-\tWhen a new branch is created with 'git branch', 'git switch' or 'git checkout'\n+`branch.autoSetupRebase`::\n+\tWhen a new branch is created with `git branch`, `git switch` or `git checkout`\n \tthat tracks another branch, this variable tells Git to set\n-\tup pull to rebase instead of merge (see \"branch.<name>.rebase\").\n-\tWhen `never`, rebase is never automatically set to true.\n-\tWhen `local`, rebase is set to true for tracked branches of\n-\tother local branches.\n-\tWhen `remote`, rebase is set to true for tracked branches of\n-\tremote-tracking branches.\n-\tWhen `always`, rebase will be set to true for all tracking\n-\tbranches.\n-\tSee \"branch.autoSetupMerge\" for details on how to set up a\n-\tbranch to track another branch.\n-\tThis option defaults to never.\n+\tup pull to rebase instead of merge (see `branch.<name>.rebase`).\n+\tThe valid settings are:\n+`never`;; rebase is never automatically set to true.\n+`local`;; rebase is set to true for tracked branches of other local branches.\n+`remote`;; rebase is set to true for tracked branches of remote-tracking branches.\n+`always`;; rebase will be set to true for all tracking branches.\n \n-branch.sort::\n++\n+See `branch.autoSetupMerge` for details on how to set up a branch to track another branch.\n+This option defaults to `never`.\n+\n+`branch.sort`::\n \tThis variable controls the sort ordering of branches when displayed by\n-\tlinkgit:git-branch[1]. Without the \"--sort=<value>\" option provided, the\n+\tlinkgit:git-branch[1]. Without the `--sort=<value>` option provided, the\n \tvalue of this variable will be used as the default.\n \tSee linkgit:git-for-each-ref[1] field names for valid values.\n \n-branch.<name>.remote::\n-\tWhen on branch <name>, it tells 'git fetch' and 'git push'\n+`branch.<name>.remote`::\n+\tWhen on branch _<name>_, it tells `git fetch` and `git push`\n \twhich remote to fetch from or push to.  The remote to push to\n \tmay be overridden with `remote.pushDefault` (for all branches).\n \tThe remote to push to, for the current branch, may be further\n@@ -46,58 +47,58 @@ branch.<name>.remote::\n \tAdditionally, `.` (a period) is the current local repository\n \t(a dot-repository), see `branch.<name>.merge`'s final note below.\n \n-branch.<name>.pushRemote::\n-\tWhen on branch <name>, it overrides `branch.<name>.remote` for\n+`branch.<name>.pushRemote`::\n+\tWhen on branch _<name>_, it overrides `branch.<name>.remote` for\n \tpushing.  It also overrides `remote.pushDefault` for pushing\n-\tfrom branch <name>.  When you pull from one place (e.g. your\n+\tfrom branch _<name>_.  When you pull from one place (e.g. your\n \tupstream) and push to another place (e.g. your own publishing\n \trepository), you would want to set `remote.pushDefault` to\n \tspecify the remote to push to for all branches, and use this\n \toption to override it for a specific branch.\n \n-branch.<name>.merge::\n-\tDefines, together with branch.<name>.remote, the upstream branch\n-\tfor the given branch. It tells 'git fetch'/'git pull'/'git rebase' which\n-\tbranch to merge and can also affect 'git push' (see push.default).\n-\tWhen in branch <name>, it tells 'git fetch' the default\n-\trefspec to be marked for merging in FETCH_HEAD. The value is\n+`branch.<name>.merge`::\n+\tDefines, together with `branch.<name>.remote`, the upstream branch\n+\tfor the given branch. It tells `git fetch`/`git pull`/`git rebase` which\n+\tbranch to merge and can also affect `git push` (see `push.default`).\n+\tWhen in branch _<name>_, it tells `git fetch` the default\n+\trefspec to be marked for merging in `FETCH_HEAD`. The value is\n \thandled like the remote part of a refspec, and must match a\n \tref which is fetched from the remote given by\n-\t\"branch.<name>.remote\".\n-\tThe merge information is used by 'git pull' (which first calls\n-\t'git fetch') to lookup the default branch for merging. Without\n-\tthis option, 'git pull' defaults to merge the first refspec fetched.\n+\t`branch.<name>.remote`.\n+\tThe merge information is used by `git pull` (which first calls\n+\t`git fetch`) to lookup the default branch for merging. Without\n+\tthis option, `git pull` defaults to merge the first refspec fetched.\n \tSpecify multiple values to get an octopus merge.\n-\tIf you wish to setup 'git pull' so that it merges into <name> from\n+\tIf you wish to setup `git pull` so that it merges into <name> from\n \tanother branch in the local repository, you can point\n \tbranch.<name>.merge to the desired branch, and use the relative path\n-\tsetting `.` (a period) for branch.<name>.remote.\n+\tsetting `.` (a period) for `branch.<name>.remote`.\n \n-branch.<name>.mergeOptions::\n-\tSets default options for merging into branch <name>. The syntax and\n+`branch.<name>.mergeOptions`::\n+\tSets default options for merging into branch _<name>_. The syntax and\n \tsupported options are the same as those of linkgit:git-merge[1], but\n \toption values containing whitespace characters are currently not\n \tsupported.\n \n-branch.<name>.rebase::\n-\tWhen true, rebase the branch <name> on top of the fetched branch,\n+`branch.<name>.rebase`::\n+\tWhen true, rebase the branch _<name>_ on top of the fetched branch,\n \tinstead of merging the default branch from the default remote when\n-\t\"git pull\" is run. See \"pull.rebase\" for doing this in a non\n+\t`git pull` is run. See `pull.rebase` for doing this in a non\n \tbranch-specific manner.\n +\n-When `merges` (or just 'm'), pass the `--rebase-merges` option to 'git rebase'\n+When `merges` (or just `m`), pass the `--rebase-merges` option to `git rebase`\n so that the local merge commits are included in the rebase (see\n linkgit:git-rebase[1] for details).\n +\n-When the value is `interactive` (or just 'i'), the rebase is run in interactive\n+When the value is `interactive` (or just `i`), the rebase is run in interactive\n mode.\n +\n *NOTE*: this is a possibly dangerous operation; do *not* use\n it unless you understand the implications (see linkgit:git-rebase[1]\n for details).\n \n-branch.<name>.description::\n+`branch.<name>.description`::\n \tBranch description, can be edited with\n \t`git branch --edit-description`. Branch description is\n-\tautomatically added to the format-patch cover letter or\n-\trequest-pull summary.\n+\tautomatically added to the `format-patch` cover letter or\n+\t`request-pull` summary.\ndiff --git a/Documentation/git-branch.adoc b/Documentation/git-branch.adoc\nindex 7a073a36d6d..50a1e13e1f2 100644\n--- a/Documentation/git-branch.adoc\n+++ b/Documentation/git-branch.adoc\n@@ -7,23 +7,23 @@ git-branch - List, create, or delete branches\n \n SYNOPSIS\n --------\n-[verse]\n-'git branch' [--color[=<when>] | --no-color] [--show-current]\n-\t[-v [--abbrev=<n> | --no-abbrev]]\n-\t[--column[=<options>] | --no-column] [--sort=<key>]\n-\t[--merged [<commit>]] [--no-merged [<commit>]]\n-\t[--contains [<commit>]] [--no-contains [<commit>]]\n-\t[--points-at <object>] [--format=<format>]\n-\t[(-r | --remotes) | (-a | --all)]\n-\t[--list] [<pattern>...]\n-'git branch' [--track[=(direct|inherit)] | --no-track] [-f]\n-\t[--recurse-submodules] <branchname> [<start-point>]\n-'git branch' (--set-upstream-to=<upstream> | -u <upstream>) [<branchname>]\n-'git branch' --unset-upstream [<branchname>]\n-'git branch' (-m | -M) [<oldbranch>] <newbranch>\n-'git branch' (-c | -C) [<oldbranch>] <newbranch>\n-'git branch' (-d | -D) [-r] <branchname>...\n-'git branch' --edit-description [<branchname>]\n+[synopsis]\n+git branch [--color[=<when>] | --no-color] [--show-current]\n+\t   [-v [--abbrev=<n> | --no-abbrev]]\n+\t   [--column[=<options>] | --no-column] [--sort=<key>]\n+\t   [--merged [<commit>]] [--no-merged [<commit>]]\n+\t   [--contains [<commit>]] [--no-contains [<commit>]]\n+\t   [--points-at <object>] [--format=<format>]\n+\t   [(-r|--remotes) | (-a|--all)]\n+\t   [--list] [<pattern>...]\n+git branch [--track[=(direct|inherit)] | --no-track] [-f]\n+\t   [--recurse-submodules] <branch-name> [<start-point>]\n+git branch (--set-upstream-to=<upstream>|-u <upstream>) [<branch-name>]\n+git branch --unset-upstream [<branch-name>]\n+git branch (-m|-M) [<old-branch>] <new-branch>\n+git branch (-c|-C) [<old-branch>] <new-branch>\n+git branch (-d|-D) [-r] <branch-name>...\n+git branch --edit-description [<branch-name>]\n \n DESCRIPTION\n -----------\n@@ -49,173 +49,184 @@ With `--contains`, shows only the branches that contain the named commit\n named commit), `--no-contains` inverts it. With `--merged`, only branches\n merged into the named commit (i.e. the branches whose tip commits are\n reachable from the named commit) will be listed.  With `--no-merged` only\n-branches not merged into the named commit will be listed.  If the <commit>\n+branches not merged into the named commit will be listed.  If the _<commit>_\n argument is missing it defaults to `HEAD` (i.e. the tip of the current\n branch).\n \n-The command's second form creates a new branch head named <branchname>\n-which points to the current `HEAD`, or <start-point> if given. As a\n-special case, for <start-point>, you may use `\"A...B\"` as a shortcut for\n-the merge base of `A` and `B` if there is exactly one merge base. You\n-can leave out at most one of `A` and `B`, in which case it defaults to\n-`HEAD`.\n+The command's second form creates a new branch head named _<branch-name>_\n+which points to the current `HEAD`, or _<start-point>_ if given. As a\n+special case, for _<start-point>_, you may use `<rev-A>...<rev-B>` as a\n+shortcut for the merge base of _<rev-A>_ and _<rev-B>_ if there is exactly\n+one merge base. You can leave out at most one of _<rev-A>_ and _<rev-B>_,\n+in which case it defaults to `HEAD`.\n \n Note that this will create the new branch, but it will not switch the\n-working tree to it; use \"git switch <newbranch>\" to switch to the\n+working tree to it; use `git switch <new-branch>` to switch to the\n new branch.\n \n When a local branch is started off a remote-tracking branch, Git sets up the\n branch (specifically the `branch.<name>.remote` and `branch.<name>.merge`\n-configuration entries) so that 'git pull' will appropriately merge from\n+configuration entries) so that `git pull` will appropriately merge from\n the remote-tracking branch. This behavior may be changed via the global\n `branch.autoSetupMerge` configuration flag. That setting can be\n overridden by using the `--track` and `--no-track` options, and\n changed later using `git branch --set-upstream-to`.\n \n-With a `-m` or `-M` option, <oldbranch> will be renamed to <newbranch>.\n-If <oldbranch> had a corresponding reflog, it is renamed to match\n-<newbranch>, and a reflog entry is created to remember the branch\n-renaming. If <newbranch> exists, -M must be used to force the rename\n+With a `-m` or `-M` option, _<old-branch>_ will be renamed to _<new-branch>_.\n+If _<old-branch>_ had a corresponding reflog, it is renamed to match\n+_<new-branch>_, and a reflog entry is created to remember the branch\n+renaming. If _<new-branch>_ exists, `-M` must be used to force the rename\n to happen.\n \n The `-c` and `-C` options have the exact same semantics as `-m` and\n `-M`, except instead of the branch being renamed, it will be copied to a\n new name, along with its config and reflog.\n \n-With a `-d` or `-D` option, `<branchname>` will be deleted.  You may\n+With a `-d` or `-D` option, _<branch-name>_ will be deleted.  You may\n specify more than one branch for deletion.  If the branch currently\n has a reflog then the reflog will also be deleted.\n \n Use `-r` together with `-d` to delete remote-tracking branches. Note, that it\n only makes sense to delete remote-tracking branches if they no longer exist\n-in the remote repository or if 'git fetch' was configured not to fetch\n-them again. See also the 'prune' subcommand of linkgit:git-remote[1] for a\n+in the remote repository or if `git fetch` was configured not to fetch\n+them again. See also the `prune` subcommand of linkgit:git-remote[1] for a\n way to clean up all obsolete remote-tracking branches.\n \n \n OPTIONS\n -------\n--d::\n---delete::\n+`-d`::\n+`--delete`::\n \tDelete a branch. The branch must be fully merged in its\n \tupstream branch, or in `HEAD` if no upstream was set with\n \t`--track` or `--set-upstream-to`.\n \n--D::\n+`-D`::\n \tShortcut for `--delete --force`.\n \n---create-reflog::\n+`--create-reflog`::\n \tCreate the branch's reflog.  This activates recording of\n \tall changes made to the branch ref, enabling use of date\n-\tbased sha1 expressions such as \"<branchname>@\\{yesterday}\".\n+\tbased sha1 expressions such as `<branch-name>@{yesterday}`.\n \tNote that in non-bare repositories, reflogs are usually\n \tenabled by default by the `core.logAllRefUpdates` config option.\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--f::\n---force::\n-\tReset <branchname> to <start-point>, even if <branchname> exists\n-\talready. Without `-f`, 'git branch' refuses to change an existing branch.\n+`-f`::\n+`--force`::\n+\tReset _<branch-name>_ to _<start-point>_, even if _<branch-name>_ exists\n+\talready. Without `-f`, `git branch` refuses to change an existing branch.\n \tIn combination with `-d` (or `--delete`), allow deleting the\n \tbranch irrespective of its merged status, or whether it even\n \tpoints to a valid commit. In combination with\n \t`-m` (or `--move`), allow renaming the branch even if the new\n \tbranch name already exists, the same applies for `-c` (or `--copy`).\n +\n-Note that 'git branch -f <branchname> [<start-point>]', even with '-f',\n-refuses to change an existing branch `<branchname>` that is checked out\n+Note that `git branch -f <branch-name> [<start-point>]`, even with `-f`,\n+refuses to change an existing branch _<branch-name>_ that is checked out\n in another worktree linked to the same repository.\n \n--m::\n---move::\n+`-m`::\n+`--move`::\n \tMove/rename a branch, together with its config and reflog.\n \n--M::\n+`-M`::\n \tShortcut for `--move --force`.\n \n--c::\n---copy::\n+`-c`::\n+`--copy`::\n \tCopy a branch, together with its config and reflog.\n \n--C::\n+`-C`::\n \tShortcut for `--copy --force`.\n \n---color[=<when>]::\n+`--color[=<when>]`::\n \tColor branches to highlight current, local, and\n \tremote-tracking branches.\n-\tThe value must be always (the default), never, or auto.\n+\tThe value must be `always` (the default), `never`, or `auto`.\n \n---no-color::\n+`--no-color`::\n \tTurn off branch colors, even when the configuration file gives the\n \tdefault to color output.\n \tSame as `--color=never`.\n \n--i::\n---ignore-case::\n+`-i`::\n+`--ignore-case`::\n \tSorting and filtering branches 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 branch listing in columns. See configuration variable\n \t`column.branch` 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 in non-verbose mode.\n \n--r::\n---remotes::\n-\tList or delete (if used with -d) the remote-tracking branches.\n+`--sort=<key>`::\n+\tSort based on _<key>_. Prefix `-` to sort in descending\n+\torder of the value. You may use the `--sort=<key>` option\n+\tmultiple times, in which case the last key becomes the primary\n+\tkey. The keys supported are the same as those in linkgit:git-for-each-ref[1].\n+\tSort order defaults to the value configured for the\n+\t`branch.sort` variable if it exists, or to sorting based on the\n+\tfull refname (including `refs/...` prefix). This lists\n+\tdetached `HEAD` (if present) first, then local branches and\n+\tfinally remote-tracking branches. See linkgit:git-config[1].\n+\n+`-r`::\n+`--remotes`::\n+\tList or delete (if used with `-d`) the remote-tracking branches.\n \tCombine with `--list` to match the optional pattern(s).\n \n--a::\n---all::\n+`-a`::\n+`--all`::\n \tList both remote-tracking branches and local branches.\n \tCombine with `--list` to match optional pattern(s).\n \n--l::\n---list::\n+`-l`::\n+`--list`::\n \tList branches.  With optional `<pattern>...`, e.g. `git\n \tbranch --list 'maint-*'`, list only the branches that match\n \tthe pattern(s).\n \n---show-current::\n-\tPrint the name of the current branch. In detached HEAD state,\n+`--show-current`::\n+\tPrint the name of the current branch. In detached `HEAD` state,\n \tnothing is printed.\n \n--v::\n--vv::\n---verbose::\n+`-v`::\n+`-vv`::\n+`--verbose`::\n \tWhen in list mode,\n \tshow sha1 and commit subject line for each head, along with\n \trelationship to upstream branch (if any). If given twice, print\n \tthe path of the linked worktree (if any) and the name of the upstream\n \tbranch, as well (see also `git remote show <remote>`).  Note that the\n-\tcurrent worktree's HEAD will not have its path printed (it will always\n+\tcurrent worktree's `HEAD` will not have its path printed (it will always\n \tbe your current directory).\n \n--q::\n---quiet::\n+`-q`::\n+`--quiet`::\n \tBe more quiet when creating or deleting a branch, suppressing\n \tnon-error messages.\n \n---abbrev=<n>::\n+`--abbrev=<n>`::\n \tIn the verbose listing that show the commit object name,\n-\tshow the shortest prefix that is at least '<n>' hexdigits\n+\tshow the shortest prefix that is at least _<n>_ hexdigits\n \tlong that uniquely refers the object.\n \tThe default value is 7 and can be overridden by the `core.abbrev`\n \tconfig option.\n \n---no-abbrev::\n+`--no-abbrev`::\n \tDisplay the full sha1s in the output listing rather than abbreviating them.\n \n--t::\n---track[=(direct|inherit)]::\n+`-t`::\n+`--track[=(direct|inherit)]`::\n \tWhen creating a new branch, set up `branch.<name>.remote` and\n \t`branch.<name>.merge` configuration entries to set \"upstream\" tracking\n \tconfiguration for the new branch. This\n@@ -229,7 +240,7 @@ The exact upstream branch is chosen depending on the optional argument:\n itself as the upstream; `--track=inherit` means to copy the upstream\n configuration of the start-point branch.\n +\n-The branch.autoSetupMerge configuration variable specifies how `git switch`,\n+The `branch.autoSetupMerge` configuration variable specifies how `git switch`,\n `git checkout` and `git branch` should behave when neither `--track` nor\n `--no-track` are specified:\n +\n@@ -238,106 +249,94 @@ were given whenever the start-point is a remote-tracking branch.\n `false` behaves as if `--no-track` were given. `always` behaves as though\n `--track=direct` were given. `inherit` behaves as though `--track=inherit`\n were given. `simple` behaves as though `--track=direct` were given only when\n-the start-point is a remote-tracking branch and the new branch has the same\n+the _<start-point>_ is a remote-tracking branch and the new branch has the same\n name as the remote branch.\n +\n See linkgit:git-pull[1] and linkgit:git-config[1] for additional discussion on\n how the `branch.<name>.remote` and `branch.<name>.merge` options are used.\n \n---no-track::\n+`--no-track`::\n \tDo not set up \"upstream\" configuration, even if the\n-\tbranch.autoSetupMerge configuration variable is set.\n+\t`branch.autoSetupMerge` configuration variable is set.\n \n---recurse-submodules::\n-\tTHIS OPTION IS EXPERIMENTAL! Causes the current command to\n+`--recurse-submodules`::\n+\tTHIS OPTION IS EXPERIMENTAL! Cause the current command to\n \trecurse into submodules if `submodule.propagateBranches` is\n \tenabled. See `submodule.propagateBranches` in\n \tlinkgit:git-config[1]. Currently, only branch creation is\n \tsupported.\n +\n-When used in branch creation, a new branch <branchname> will be created\n+When used in branch creation, a new branch _<branch-name>_ will be created\n in the superproject and all of the submodules in the superproject's\n-<start-point>. In submodules, the branch will point to the submodule\n-commit in the superproject's <start-point> but the branch's tracking\n+_<start-point>_. In submodules, the branch will point to the submodule\n+commit in the superproject's _<start-point>_ but the branch's tracking\n information will be set up based on the submodule's branches and remotes\n e.g. `git branch --recurse-submodules topic origin/main` will create the\n submodule branch \"topic\" that points to the submodule commit in the\n superproject's \"origin/main\", but tracks the submodule's \"origin/main\".\n \n---set-upstream::\n+`--set-upstream`::\n \tAs this option had confusing syntax, it is no longer supported.\n \tPlease use `--track` or `--set-upstream-to` instead.\n \n--u <upstream>::\n---set-upstream-to=<upstream>::\n-\tSet up <branchname>'s tracking information so <upstream> is\n-\tconsidered <branchname>'s upstream branch. If no <branchname>\n+`-u <upstream>`::\n+`--set-upstream-to=<upstream>`::\n+\tSet up _<branch-name>_'s tracking information so _<upstream>_ is\n+\tconsidered _<branch-name>_'s upstream branch. If no _<branch-name>_\n \tis specified, then it defaults to the current branch.\n \n---unset-upstream::\n-\tRemove the upstream information for <branchname>. If no branch\n+`--unset-upstream`::\n+\tRemove the upstream information for _<branch-name>_. If no branch\n \tis specified it defaults to the current branch.\n \n---edit-description::\n+`--edit-description`::\n \tOpen an editor and edit the text to explain what the branch is\n \tfor, to be used by various other commands (e.g. `format-patch`,\n \t`request-pull`, and `merge` (if enabled)). Multi-line explanations\n \tmay be used.\n \n---contains [<commit>]::\n-\tOnly list branches which contain the specified commit (HEAD\n+`--contains [<commit>]`::\n+\tOnly list branches which contain _<commit>_ (`HEAD`\n \tif not specified). Implies `--list`.\n \n---no-contains [<commit>]::\n-\tOnly list branches which don't contain the specified commit\n-\t(HEAD if not specified). Implies `--list`.\n+`--no-contains [<commit>]`::\n+\tOnly list branches which don't contain _<commit>_\n+\t(`HEAD` if not specified). Implies `--list`.\n \n---merged [<commit>]::\n-\tOnly list branches whose tips are reachable from the\n-\tspecified commit (HEAD if not specified). Implies `--list`.\n+`--merged [<commit>]`::\n+\tOnly list branches whose tips are reachable from\n+\t_<commit>_ (`HEAD` if not specified). Implies `--list`.\n \n---no-merged [<commit>]::\n-\tOnly list branches whose tips are not reachable from the\n-\tspecified commit (HEAD if not specified). Implies `--list`.\n+`--no-merged [<commit>]`::\n+\tOnly list branches whose tips are not reachable from\n+\t_<commit>_ (`HEAD` if not specified). Implies `--list`.\n \n-<branchname>::\n+`--points-at <object>`::\n+\tOnly list branches of _<object>_.\n+\n+`--format <format>`::\n+\tA string that interpolates `%(fieldname)` from a branch ref being shown\n+\tand the object it points at.  _<format>_ is the same as\n+\tthat of linkgit:git-for-each-ref[1].\n+\n+_<branch-name>_::\n \tThe name of the branch to create or delete.\n \tThe new branch 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 branch name.\n \n-<start-point>::\n+_<start-point>_::\n \tThe new branch head will point to this commit.  It may be\n \tgiven as a branch name, a commit-id, or a tag.  If this\n-\toption is omitted, the current HEAD will be used instead.\n+\toption is omitted, the current `HEAD` will be used instead.\n \n-<oldbranch>::\n+_<old-branch>_::\n \tThe name of an existing branch.  If this option is omitted,\n \tthe name of the current branch will be used instead.\n \n-<newbranch>::\n+_<new-branch>_::\n \tThe new name for an existing branch. The same restrictions as for\n-\t<branchname> apply.\n-\n---sort=<key>::\n-\tSort based on the key given. Prefix `-` to sort in descending\n-\torder of the value. You may use the --sort=<key> option\n-\tmultiple times, in which case the last key becomes the primary\n-\tkey. The keys supported are the same as those in `git\n-\tfor-each-ref`. Sort order defaults to the value configured for the\n-\t`branch.sort` variable if it exists, or to sorting based on the\n-\tfull refname (including `refs/...` prefix). This lists\n-\tdetached HEAD (if present) first, then local branches and\n-\tfinally remote-tracking branches. See linkgit:git-config[1].\n-\n-\n---points-at <object>::\n-\tOnly list branches of the given object.\n-\n---format <format>::\n-\tA string that interpolates `%(fieldname)` from a branch 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].\n+\t_<branch-name>_ apply.\n \n CONFIGURATION\n -------------\n@@ -374,7 +373,7 @@ $ git branch -D test                                    <2>\n ------------\n +\n <1> Delete the remote-tracking branches \"todo\", \"html\" and \"man\". The next\n-    'fetch' or 'pull' will create them again unless you configure them not to.\n+    `git fetch` or `git pullè will create them again unless you configure them not to.\n     See linkgit:git-fetch[1].\n <2> Delete the \"test\" branch even if the \"master\" branch (or whichever branch\n     is currently checked out) does not have all commits from the test branch.\n@@ -386,8 +385,8 @@ $ git branch -r -l '<remote>/<pattern>'                 <1>\n $ git for-each-ref 'refs/remotes/<remote>/<pattern>'    <2>\n ------------\n +\n-<1> Using `-a` would conflate <remote> with any local branches you happen to\n-    have been prefixed with the same <remote> pattern.\n+<1> Using `-a` would conflate _<remote>_ with any local branches you happen to\n+    have been prefixed with the same _<remote>_ pattern.\n <2> `for-each-ref` can take a wide range of options. See linkgit:git-for-each-ref[1]\n \n Patterns will normally need quoting.\n@@ -396,24 +395,24 @@ NOTES\n -----\n \n If you are creating a branch that you want to switch to immediately,\n-it is easier to use the \"git switch\" command with its `-c` option to\n+it is easier to use the `git switch` command with its `-c` option to\n do the same thing with a single command.\n \n The options `--contains`, `--no-contains`, `--merged` and `--no-merged`\n serve four related but different purposes:\n \n - `--contains <commit>` is used to find all branches which will need\n-  special attention if <commit> were to be rebased or amended, since those\n-  branches contain the specified <commit>.\n+  special attention if _<commit>_ were to be rebased or amended, since those\n+  branches contain the specified _<commit>_.\n \n - `--no-contains <commit>` is the inverse of that, i.e. branches that don't\n-  contain the specified <commit>.\n+  contain the specified _<commit>_.\n \n - `--merged` is used to find all branches which can be safely deleted,\n-  since those branches are fully contained by HEAD.\n+  since those branches are fully contained by `HEAD`.\n \n - `--no-merged` is used to find branches which are candidates for merging\n-  into HEAD, since those branches are not fully contained by HEAD.\n+  into `HEAD`, since those branches are not fully contained by `HEAD`.\n \n include::ref-reachability-filters.adoc[]\n \n@@ -422,8 +421,8 @@ SEE ALSO\n linkgit:git-check-ref-format[1],\n linkgit:git-fetch[1],\n linkgit:git-remote[1],\n-link:user-manual.html#what-is-a-branch[``Understanding history: What is\n-a branch?''] in the Git User's Manual.\n+link:user-manual.html#what-is-a-branch[\"Understanding history: What is\n+a branch?\"] in the Git User's Manual.\n \n GIT\n ---\n-- \ngitgitgadget\n"},{"id":"514434","messageId":"xmqqplif8jnm.fsf@gitster.g","threadId":"63139","inReplyTo":"f8883d83f3096ce16e5dfc9647a41970396693f4.1742056310.git.gitgitgadget@gmail.com","subject":"Re: [PATCH 1/2] completion: take into account the formatting backticks for options","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2025-03-17T20:52:13Z","receivedAt":"2025-03-17T20:52:16Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"\"Jean-Noël Avila via GitGitGadget\" <gitgitgadget@gmail.com> writes:\n\n> From: =?UTF-8?q?Jean-No=C3=ABl=20Avila?= <jn.avila@free.fr>\n>\n> With the modern formatting of the manpages, the options and commands are now\n> backticked in their definition lists. This patch updates the generation of\n> the completion list to take into account this new format.\n>\n> Signed-off-by: Jean-Noël Avila <jn.avila@free.fr>\n> ---\n>  generate-configlist.sh | 4 ++--\n>  1 file changed, 2 insertions(+), 2 deletions(-)\n>\n> diff --git a/generate-configlist.sh b/generate-configlist.sh\n> index dffdaada8b5..802178daad4 100755\n> --- a/generate-configlist.sh\n> +++ b/generate-configlist.sh\n> @@ -13,8 +13,8 @@ print_config_list () {\n>  \tcat <<EOF\n>  static const char *config_name_list[] = {\n>  EOF\n> -\tgrep -h '^[a-zA-Z].*\\..*::$' \"$SOURCE_DIR\"/Documentation/*config.adoc \"$SOURCE_DIR\"/Documentation/config/*.adoc |\n> -\tsed '/deprecated/d; s/::$//; s/,  */\\n/g' |\n> +\tgrep -h '^`\\?[a-zA-Z].*\\..*`\\?::$' \"$SOURCE_DIR\"/Documentation/*config.adoc \"$SOURCE_DIR\"/Documentation/config/*.adoc |\n\nUsing \\? in BRE as a short-hand for \\{0,1\\} (or trying to use any\nsingle regexp magic in BRE by adding a backslash when that magic is\nonly available in ERE) is a GNUism, isn't it?\n\nWe probably should rewrite the thing as ERE, perhaps like\n\n\tgrep -E -h '^`?[a-zA-Z].*\\..*`?::$' ...\n\nAlso, if we can avoid piping grep into sed or awk, we should do so,\nwhen it does not lose readability.  Perhaps we can do something like\n\n\tsed -E -n -e '/... that pattern .../{\n\t\t/deprecated/d;\n\t\ts/::$//;\n\t\t...\n\t}' \"$SOURCE_DIR\"/Documentation/*config.adoc ... |\n        sort |\n\t...\n\nin this case?\n\n> +\tsed '/deprecated/d; s/::$//; s/`//g; s/,  */\\n/g' |\n>  \tsort |\n>  \tsed 's/^.*$/\t\"&\",/'\n>  \tcat <<EOF\n"},{"id":"514438","messageId":"xmqqjz8n8hol.fsf@gitster.g","threadId":"63139","inReplyTo":"b2e7867006e1800eb6dc52902006998afd5800cc.1742056310.git.gitgitgadget@gmail.com","subject":"Re: [PATCH 2/2] doc: apply new format to git-branch man page","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2025-03-17T21:34:50Z","receivedAt":"2025-03-17T21:34:52Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"\"Jean-Noël Avila via GitGitGadget\" <gitgitgadget@gmail.com> writes:\n\n> From: =?UTF-8?q?Jean-No=C3=ABl=20Avila?= <jn.avila@free.fr>\n>\n> - Switch the synopsis to a synopsis block which automatically\n>   formats 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 applies synopsis rules to\n> these spans.\n\nAnd the one effective reformatting in this patch that is not covered\nby the list is that the possible values for some variables, that\nwere mentioned in the description prose, are now made into\nenumerated list.\n\nNicely done.\n"},{"id":"514491","messageId":"2773494.mvXUDI8C0e@cayenne","threadId":"63139","inReplyTo":"xmqqplif8jnm.fsf@gitster.g","subject":"Re: [PATCH 1/2] completion: take into account the formatting backticks for options","fromName":"Jean-Noël AVILA","fromEmail":"jn.avila@free.fr","sentAt":"2025-03-18T03:58:51Z","receivedAt":"2025-03-18T03:59:05Z","isPatch":true,"sender":{"key":"jn.avila@free.fr","avatar":"https://avatars.githubusercontent.com/u/156172?v=4"},"body":"On Monday, 17 March 2025 21:52:13 CET Junio C Hamano wrote:\n> \"Jean-Noël Avila via GitGitGadget\" <gitgitgadget@gmail.com> writes:\n> > From: =?UTF-8?q?Jean-No=C3=ABl=20Avila?= <jn.avila@free.fr>\n> > \n> > With the modern formatting of the manpages, the options and commands are \nnow\n> > backticked in their definition lists. This patch updates the generation of\n> > the completion list to take into account this new format.\n> > \n> > Signed-off-by: Jean-Noël Avila <jn.avila@free.fr>\n> > ---\n> > \n> >  generate-configlist.sh | 4 ++--\n> >  1 file changed, 2 insertions(+), 2 deletions(-)\n> > \n> > diff --git a/generate-configlist.sh b/generate-configlist.sh\n> > index dffdaada8b5..802178daad4 100755\n> > --- a/generate-configlist.sh\n> > +++ b/generate-configlist.sh\n> > @@ -13,8 +13,8 @@ print_config_list () {\n> > \n> >  \tcat <<EOF\n> >  \n> >  static const char *config_name_list[] = {\n> >  EOF\n> > \n> > -\tgrep -h '^[a-zA-Z].*\\..*::$' \"$SOURCE_DIR\"/Documentation/\n*config.adoc\n> > \"$SOURCE_DIR\"/Documentation/config/*.adoc | -\tsed '/deprecated/d; s/::$//;\n> > s/,  */\\n/g' |\n> > +\tgrep -h '^`\\?[a-zA-Z].*\\..*`\\?::$'\n> > \"$SOURCE_DIR\"/Documentation/*config.adoc\n> > \"$SOURCE_DIR\"/Documentation/config/*.adoc |\n> Using \\? in BRE as a short-hand for \\{0,1\\} (or trying to use any\n> single regexp magic in BRE by adding a backslash when that magic is\n> only available in ERE) is a GNUism, isn't it?\n> \n> We probably should rewrite the thing as ERE, perhaps like\n> \n> \tgrep -E -h '^`?[a-zA-Z].*\\..*`?::$' ...\n> \n> Also, if we can avoid piping grep into sed or awk, we should do so,\n> when it does not lose readability.  Perhaps we can do something like\n> \n> \tsed -E -n -e '/... that pattern .../{\n> \t\t/deprecated/d;\n> \t\ts/::$//;\n> \t\t...\n> \t}' \"$SOURCE_DIR\"/Documentation/*config.adoc ... |\n>         sort |\n> \t...\n> \n> in this case?\n\nFor the GNUism, the tests on MacOS and Windows by gitgitgadget passed. But I \nget your point and will reroll.\n\n\n\n\n"},{"id":"514494","messageId":"xmqq1puv55y7.fsf@gitster.g","threadId":"63139","inReplyTo":"2773494.mvXUDI8C0e@cayenne","subject":"Re: [PATCH 1/2] completion: take into account the formatting backticks for options","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2025-03-18T04:16:32Z","receivedAt":"2025-03-18T04:16:35Z","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> For the GNUism, the tests on MacOS and Windows by gitgitgadget passed. But I \n> get your point and will reroll.\n\nIs there a good test in our test suite that validates the output of\nthis script?  I had an impression that even if the regexp match by\nthis grep were a bit off, the only end-user visible effect of such a\nbreakage is that some entries from config_name_list[] may be missing\nwhen \"git help --config-for-completion\" is called, but I do not\nthink of any sensible way to notice that some entries are missing or\nextra entries exist in the output.  So unless the regexp is broken\nso badly that makes the resulting config-list.h syntactically\nincorrect, it is unlikely that our test suite would catch anything,\nI suspect.\n\nIf I deliberately break the regexp (this is before your patch), it\ndoes not seem to break t0012 (which uses --config-for-completion).\n\n generate-configlist.sh | 2 +-\n 1 file changed, 1 insertion(+), 1 deletion(-)\n\ndiff --git c/generate-configlist.sh w/generate-configlist.sh\nindex dffdaada8b..a6eb9739ea 100755\n--- c/generate-configlist.sh\n+++ w/generate-configlist.sh\n@@ -13,7 +13,7 @@ print_config_list () {\n \tcat <<EOF\n static const char *config_name_list[] = {\n EOF\n-\tgrep -h '^[a-zA-Z].*\\..*::$' \"$SOURCE_DIR\"/Documentation/*config.adoc \"$SOURCE_DIR\"/Documentation/config/*.adoc |\n+\tgrep -h '^[a-uA-Z].*\\..*::$' \"$SOURCE_DIR\"/Documentation/*config.adoc \"$SOURCE_DIR\"/Documentation/config/*.adoc |\n \tsed '/deprecated/d; s/::$//; s/,  */\\n/g' |\n \tsort |\n \tsed 's/^.*$/\t\"&\",/'\n\n\n\n"},{"id":"514495","messageId":"2361196.ElGaqSPkdT@cayenne","threadId":"63139","inReplyTo":"xmqq1puv55y7.fsf@gitster.g","subject":"Re: [PATCH 1/2] completion: take into account the formatting backticks for options","fromName":"Jean-Noël AVILA","fromEmail":"jn.avila@free.fr","sentAt":"2025-03-18T04:27:22Z","receivedAt":"2025-03-18T04:27:26Z","isPatch":true,"sender":{"key":"jn.avila@free.fr","avatar":"https://avatars.githubusercontent.com/u/156172?v=4"},"body":"On Tuesday, 18 March 2025 05:16:32 CET Junio C Hamano wrote:\n> Jean-Noël AVILA <jn.avila@free.fr> writes:\n> > For the GNUism, the tests on MacOS and Windows by gitgitgadget passed. But \nI\n> > get your point and will reroll.\n> \n> Is there a good test in our test suite that validates the output of\n> this script?  I had an impression that even if the regexp match by\n> this grep were a bit off, the only end-user visible effect of such a\n> breakage is that some entries from config_name_list[] may be missing\n> when \"git help --config-for-completion\" is called, but I do not\n> think of any sensible way to notice that some entries are missing or\n> extra entries exist in the output.  So unless the regexp is broken\n> so badly that makes the resulting config-list.h syntactically\n> incorrect, it is unlikely that our test suite would catch anything,\n> I suspect.\n> \n> If I deliberately break the regexp (this is before your patch), it\n> does not seem to break t0012 (which uses --config-for-completion).\n> \n\nI noticed the bug when working with git-branch's doc, because it broke t9902 \nwhich specifically tests completion for 'git config get br' and could no longer \nfind the 'branch.'  So the tests have eventually found the regression when the \nformatting went a little more widespread.\n\nAs for a way to validate the content of the script, I can only think of \ncommitting the config-list.h and checking when the contents diverge.\n\n \n\n\n"},{"id":"514619","messageId":"pull.1880.v2.git.1742372183.gitgitgadget@gmail.com","threadId":"63139","inReplyTo":"pull.1880.git.1742056310.gitgitgadget@gmail.com","subject":"[PATCH v2 0/2] doc: apply new format to git-branch man page","fromName":"Jean-Noël Avila via GitGitGadget","fromEmail":"gitgitgadget@gmail.com","sentAt":"2025-03-19T08:16:21Z","receivedAt":"2025-03-19T08:16:26Z","isPatch":true,"sender":{"key":"jn.avila@free.fr","avatar":"https://avatars.githubusercontent.com/u/156172?v=4"},"body":"Working on git-branch's doc uncovered a bug in the completion logic that did\nnot take into account the new formatting of options. Apart from that, the\nchanges are quite standard now.\n\nChanges since V1:\n\n * rework commit messages\n * De-GNU-ify and simplify script\n\nJean-Noël Avila (2):\n  completion: take into account the formatting backticks for options\n  doc: apply new format to git-branch man page\n\n Documentation/config/branch.adoc | 105 +++++------\n Documentation/git-branch.adoc    | 287 +++++++++++++++----------------\n generate-configlist.sh           |  16 +-\n 3 files changed, 208 insertions(+), 200 deletions(-)\n\n\nbase-commit: 683c54c999c301c2cd6f715c411407c413b1d84e\nPublished-As: https://github.com/gitgitgadget/git/releases/tag/pr-1880%2Fjnavila%2Fdoc_git_branch-v2\nFetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1880/jnavila/doc_git_branch-v2\nPull-Request: https://github.com/gitgitgadget/git/pull/1880\n\nRange-diff vs v1:\n\n 1:  f8883d83f30 ! 1:  cd907cc4ff4 completion: take into account the formatting backticks for options\n     @@ Commit message\n          backticked in their definition lists. This patch updates the generation of\n          the completion list to take into account this new format.\n      \n     +    The script `generate-configlist.sh` is updated to get rid of extraneous\n     +    commands and fit everything in a single sed script.\n     +\n          Signed-off-by: Jean-Noël Avila <jn.avila@free.fr>\n      \n       ## generate-configlist.sh ##\n     @@ generate-configlist.sh: print_config_list () {\n       EOF\n      -\tgrep -h '^[a-zA-Z].*\\..*::$' \"$SOURCE_DIR\"/Documentation/*config.adoc \"$SOURCE_DIR\"/Documentation/config/*.adoc |\n      -\tsed '/deprecated/d; s/::$//; s/,  */\\n/g' |\n     -+\tgrep -h '^`\\?[a-zA-Z].*\\..*`\\?::$' \"$SOURCE_DIR\"/Documentation/*config.adoc \"$SOURCE_DIR\"/Documentation/config/*.adoc |\n     -+\tsed '/deprecated/d; s/::$//; s/`//g; s/,  */\\n/g' |\n     - \tsort |\n     - \tsed 's/^.*$/\t\"&\",/'\n     +-\tsort |\n     +-\tsed 's/^.*$/\t\"&\",/'\n     ++\tsed -E '\n     ++/^`?[a-zA-Z].*\\..*`?::$/ {\n     ++\t/deprecated/d;\n     ++\ts/::$//;\n     ++\ts/`//g;\n     ++\ts/^.*$/\t\"&\",/;\n     ++\ts/,  */\",\\n\t\"/g;\n     ++\tp;};\n     ++d' \\\n     ++\t    \"$SOURCE_DIR\"/Documentation/*config.adoc \\\n     ++\t    \"$SOURCE_DIR\"/Documentation/config/*.adoc|\n     ++\tsort\n       \tcat <<EOF\n     + \tNULL,\n     + };\n 2:  b2e7867006e ! 2:  a22ae89dcd0 doc: apply new format to git-branch man page\n     @@ Commit message\n          descriptions. The new rendering engine applies synopsis rules to\n          these spans.\n      \n     +    Possible values for some variables, that were mentioned in the description\n     +    prose, are now made into enumerated list.\n     +\n          Signed-off-by: Jean-Noël Avila <jn.avila@free.fr>\n      \n       ## Documentation/config/branch.adoc ##\n\n-- \ngitgitgadget\n"},{"id":"514620","messageId":"cd907cc4ff4f05ccb6ae98ad52c0f3382a9b4f0e.1742372183.git.gitgitgadget@gmail.com","threadId":"63139","inReplyTo":"pull.1880.v2.git.1742372183.gitgitgadget@gmail.com","subject":"[PATCH v2 1/2] completion: take into account the formatting backticks for options","fromName":"Jean-Noël Avila via GitGitGadget","fromEmail":"gitgitgadget@gmail.com","sentAt":"2025-03-19T08:16:22Z","receivedAt":"2025-03-19T08:16:27Z","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\nWith the modern formatting of the manpages, the options and commands are now\nbackticked in their definition lists. This patch updates the generation of\nthe completion list to take into account this new format.\n\nThe script `generate-configlist.sh` is updated to get rid of extraneous\ncommands and fit everything in a single sed script.\n\nSigned-off-by: Jean-Noël Avila <jn.avila@free.fr>\n---\n generate-configlist.sh | 16 ++++++++++++----\n 1 file changed, 12 insertions(+), 4 deletions(-)\n\ndiff --git a/generate-configlist.sh b/generate-configlist.sh\nindex dffdaada8b5..b06da53c891 100755\n--- a/generate-configlist.sh\n+++ b/generate-configlist.sh\n@@ -13,10 +13,18 @@ print_config_list () {\n \tcat <<EOF\n static const char *config_name_list[] = {\n EOF\n-\tgrep -h '^[a-zA-Z].*\\..*::$' \"$SOURCE_DIR\"/Documentation/*config.adoc \"$SOURCE_DIR\"/Documentation/config/*.adoc |\n-\tsed '/deprecated/d; s/::$//; s/,  */\\n/g' |\n-\tsort |\n-\tsed 's/^.*$/\t\"&\",/'\n+\tsed -E '\n+/^`?[a-zA-Z].*\\..*`?::$/ {\n+\t/deprecated/d;\n+\ts/::$//;\n+\ts/`//g;\n+\ts/^.*$/\t\"&\",/;\n+\ts/,  */\",\\n\t\"/g;\n+\tp;};\n+d' \\\n+\t    \"$SOURCE_DIR\"/Documentation/*config.adoc \\\n+\t    \"$SOURCE_DIR\"/Documentation/config/*.adoc|\n+\tsort\n \tcat <<EOF\n \tNULL,\n };\n-- \ngitgitgadget\n\n"},{"id":"514621","messageId":"a22ae89dcd04ea289a13996311db27d32a550f9a.1742372183.git.gitgitgadget@gmail.com","threadId":"63139","inReplyTo":"pull.1880.v2.git.1742372183.gitgitgadget@gmail.com","subject":"[PATCH v2 2/2] doc: apply new format to git-branch man page","fromName":"Jean-Noël Avila via GitGitGadget","fromEmail":"gitgitgadget@gmail.com","sentAt":"2025-03-19T08:16:23Z","receivedAt":"2025-03-19T08:16:28Z","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 automatically\n  formats 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 applies synopsis rules to\nthese spans.\n\nPossible values for some variables, that were mentioned in the description\nprose, are now made into enumerated list.\n\nSigned-off-by: Jean-Noël Avila <jn.avila@free.fr>\n---\n Documentation/config/branch.adoc | 105 +++++------\n Documentation/git-branch.adoc    | 287 +++++++++++++++----------------\n 2 files changed, 196 insertions(+), 196 deletions(-)\n\ndiff --git a/Documentation/config/branch.adoc b/Documentation/config/branch.adoc\nindex 432b9cd2c0e..e35ea7ac640 100644\n--- a/Documentation/config/branch.adoc\n+++ b/Documentation/config/branch.adoc\n@@ -1,41 +1,42 @@\n-branch.autoSetupMerge::\n-\tTells 'git branch', 'git switch' and 'git checkout' to set up new branches\n+`branch.autoSetupMerge`::\n+\tTells `git branch`, `git switch` and `git checkout` to set up new branches\n \tso that linkgit:git-pull[1] will appropriately merge from the\n \tstarting point branch. Note that even if this option is not set,\n \tthis behavior can be chosen per-branch using the `--track`\n-\tand `--no-track` options. The valid settings are: `false` -- no\n-\tautomatic setup is done; `true` -- automatic setup is done when the\n-\tstarting point is a remote-tracking branch; `always` --\n-\tautomatic setup is done when the starting point is either a\n-\tlocal branch or remote-tracking branch; `inherit` -- if the starting point\n-\thas a tracking configuration, it is copied to the new\n-\tbranch; `simple` -- automatic setup is done only when the starting point\n+\tand `--no-track` options.  This option defaults to `true`. The valid settings\n+\tare:\n+`false`;; no automatic setup is done\n+`true`;; automatic setup is done when the starting point is a remote-tracking branch\n+`always`;; automatic setup is done when the starting point is either a\n+\tlocal branch or remote-tracking branch\n+`inherit`;; if the starting point has a tracking configuration, it is copied to the new\n+\tbranch\n+`simple`;; automatic setup is done only when the starting point\n \tis a remote-tracking branch and the new branch has the same name as the\n-\tremote branch. This option defaults to true.\n+\tremote branch.\n \n-branch.autoSetupRebase::\n-\tWhen a new branch is created with 'git branch', 'git switch' or 'git checkout'\n+`branch.autoSetupRebase`::\n+\tWhen a new branch is created with `git branch`, `git switch` or `git checkout`\n \tthat tracks another branch, this variable tells Git to set\n-\tup pull to rebase instead of merge (see \"branch.<name>.rebase\").\n-\tWhen `never`, rebase is never automatically set to true.\n-\tWhen `local`, rebase is set to true for tracked branches of\n-\tother local branches.\n-\tWhen `remote`, rebase is set to true for tracked branches of\n-\tremote-tracking branches.\n-\tWhen `always`, rebase will be set to true for all tracking\n-\tbranches.\n-\tSee \"branch.autoSetupMerge\" for details on how to set up a\n-\tbranch to track another branch.\n-\tThis option defaults to never.\n+\tup pull to rebase instead of merge (see `branch.<name>.rebase`).\n+\tThe valid settings are:\n+`never`;; rebase is never automatically set to true.\n+`local`;; rebase is set to true for tracked branches of other local branches.\n+`remote`;; rebase is set to true for tracked branches of remote-tracking branches.\n+`always`;; rebase will be set to true for all tracking branches.\n \n-branch.sort::\n++\n+See `branch.autoSetupMerge` for details on how to set up a branch to track another branch.\n+This option defaults to `never`.\n+\n+`branch.sort`::\n \tThis variable controls the sort ordering of branches when displayed by\n-\tlinkgit:git-branch[1]. Without the \"--sort=<value>\" option provided, the\n+\tlinkgit:git-branch[1]. Without the `--sort=<value>` option provided, the\n \tvalue of this variable will be used as the default.\n \tSee linkgit:git-for-each-ref[1] field names for valid values.\n \n-branch.<name>.remote::\n-\tWhen on branch <name>, it tells 'git fetch' and 'git push'\n+`branch.<name>.remote`::\n+\tWhen on branch _<name>_, it tells `git fetch` and `git push`\n \twhich remote to fetch from or push to.  The remote to push to\n \tmay be overridden with `remote.pushDefault` (for all branches).\n \tThe remote to push to, for the current branch, may be further\n@@ -46,58 +47,58 @@ branch.<name>.remote::\n \tAdditionally, `.` (a period) is the current local repository\n \t(a dot-repository), see `branch.<name>.merge`'s final note below.\n \n-branch.<name>.pushRemote::\n-\tWhen on branch <name>, it overrides `branch.<name>.remote` for\n+`branch.<name>.pushRemote`::\n+\tWhen on branch _<name>_, it overrides `branch.<name>.remote` for\n \tpushing.  It also overrides `remote.pushDefault` for pushing\n-\tfrom branch <name>.  When you pull from one place (e.g. your\n+\tfrom branch _<name>_.  When you pull from one place (e.g. your\n \tupstream) and push to another place (e.g. your own publishing\n \trepository), you would want to set `remote.pushDefault` to\n \tspecify the remote to push to for all branches, and use this\n \toption to override it for a specific branch.\n \n-branch.<name>.merge::\n-\tDefines, together with branch.<name>.remote, the upstream branch\n-\tfor the given branch. It tells 'git fetch'/'git pull'/'git rebase' which\n-\tbranch to merge and can also affect 'git push' (see push.default).\n-\tWhen in branch <name>, it tells 'git fetch' the default\n-\trefspec to be marked for merging in FETCH_HEAD. The value is\n+`branch.<name>.merge`::\n+\tDefines, together with `branch.<name>.remote`, the upstream branch\n+\tfor the given branch. It tells `git fetch`/`git pull`/`git rebase` which\n+\tbranch to merge and can also affect `git push` (see `push.default`).\n+\tWhen in branch _<name>_, it tells `git fetch` the default\n+\trefspec to be marked for merging in `FETCH_HEAD`. The value is\n \thandled like the remote part of a refspec, and must match a\n \tref which is fetched from the remote given by\n-\t\"branch.<name>.remote\".\n-\tThe merge information is used by 'git pull' (which first calls\n-\t'git fetch') to lookup the default branch for merging. Without\n-\tthis option, 'git pull' defaults to merge the first refspec fetched.\n+\t`branch.<name>.remote`.\n+\tThe merge information is used by `git pull` (which first calls\n+\t`git fetch`) to lookup the default branch for merging. Without\n+\tthis option, `git pull` defaults to merge the first refspec fetched.\n \tSpecify multiple values to get an octopus merge.\n-\tIf you wish to setup 'git pull' so that it merges into <name> from\n+\tIf you wish to setup `git pull` so that it merges into <name> from\n \tanother branch in the local repository, you can point\n \tbranch.<name>.merge to the desired branch, and use the relative path\n-\tsetting `.` (a period) for branch.<name>.remote.\n+\tsetting `.` (a period) for `branch.<name>.remote`.\n \n-branch.<name>.mergeOptions::\n-\tSets default options for merging into branch <name>. The syntax and\n+`branch.<name>.mergeOptions`::\n+\tSets default options for merging into branch _<name>_. The syntax and\n \tsupported options are the same as those of linkgit:git-merge[1], but\n \toption values containing whitespace characters are currently not\n \tsupported.\n \n-branch.<name>.rebase::\n-\tWhen true, rebase the branch <name> on top of the fetched branch,\n+`branch.<name>.rebase`::\n+\tWhen true, rebase the branch _<name>_ on top of the fetched branch,\n \tinstead of merging the default branch from the default remote when\n-\t\"git pull\" is run. See \"pull.rebase\" for doing this in a non\n+\t`git pull` is run. See `pull.rebase` for doing this in a non\n \tbranch-specific manner.\n +\n-When `merges` (or just 'm'), pass the `--rebase-merges` option to 'git rebase'\n+When `merges` (or just `m`), pass the `--rebase-merges` option to `git rebase`\n so that the local merge commits are included in the rebase (see\n linkgit:git-rebase[1] for details).\n +\n-When the value is `interactive` (or just 'i'), the rebase is run in interactive\n+When the value is `interactive` (or just `i`), the rebase is run in interactive\n mode.\n +\n *NOTE*: this is a possibly dangerous operation; do *not* use\n it unless you understand the implications (see linkgit:git-rebase[1]\n for details).\n \n-branch.<name>.description::\n+`branch.<name>.description`::\n \tBranch description, can be edited with\n \t`git branch --edit-description`. Branch description is\n-\tautomatically added to the format-patch cover letter or\n-\trequest-pull summary.\n+\tautomatically added to the `format-patch` cover letter or\n+\t`request-pull` summary.\ndiff --git a/Documentation/git-branch.adoc b/Documentation/git-branch.adoc\nindex 7a073a36d6d..50a1e13e1f2 100644\n--- a/Documentation/git-branch.adoc\n+++ b/Documentation/git-branch.adoc\n@@ -7,23 +7,23 @@ git-branch - List, create, or delete branches\n \n SYNOPSIS\n --------\n-[verse]\n-'git branch' [--color[=<when>] | --no-color] [--show-current]\n-\t[-v [--abbrev=<n> | --no-abbrev]]\n-\t[--column[=<options>] | --no-column] [--sort=<key>]\n-\t[--merged [<commit>]] [--no-merged [<commit>]]\n-\t[--contains [<commit>]] [--no-contains [<commit>]]\n-\t[--points-at <object>] [--format=<format>]\n-\t[(-r | --remotes) | (-a | --all)]\n-\t[--list] [<pattern>...]\n-'git branch' [--track[=(direct|inherit)] | --no-track] [-f]\n-\t[--recurse-submodules] <branchname> [<start-point>]\n-'git branch' (--set-upstream-to=<upstream> | -u <upstream>) [<branchname>]\n-'git branch' --unset-upstream [<branchname>]\n-'git branch' (-m | -M) [<oldbranch>] <newbranch>\n-'git branch' (-c | -C) [<oldbranch>] <newbranch>\n-'git branch' (-d | -D) [-r] <branchname>...\n-'git branch' --edit-description [<branchname>]\n+[synopsis]\n+git branch [--color[=<when>] | --no-color] [--show-current]\n+\t   [-v [--abbrev=<n> | --no-abbrev]]\n+\t   [--column[=<options>] | --no-column] [--sort=<key>]\n+\t   [--merged [<commit>]] [--no-merged [<commit>]]\n+\t   [--contains [<commit>]] [--no-contains [<commit>]]\n+\t   [--points-at <object>] [--format=<format>]\n+\t   [(-r|--remotes) | (-a|--all)]\n+\t   [--list] [<pattern>...]\n+git branch [--track[=(direct|inherit)] | --no-track] [-f]\n+\t   [--recurse-submodules] <branch-name> [<start-point>]\n+git branch (--set-upstream-to=<upstream>|-u <upstream>) [<branch-name>]\n+git branch --unset-upstream [<branch-name>]\n+git branch (-m|-M) [<old-branch>] <new-branch>\n+git branch (-c|-C) [<old-branch>] <new-branch>\n+git branch (-d|-D) [-r] <branch-name>...\n+git branch --edit-description [<branch-name>]\n \n DESCRIPTION\n -----------\n@@ -49,173 +49,184 @@ With `--contains`, shows only the branches that contain the named commit\n named commit), `--no-contains` inverts it. With `--merged`, only branches\n merged into the named commit (i.e. the branches whose tip commits are\n reachable from the named commit) will be listed.  With `--no-merged` only\n-branches not merged into the named commit will be listed.  If the <commit>\n+branches not merged into the named commit will be listed.  If the _<commit>_\n argument is missing it defaults to `HEAD` (i.e. the tip of the current\n branch).\n \n-The command's second form creates a new branch head named <branchname>\n-which points to the current `HEAD`, or <start-point> if given. As a\n-special case, for <start-point>, you may use `\"A...B\"` as a shortcut for\n-the merge base of `A` and `B` if there is exactly one merge base. You\n-can leave out at most one of `A` and `B`, in which case it defaults to\n-`HEAD`.\n+The command's second form creates a new branch head named _<branch-name>_\n+which points to the current `HEAD`, or _<start-point>_ if given. As a\n+special case, for _<start-point>_, you may use `<rev-A>...<rev-B>` as a\n+shortcut for the merge base of _<rev-A>_ and _<rev-B>_ if there is exactly\n+one merge base. You can leave out at most one of _<rev-A>_ and _<rev-B>_,\n+in which case it defaults to `HEAD`.\n \n Note that this will create the new branch, but it will not switch the\n-working tree to it; use \"git switch <newbranch>\" to switch to the\n+working tree to it; use `git switch <new-branch>` to switch to the\n new branch.\n \n When a local branch is started off a remote-tracking branch, Git sets up the\n branch (specifically the `branch.<name>.remote` and `branch.<name>.merge`\n-configuration entries) so that 'git pull' will appropriately merge from\n+configuration entries) so that `git pull` will appropriately merge from\n the remote-tracking branch. This behavior may be changed via the global\n `branch.autoSetupMerge` configuration flag. That setting can be\n overridden by using the `--track` and `--no-track` options, and\n changed later using `git branch --set-upstream-to`.\n \n-With a `-m` or `-M` option, <oldbranch> will be renamed to <newbranch>.\n-If <oldbranch> had a corresponding reflog, it is renamed to match\n-<newbranch>, and a reflog entry is created to remember the branch\n-renaming. If <newbranch> exists, -M must be used to force the rename\n+With a `-m` or `-M` option, _<old-branch>_ will be renamed to _<new-branch>_.\n+If _<old-branch>_ had a corresponding reflog, it is renamed to match\n+_<new-branch>_, and a reflog entry is created to remember the branch\n+renaming. If _<new-branch>_ exists, `-M` must be used to force the rename\n to happen.\n \n The `-c` and `-C` options have the exact same semantics as `-m` and\n `-M`, except instead of the branch being renamed, it will be copied to a\n new name, along with its config and reflog.\n \n-With a `-d` or `-D` option, `<branchname>` will be deleted.  You may\n+With a `-d` or `-D` option, _<branch-name>_ will be deleted.  You may\n specify more than one branch for deletion.  If the branch currently\n has a reflog then the reflog will also be deleted.\n \n Use `-r` together with `-d` to delete remote-tracking branches. Note, that it\n only makes sense to delete remote-tracking branches if they no longer exist\n-in the remote repository or if 'git fetch' was configured not to fetch\n-them again. See also the 'prune' subcommand of linkgit:git-remote[1] for a\n+in the remote repository or if `git fetch` was configured not to fetch\n+them again. See also the `prune` subcommand of linkgit:git-remote[1] for a\n way to clean up all obsolete remote-tracking branches.\n \n \n OPTIONS\n -------\n--d::\n---delete::\n+`-d`::\n+`--delete`::\n \tDelete a branch. The branch must be fully merged in its\n \tupstream branch, or in `HEAD` if no upstream was set with\n \t`--track` or `--set-upstream-to`.\n \n--D::\n+`-D`::\n \tShortcut for `--delete --force`.\n \n---create-reflog::\n+`--create-reflog`::\n \tCreate the branch's reflog.  This activates recording of\n \tall changes made to the branch ref, enabling use of date\n-\tbased sha1 expressions such as \"<branchname>@\\{yesterday}\".\n+\tbased sha1 expressions such as `<branch-name>@{yesterday}`.\n \tNote that in non-bare repositories, reflogs are usually\n \tenabled by default by the `core.logAllRefUpdates` config option.\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--f::\n---force::\n-\tReset <branchname> to <start-point>, even if <branchname> exists\n-\talready. Without `-f`, 'git branch' refuses to change an existing branch.\n+`-f`::\n+`--force`::\n+\tReset _<branch-name>_ to _<start-point>_, even if _<branch-name>_ exists\n+\talready. Without `-f`, `git branch` refuses to change an existing branch.\n \tIn combination with `-d` (or `--delete`), allow deleting the\n \tbranch irrespective of its merged status, or whether it even\n \tpoints to a valid commit. In combination with\n \t`-m` (or `--move`), allow renaming the branch even if the new\n \tbranch name already exists, the same applies for `-c` (or `--copy`).\n +\n-Note that 'git branch -f <branchname> [<start-point>]', even with '-f',\n-refuses to change an existing branch `<branchname>` that is checked out\n+Note that `git branch -f <branch-name> [<start-point>]`, even with `-f`,\n+refuses to change an existing branch _<branch-name>_ that is checked out\n in another worktree linked to the same repository.\n \n--m::\n---move::\n+`-m`::\n+`--move`::\n \tMove/rename a branch, together with its config and reflog.\n \n--M::\n+`-M`::\n \tShortcut for `--move --force`.\n \n--c::\n---copy::\n+`-c`::\n+`--copy`::\n \tCopy a branch, together with its config and reflog.\n \n--C::\n+`-C`::\n \tShortcut for `--copy --force`.\n \n---color[=<when>]::\n+`--color[=<when>]`::\n \tColor branches to highlight current, local, and\n \tremote-tracking branches.\n-\tThe value must be always (the default), never, or auto.\n+\tThe value must be `always` (the default), `never`, or `auto`.\n \n---no-color::\n+`--no-color`::\n \tTurn off branch colors, even when the configuration file gives the\n \tdefault to color output.\n \tSame as `--color=never`.\n \n--i::\n---ignore-case::\n+`-i`::\n+`--ignore-case`::\n \tSorting and filtering branches 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 branch listing in columns. See configuration variable\n \t`column.branch` 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 in non-verbose mode.\n \n--r::\n---remotes::\n-\tList or delete (if used with -d) the remote-tracking branches.\n+`--sort=<key>`::\n+\tSort based on _<key>_. Prefix `-` to sort in descending\n+\torder of the value. You may use the `--sort=<key>` option\n+\tmultiple times, in which case the last key becomes the primary\n+\tkey. The keys supported are the same as those in linkgit:git-for-each-ref[1].\n+\tSort order defaults to the value configured for the\n+\t`branch.sort` variable if it exists, or to sorting based on the\n+\tfull refname (including `refs/...` prefix). This lists\n+\tdetached `HEAD` (if present) first, then local branches and\n+\tfinally remote-tracking branches. See linkgit:git-config[1].\n+\n+`-r`::\n+`--remotes`::\n+\tList or delete (if used with `-d`) the remote-tracking branches.\n \tCombine with `--list` to match the optional pattern(s).\n \n--a::\n---all::\n+`-a`::\n+`--all`::\n \tList both remote-tracking branches and local branches.\n \tCombine with `--list` to match optional pattern(s).\n \n--l::\n---list::\n+`-l`::\n+`--list`::\n \tList branches.  With optional `<pattern>...`, e.g. `git\n \tbranch --list 'maint-*'`, list only the branches that match\n \tthe pattern(s).\n \n---show-current::\n-\tPrint the name of the current branch. In detached HEAD state,\n+`--show-current`::\n+\tPrint the name of the current branch. In detached `HEAD` state,\n \tnothing is printed.\n \n--v::\n--vv::\n---verbose::\n+`-v`::\n+`-vv`::\n+`--verbose`::\n \tWhen in list mode,\n \tshow sha1 and commit subject line for each head, along with\n \trelationship to upstream branch (if any). If given twice, print\n \tthe path of the linked worktree (if any) and the name of the upstream\n \tbranch, as well (see also `git remote show <remote>`).  Note that the\n-\tcurrent worktree's HEAD will not have its path printed (it will always\n+\tcurrent worktree's `HEAD` will not have its path printed (it will always\n \tbe your current directory).\n \n--q::\n---quiet::\n+`-q`::\n+`--quiet`::\n \tBe more quiet when creating or deleting a branch, suppressing\n \tnon-error messages.\n \n---abbrev=<n>::\n+`--abbrev=<n>`::\n \tIn the verbose listing that show the commit object name,\n-\tshow the shortest prefix that is at least '<n>' hexdigits\n+\tshow the shortest prefix that is at least _<n>_ hexdigits\n \tlong that uniquely refers the object.\n \tThe default value is 7 and can be overridden by the `core.abbrev`\n \tconfig option.\n \n---no-abbrev::\n+`--no-abbrev`::\n \tDisplay the full sha1s in the output listing rather than abbreviating them.\n \n--t::\n---track[=(direct|inherit)]::\n+`-t`::\n+`--track[=(direct|inherit)]`::\n \tWhen creating a new branch, set up `branch.<name>.remote` and\n \t`branch.<name>.merge` configuration entries to set \"upstream\" tracking\n \tconfiguration for the new branch. This\n@@ -229,7 +240,7 @@ The exact upstream branch is chosen depending on the optional argument:\n itself as the upstream; `--track=inherit` means to copy the upstream\n configuration of the start-point branch.\n +\n-The branch.autoSetupMerge configuration variable specifies how `git switch`,\n+The `branch.autoSetupMerge` configuration variable specifies how `git switch`,\n `git checkout` and `git branch` should behave when neither `--track` nor\n `--no-track` are specified:\n +\n@@ -238,106 +249,94 @@ were given whenever the start-point is a remote-tracking branch.\n `false` behaves as if `--no-track` were given. `always` behaves as though\n `--track=direct` were given. `inherit` behaves as though `--track=inherit`\n were given. `simple` behaves as though `--track=direct` were given only when\n-the start-point is a remote-tracking branch and the new branch has the same\n+the _<start-point>_ is a remote-tracking branch and the new branch has the same\n name as the remote branch.\n +\n See linkgit:git-pull[1] and linkgit:git-config[1] for additional discussion on\n how the `branch.<name>.remote` and `branch.<name>.merge` options are used.\n \n---no-track::\n+`--no-track`::\n \tDo not set up \"upstream\" configuration, even if the\n-\tbranch.autoSetupMerge configuration variable is set.\n+\t`branch.autoSetupMerge` configuration variable is set.\n \n---recurse-submodules::\n-\tTHIS OPTION IS EXPERIMENTAL! Causes the current command to\n+`--recurse-submodules`::\n+\tTHIS OPTION IS EXPERIMENTAL! Cause the current command to\n \trecurse into submodules if `submodule.propagateBranches` is\n \tenabled. See `submodule.propagateBranches` in\n \tlinkgit:git-config[1]. Currently, only branch creation is\n \tsupported.\n +\n-When used in branch creation, a new branch <branchname> will be created\n+When used in branch creation, a new branch _<branch-name>_ will be created\n in the superproject and all of the submodules in the superproject's\n-<start-point>. In submodules, the branch will point to the submodule\n-commit in the superproject's <start-point> but the branch's tracking\n+_<start-point>_. In submodules, the branch will point to the submodule\n+commit in the superproject's _<start-point>_ but the branch's tracking\n information will be set up based on the submodule's branches and remotes\n e.g. `git branch --recurse-submodules topic origin/main` will create the\n submodule branch \"topic\" that points to the submodule commit in the\n superproject's \"origin/main\", but tracks the submodule's \"origin/main\".\n \n---set-upstream::\n+`--set-upstream`::\n \tAs this option had confusing syntax, it is no longer supported.\n \tPlease use `--track` or `--set-upstream-to` instead.\n \n--u <upstream>::\n---set-upstream-to=<upstream>::\n-\tSet up <branchname>'s tracking information so <upstream> is\n-\tconsidered <branchname>'s upstream branch. If no <branchname>\n+`-u <upstream>`::\n+`--set-upstream-to=<upstream>`::\n+\tSet up _<branch-name>_'s tracking information so _<upstream>_ is\n+\tconsidered _<branch-name>_'s upstream branch. If no _<branch-name>_\n \tis specified, then it defaults to the current branch.\n \n---unset-upstream::\n-\tRemove the upstream information for <branchname>. If no branch\n+`--unset-upstream`::\n+\tRemove the upstream information for _<branch-name>_. If no branch\n \tis specified it defaults to the current branch.\n \n---edit-description::\n+`--edit-description`::\n \tOpen an editor and edit the text to explain what the branch is\n \tfor, to be used by various other commands (e.g. `format-patch`,\n \t`request-pull`, and `merge` (if enabled)). Multi-line explanations\n \tmay be used.\n \n---contains [<commit>]::\n-\tOnly list branches which contain the specified commit (HEAD\n+`--contains [<commit>]`::\n+\tOnly list branches which contain _<commit>_ (`HEAD`\n \tif not specified). Implies `--list`.\n \n---no-contains [<commit>]::\n-\tOnly list branches which don't contain the specified commit\n-\t(HEAD if not specified). Implies `--list`.\n+`--no-contains [<commit>]`::\n+\tOnly list branches which don't contain _<commit>_\n+\t(`HEAD` if not specified). Implies `--list`.\n \n---merged [<commit>]::\n-\tOnly list branches whose tips are reachable from the\n-\tspecified commit (HEAD if not specified). Implies `--list`.\n+`--merged [<commit>]`::\n+\tOnly list branches whose tips are reachable from\n+\t_<commit>_ (`HEAD` if not specified). Implies `--list`.\n \n---no-merged [<commit>]::\n-\tOnly list branches whose tips are not reachable from the\n-\tspecified commit (HEAD if not specified). Implies `--list`.\n+`--no-merged [<commit>]`::\n+\tOnly list branches whose tips are not reachable from\n+\t_<commit>_ (`HEAD` if not specified). Implies `--list`.\n \n-<branchname>::\n+`--points-at <object>`::\n+\tOnly list branches of _<object>_.\n+\n+`--format <format>`::\n+\tA string that interpolates `%(fieldname)` from a branch ref being shown\n+\tand the object it points at.  _<format>_ is the same as\n+\tthat of linkgit:git-for-each-ref[1].\n+\n+_<branch-name>_::\n \tThe name of the branch to create or delete.\n \tThe new branch 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 branch name.\n \n-<start-point>::\n+_<start-point>_::\n \tThe new branch head will point to this commit.  It may be\n \tgiven as a branch name, a commit-id, or a tag.  If this\n-\toption is omitted, the current HEAD will be used instead.\n+\toption is omitted, the current `HEAD` will be used instead.\n \n-<oldbranch>::\n+_<old-branch>_::\n \tThe name of an existing branch.  If this option is omitted,\n \tthe name of the current branch will be used instead.\n \n-<newbranch>::\n+_<new-branch>_::\n \tThe new name for an existing branch. The same restrictions as for\n-\t<branchname> apply.\n-\n---sort=<key>::\n-\tSort based on the key given. Prefix `-` to sort in descending\n-\torder of the value. You may use the --sort=<key> option\n-\tmultiple times, in which case the last key becomes the primary\n-\tkey. The keys supported are the same as those in `git\n-\tfor-each-ref`. Sort order defaults to the value configured for the\n-\t`branch.sort` variable if it exists, or to sorting based on the\n-\tfull refname (including `refs/...` prefix). This lists\n-\tdetached HEAD (if present) first, then local branches and\n-\tfinally remote-tracking branches. See linkgit:git-config[1].\n-\n-\n---points-at <object>::\n-\tOnly list branches of the given object.\n-\n---format <format>::\n-\tA string that interpolates `%(fieldname)` from a branch 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].\n+\t_<branch-name>_ apply.\n \n CONFIGURATION\n -------------\n@@ -374,7 +373,7 @@ $ git branch -D test                                    <2>\n ------------\n +\n <1> Delete the remote-tracking branches \"todo\", \"html\" and \"man\". The next\n-    'fetch' or 'pull' will create them again unless you configure them not to.\n+    `git fetch` or `git pullè will create them again unless you configure them not to.\n     See linkgit:git-fetch[1].\n <2> Delete the \"test\" branch even if the \"master\" branch (or whichever branch\n     is currently checked out) does not have all commits from the test branch.\n@@ -386,8 +385,8 @@ $ git branch -r -l '<remote>/<pattern>'                 <1>\n $ git for-each-ref 'refs/remotes/<remote>/<pattern>'    <2>\n ------------\n +\n-<1> Using `-a` would conflate <remote> with any local branches you happen to\n-    have been prefixed with the same <remote> pattern.\n+<1> Using `-a` would conflate _<remote>_ with any local branches you happen to\n+    have been prefixed with the same _<remote>_ pattern.\n <2> `for-each-ref` can take a wide range of options. See linkgit:git-for-each-ref[1]\n \n Patterns will normally need quoting.\n@@ -396,24 +395,24 @@ NOTES\n -----\n \n If you are creating a branch that you want to switch to immediately,\n-it is easier to use the \"git switch\" command with its `-c` option to\n+it is easier to use the `git switch` command with its `-c` option to\n do the same thing with a single command.\n \n The options `--contains`, `--no-contains`, `--merged` and `--no-merged`\n serve four related but different purposes:\n \n - `--contains <commit>` is used to find all branches which will need\n-  special attention if <commit> were to be rebased or amended, since those\n-  branches contain the specified <commit>.\n+  special attention if _<commit>_ were to be rebased or amended, since those\n+  branches contain the specified _<commit>_.\n \n - `--no-contains <commit>` is the inverse of that, i.e. branches that don't\n-  contain the specified <commit>.\n+  contain the specified _<commit>_.\n \n - `--merged` is used to find all branches which can be safely deleted,\n-  since those branches are fully contained by HEAD.\n+  since those branches are fully contained by `HEAD`.\n \n - `--no-merged` is used to find branches which are candidates for merging\n-  into HEAD, since those branches are not fully contained by HEAD.\n+  into `HEAD`, since those branches are not fully contained by `HEAD`.\n \n include::ref-reachability-filters.adoc[]\n \n@@ -422,8 +421,8 @@ SEE ALSO\n linkgit:git-check-ref-format[1],\n linkgit:git-fetch[1],\n linkgit:git-remote[1],\n-link:user-manual.html#what-is-a-branch[``Understanding history: What is\n-a branch?''] in the Git User's Manual.\n+link:user-manual.html#what-is-a-branch[\"Understanding history: What is\n+a branch?\"] in the Git User's Manual.\n \n GIT\n ---\n-- \ngitgitgadget\n"}]}