From bb778e77f3ba317e02d2880ca7148ea66a17dd8a Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Mon, 19 Sep 2022 15:05:53 -0700 Subject: Autogenerated HTML docs for v2.38.0-rc0-52-gdda722 --- RelNotes/2.38.0.txt | 25 +- cmds-ancillaryinterrogators.txt | 30 +- cmds-ancillarymanipulators.txt | 22 +- cmds-developerinterfaces.txt | 22 +- cmds-foreignscminterface.txt | 20 +- cmds-guide.txt | 26 +- cmds-mainporcelain.txt | 89 +-- cmds-plumbinginterrogators.txt | 42 +- cmds-plumbingmanipulators.txt | 38 +- cmds-purehelpers.txt | 36 +- cmds-synchelpers.txt | 12 +- cmds-synchingrepositories.txt | 10 +- cmds-userinterfaces.txt | 16 +- git.html | 368 +++++----- howto/coordinate-embargoed-releases.html | 2 +- howto/keep-canonical-history-correct.html | 2 +- howto/maintain-git.html | 2 +- howto/new-command.html | 2 +- howto/rebase-from-internal-branch.html | 2 +- howto/rebuild-from-update-hook.html | 2 +- howto/recover-corrupted-blob-object.html | 2 +- howto/recover-corrupted-object-harder.html | 2 +- howto/revert-a-faulty-merge.html | 2 +- howto/revert-branch-rebase.html | 2 +- howto/separating-topic-branches.html | 2 +- howto/setup-git-server-over-http.html | 2 +- howto/update-hook-example.html | 2 +- howto/use-git-daemon.html | 2 +- howto/using-merge-subtree.html | 2 +- howto/using-signed-tag-in-pull-request.html | 2 +- scalar.html | 995 ++++++++++++++++++++++++++++ scalar.txt | 166 +++++ technical/scalar.html | 840 +++++++++++++++++++++++ technical/scalar.txt | 61 -- 34 files changed, 2402 insertions(+), 448 deletions(-) create mode 100644 scalar.html create mode 100644 scalar.txt create mode 100644 technical/scalar.html diff --git a/RelNotes/2.38.0.txt b/RelNotes/2.38.0.txt index 01617baa9..5d9bd8c29 100644 --- a/RelNotes/2.38.0.txt +++ b/RelNotes/2.38.0.txt @@ -6,7 +6,7 @@ UI, Workflows & Features * "git remote show [-n] frotz" now pays attention to negative pathspec. - * "git push" sometimes perform poorly when reachability bitmaps are + * "git push" sometimes performs poorly when reachability bitmaps are used, even in a repository where other operations are helped by bitmaps. The push.useBitmaps configuration variable is introduced to allow disabling use of reachability bitmaps only for "git push". @@ -27,7 +27,7 @@ UI, Workflows & Features what locale they are in by sending Accept-Language HTTP header, but this was done only for some requests but not others. - * Introduce a discovery.barerepository configuration variable that + * Introduce a safe.barerepository configuration variable that allows users to forbid discovery of bare repositories. * Various messages that come from the pack-bitmap codepaths have been @@ -79,12 +79,15 @@ UI, Workflows & Features * "git format-patch --from=" can be told to add an in-body "From:" line even for commits that are authored by the given - with "--force-in-body-from"option. + with "--force-in-body-from" option. * The built-in fsmonitor refuses to work on a network mounted repositories; a configuration knob for users to override this has been introduced. + * The "scalar" addition from Microsoft is now part of the core Git + installation. + Performance, Internal Implementation, Development Support etc. @@ -127,7 +130,7 @@ Performance, Internal Implementation, Development Support etc. * The way "git multi-pack" uses parse-options API has been improved. - * A coccinelle rule (in contrib/) to encourage use of COPY_ARRAY + * A Coccinelle rule (in contrib/) to encourage use of COPY_ARRAY macro has been improved. * API tweak to make it easier to run fuzz testing on commit-graph parser. @@ -172,6 +175,12 @@ Performance, Internal Implementation, Development Support etc. * Share the text used to explain configuration variables used by "git " in "git help " with the text from "git help config". + * "git mv A B" in a sparsely populated working tree can be asked to + move a path from a directory that is "in cone" to another directory + that is "out of cone". Handling of such a case has been improved. + + * The chainlint script for our tests has been revamped. + Fixes since v2.37 ----------------- @@ -297,7 +306,7 @@ Fixes since v2.37 * "git fsck" reads mode from tree objects but canonicalizes the mode before passing it to the logic to check object sanity, which has hid broken tree objects from the checking logic. This has been - corrected, but to help exiting projects with broken tree objects + corrected, but to help existing projects with broken tree objects that they cannot fix retroactively, the severity of anomalies this code detects has been demoted to "info" for now. @@ -306,12 +315,10 @@ Fixes since v2.37 * An earlier optimization discarded a tree-object buffer that is still in use, which has been corrected. - (merge 1490d7d82d jk/is-promisor-object-keep-tree-in-use later to maint). * Fix deadlocks between main Git process and subprocess spawned via the pipe_command() API, that can kill "git add -p" that was reimplemented in C recently. - (merge 716c1f649e jk/pipe-command-nonblock later to maint). * The sequencer machinery translated messages left in the reflog by mistake, which has been corrected. @@ -319,20 +326,16 @@ Fixes since v2.37 * xcalloc(), imitating calloc(), takes "number of elements of the array", and "size of a single element", in this order. A call that does not follow this ordering has been corrected. - (merge c4bbd9bb8f sg/xcalloc-cocci-fix later to maint). * The preload-index codepath made copies of pathspec to give to multiple threads, which were left leaked. - (merge 23578904da ad/preload-plug-memleak later to maint). * Update the version of Ubuntu used for GitHub Actions CI from 18.04 to 22.04. - (merge ef46584831 ds/github-actions-use-newer-ubuntu later to maint). * The auto-stashed local changes created by "git merge --autostash" was mixed into a conflicted state left in the working tree, which has been corrected. - (merge d3a9295ada en/merge-unstash-only-on-clean-merge later to maint). * Multi-pack index got corrupted when preferred pack changed from one pack to another in a certain way, which has been corrected. diff --git a/cmds-ancillaryinterrogators.txt b/cmds-ancillaryinterrogators.txt index 3058ab604..d43f7cec9 100644 --- a/cmds-ancillaryinterrogators.txt +++ b/cmds-ancillaryinterrogators.txt @@ -1,45 +1,45 @@ -linkgit:git-annotate[1]:: +linkgit:git-annotate[git]:: Annotate file lines with commit information. -linkgit:git-blame[1]:: +linkgit:git-blame[git]:: Show what revision and author last modified each line of a file. -linkgit:git-bugreport[1]:: +linkgit:git-bugreport[git]:: Collect information for user to file a bug report. -linkgit:git-count-objects[1]:: +linkgit:git-count-objects[git]:: Count unpacked number of objects and their disk consumption. -linkgit:git-difftool[1]:: +linkgit:git-difftool[git]:: Show changes using common diff tools. -linkgit:git-fsck[1]:: +linkgit:git-fsck[git]:: Verifies the connectivity and validity of the objects in the database. -linkgit:git-help[1]:: +linkgit:git-help[git]:: Display help information about Git. -linkgit:git-instaweb[1]:: +linkgit:git-instaweb[git]:: Instantly browse your working repository in gitweb. -linkgit:git-merge-tree[1]:: +linkgit:git-merge-tree[git]:: Perform merge without touching index or working tree. -linkgit:git-rerere[1]:: +linkgit:git-rerere[git]:: Reuse recorded resolution of conflicted merges. -linkgit:git-show-branch[1]:: +linkgit:git-show-branch[git]:: Show branches and their commits. -linkgit:git-verify-commit[1]:: +linkgit:git-verify-commit[git]:: Check the GPG signature of commits. -linkgit:git-verify-tag[1]:: +linkgit:git-verify-tag[git]:: Check the GPG signature of tags. -linkgit:git-whatchanged[1]:: +linkgit:git-whatchanged[git]:: Show logs with difference each commit introduces. -linkgit:gitweb[1]:: +linkgit:gitweb[git]:: Git web interface (web frontend to Git repositories). diff --git a/cmds-ancillarymanipulators.txt b/cmds-ancillarymanipulators.txt index f3d3f12d3..c0932e377 100644 --- a/cmds-ancillarymanipulators.txt +++ b/cmds-ancillarymanipulators.txt @@ -1,33 +1,33 @@ -linkgit:git-config[1]:: +linkgit:git-config[git]:: Get and set repository or global options. -linkgit:git-fast-export[1]:: +linkgit:git-fast-export[git]:: Git data exporter. -linkgit:git-fast-import[1]:: +linkgit:git-fast-import[git]:: Backend for fast Git data importers. -linkgit:git-filter-branch[1]:: +linkgit:git-filter-branch[git]:: Rewrite branches. -linkgit:git-mergetool[1]:: +linkgit:git-mergetool[git]:: Run merge conflict resolution tools to resolve merge conflicts. -linkgit:git-pack-refs[1]:: +linkgit:git-pack-refs[git]:: Pack heads and tags for efficient repository access. -linkgit:git-prune[1]:: +linkgit:git-prune[git]:: Prune all unreachable objects from the object database. -linkgit:git-reflog[1]:: +linkgit:git-reflog[git]:: Manage reflog information. -linkgit:git-remote[1]:: +linkgit:git-remote[git]:: Manage set of tracked repositories. -linkgit:git-repack[1]:: +linkgit:git-repack[git]:: Pack unpacked objects in a repository. -linkgit:git-replace[1]:: +linkgit:git-replace[git]:: Create, list, delete refs to replace objects. diff --git a/cmds-developerinterfaces.txt b/cmds-developerinterfaces.txt index e060960bb..667404195 100644 --- a/cmds-developerinterfaces.txt +++ b/cmds-developerinterfaces.txt @@ -1,33 +1,33 @@ -linkgit:gitformat-bundle[5]:: +linkgit:gitformat-bundle[git]:: The bundle file format. -linkgit:gitformat-chunk[5]:: +linkgit:gitformat-chunk[git]:: Chunk-based file formats. -linkgit:gitformat-commit-graph[5]:: +linkgit:gitformat-commit-graph[git]:: Git commit graph format. -linkgit:gitformat-index[5]:: +linkgit:gitformat-index[git]:: Git index format. -linkgit:gitformat-pack[5]:: +linkgit:gitformat-pack[git]:: Git pack format. -linkgit:gitformat-signature[5]:: +linkgit:gitformat-signature[git]:: Git cryptographic signature formats. -linkgit:gitprotocol-capabilities[5]:: +linkgit:gitprotocol-capabilities[git]:: Protocol v0 and v1 capabilities. -linkgit:gitprotocol-common[5]:: +linkgit:gitprotocol-common[git]:: Things common to various protocols. -linkgit:gitprotocol-http[5]:: +linkgit:gitprotocol-http[git]:: Git HTTP-based protocols. -linkgit:gitprotocol-pack[5]:: +linkgit:gitprotocol-pack[git]:: How packs are transferred over-the-wire. -linkgit:gitprotocol-v2[5]:: +linkgit:gitprotocol-v2[git]:: Git Wire Protocol, Version 2. diff --git a/cmds-foreignscminterface.txt b/cmds-foreignscminterface.txt index 29236a058..aa1d310a1 100644 --- a/cmds-foreignscminterface.txt +++ b/cmds-foreignscminterface.txt @@ -1,30 +1,30 @@ -linkgit:git-archimport[1]:: +linkgit:git-archimport[git]:: Import a GNU Arch repository into Git. -linkgit:git-cvsexportcommit[1]:: +linkgit:git-cvsexportcommit[git]:: Export a single commit to a CVS checkout. -linkgit:git-cvsimport[1]:: +linkgit:git-cvsimport[git]:: Salvage your data out of another SCM people love to hate. -linkgit:git-cvsserver[1]:: +linkgit:git-cvsserver[git]:: A CVS server emulator for Git. -linkgit:git-imap-send[1]:: +linkgit:git-imap-send[git]:: Send a collection of patches from stdin to an IMAP folder. -linkgit:git-p4[1]:: +linkgit:git-p4[git]:: Import from and submit to Perforce repositories. -linkgit:git-quiltimport[1]:: +linkgit:git-quiltimport[git]:: Applies a quilt patchset onto the current branch. -linkgit:git-request-pull[1]:: +linkgit:git-request-pull[git]:: Generates a summary of pending changes. -linkgit:git-send-email[1]:: +linkgit:git-send-email[git]:: Send a collection of patches as emails. -linkgit:git-svn[1]:: +linkgit:git-svn[git]:: Bidirectional operation between a Subversion repository and Git. diff --git a/cmds-guide.txt b/cmds-guide.txt index 3c0eeb3dc..e79055c86 100644 --- a/cmds-guide.txt +++ b/cmds-guide.txt @@ -1,39 +1,39 @@ -linkgit:gitcore-tutorial[7]:: +linkgit:gitcore-tutorial[git]:: A Git core tutorial for developers. -linkgit:gitcredentials[7]:: +linkgit:gitcredentials[git]:: Providing usernames and passwords to Git. -linkgit:gitcvs-migration[7]:: +linkgit:gitcvs-migration[git]:: Git for CVS users. -linkgit:gitdiffcore[7]:: +linkgit:gitdiffcore[git]:: Tweaking diff output. -linkgit:giteveryday[7]:: +linkgit:giteveryday[git]:: A useful minimum set of commands for Everyday Git. -linkgit:gitfaq[7]:: +linkgit:gitfaq[git]:: Frequently asked questions about using Git. -linkgit:gitglossary[7]:: +linkgit:gitglossary[git]:: A Git Glossary. -linkgit:gitnamespaces[7]:: +linkgit:gitnamespaces[git]:: Git namespaces. -linkgit:gitremote-helpers[7]:: +linkgit:gitremote-helpers[git]:: Helper programs to interact with remote repositories. -linkgit:gitsubmodules[7]:: +linkgit:gitsubmodules[git]:: Mounting one repository inside another. -linkgit:gittutorial[7]:: +linkgit:gittutorial[git]:: A tutorial introduction to Git. -linkgit:gittutorial-2[7]:: +linkgit:gittutorial-2[git]:: A tutorial introduction to Git: part two. -linkgit:gitworkflows[7]:: +linkgit:gitworkflows[git]:: An overview of recommended workflows with Git. diff --git a/cmds-mainporcelain.txt b/cmds-mainporcelain.txt index 073970e1f..1aa6141fc 100644 --- a/cmds-mainporcelain.txt +++ b/cmds-mainporcelain.txt @@ -1,129 +1,132 @@ -linkgit:git-add[1]:: +linkgit:git-add[git]:: Add file contents to the index. -linkgit:git-am[1]:: +linkgit:git-am[git]:: Apply a series of patches from a mailbox. -linkgit:git-archive[1]:: +linkgit:git-archive[git]:: Create an archive of files from a named tree. -linkgit:git-bisect[1]:: +linkgit:git-bisect[git]:: Use binary search to find the commit that introduced a bug. -linkgit:git-branch[1]:: +linkgit:git-branch[git]:: List, create, or delete branches. -linkgit:git-bundle[1]:: +linkgit:git-bundle[git]:: Move objects and refs by archive. -linkgit:git-checkout[1]:: +linkgit:git-checkout[git]:: Switch branches or restore working tree files. -linkgit:git-cherry-pick[1]:: +linkgit:git-cherry-pick[git]:: Apply the changes introduced by some existing commits. -linkgit:git-citool[1]:: +linkgit:git-citool[git]:: Graphical alternative to git-commit. -linkgit:git-clean[1]:: +linkgit:git-clean[git]:: Remove untracked files from the working tree. -linkgit:git-clone[1]:: +linkgit:git-clone[git]:: Clone a repository into a new directory. -linkgit:git-commit[1]:: +linkgit:git-commit[git]:: Record changes to the repository. -linkgit:git-describe[1]:: +linkgit:git-describe[git]:: Give an object a human readable name based on an available ref. -linkgit:git-diff[1]:: +linkgit:git-diff[git]:: Show changes between commits, commit and working tree, etc. -linkgit:git-fetch[1]:: +linkgit:git-fetch[git]:: Download objects and refs from another repository. -linkgit:git-format-patch[1]:: +linkgit:git-format-patch[git]:: Prepare patches for e-mail submission. -linkgit:git-gc[1]:: +linkgit:git-gc[git]:: Cleanup unnecessary files and optimize the local repository. -linkgit:git-grep[1]:: +linkgit:git-grep[git]:: Print lines matching a pattern. -linkgit:git-gui[1]:: +linkgit:git-gui[git]:: A portable graphical interface to Git. -linkgit:git-init[1]:: +linkgit:git-init[git]:: Create an empty Git repository or reinitialize an existing one. -linkgit:git-log[1]:: +linkgit:git-log[git]:: Show commit logs. -linkgit:git-maintenance[1]:: +linkgit:git-maintenance[git]:: Run tasks to optimize Git repository data. -linkgit:git-merge[1]:: +linkgit:git-merge[git]:: Join two or more development histories together. -linkgit:git-mv[1]:: +linkgit:git-mv[git]:: Move or rename a file, a directory, or a symlink. -linkgit:git-notes[1]:: +linkgit:git-notes[git]:: Add or inspect object notes. -linkgit:git-pull[1]:: +linkgit:git-pull[git]:: Fetch from and integrate with another repository or a local branch. -linkgit:git-push[1]:: +linkgit:git-push[git]:: Update remote refs along with associated objects. -linkgit:git-range-diff[1]:: +linkgit:git-range-diff[git]:: Compare two commit ranges (e.g. two versions of a branch). -linkgit:git-rebase[1]:: +linkgit:git-rebase[git]:: Reapply commits on top of another base tip. -linkgit:git-reset[1]:: +linkgit:git-reset[git]:: Reset current HEAD to the specified state. -linkgit:git-restore[1]:: +linkgit:git-restore[git]:: Restore working tree files. -linkgit:git-revert[1]:: +linkgit:git-revert[git]:: Revert some existing commits. -linkgit:git-rm[1]:: +linkgit:git-rm[git]:: Remove files from the working tree and from the index. -linkgit:git-shortlog[1]:: +linkgit:git-shortlog[git]:: Summarize 'git log' output. -linkgit:git-show[1]:: +linkgit:git-show[git]:: Show various types of objects. -linkgit:git-sparse-checkout[1]:: +linkgit:git-sparse-checkout[git]:: Reduce your working tree to a subset of tracked files. -linkgit:git-stash[1]:: +linkgit:git-stash[git]:: Stash the changes in a dirty working directory away. -linkgit:git-status[1]:: +linkgit:git-status[git]:: Show the working tree status. -linkgit:git-submodule[1]:: +linkgit:git-submodule[git]:: Initialize, update or inspect submodules. -linkgit:git-switch[1]:: +linkgit:git-switch[git]:: Switch branches. -linkgit:git-tag[1]:: +linkgit:git-tag[git]:: Create, list, delete or verify a tag object signed with GPG. -linkgit:git-worktree[1]:: +linkgit:git-worktree[git]:: Manage multiple working trees. -linkgit:gitk[1]:: +linkgit:gitk[git]:: The Git repository browser. +linkgit:scalar[scalar]:: + A tool for managing large Git repositories. + diff --git a/cmds-plumbinginterrogators.txt b/cmds-plumbinginterrogators.txt index fe653a8d7..ad84df1bc 100644 --- a/cmds-plumbinginterrogators.txt +++ b/cmds-plumbinginterrogators.txt @@ -1,63 +1,63 @@ -linkgit:git-cat-file[1]:: +linkgit:git-cat-file[git]:: Provide content or type and size information for repository objects. -linkgit:git-cherry[1]:: +linkgit:git-cherry[git]:: Find commits yet to be applied to upstream. -linkgit:git-diff-files[1]:: +linkgit:git-diff-files[git]:: Compares files in the working tree and the index. -linkgit:git-diff-index[1]:: +linkgit:git-diff-index[git]:: Compare a tree to the working tree or index. -linkgit:git-diff-tree[1]:: +linkgit:git-diff-tree[git]:: Compares the content and mode of blobs found via two tree objects. -linkgit:git-for-each-ref[1]:: +linkgit:git-for-each-ref[git]:: Output information on each ref. -linkgit:git-for-each-repo[1]:: +linkgit:git-for-each-repo[git]:: Run a Git command on a list of repositories. -linkgit:git-get-tar-commit-id[1]:: +linkgit:git-get-tar-commit-id[git]:: Extract commit ID from an archive created using git-archive. -linkgit:git-ls-files[1]:: +linkgit:git-ls-files[git]:: Show information about files in the index and the working tree. -linkgit:git-ls-remote[1]:: +linkgit:git-ls-remote[git]:: List references in a remote repository. -linkgit:git-ls-tree[1]:: +linkgit:git-ls-tree[git]:: List the contents of a tree object. -linkgit:git-merge-base[1]:: +linkgit:git-merge-base[git]:: Find as good common ancestors as possible for a merge. -linkgit:git-name-rev[1]:: +linkgit:git-name-rev[git]:: Find symbolic names for given revs. -linkgit:git-pack-redundant[1]:: +linkgit:git-pack-redundant[git]:: Find redundant pack files. -linkgit:git-rev-list[1]:: +linkgit:git-rev-list[git]:: Lists commit objects in reverse chronological order. -linkgit:git-rev-parse[1]:: +linkgit:git-rev-parse[git]:: Pick out and massage parameters. -linkgit:git-show-index[1]:: +linkgit:git-show-index[git]:: Show packed archive index. -linkgit:git-show-ref[1]:: +linkgit:git-show-ref[git]:: List references in a local repository. -linkgit:git-unpack-file[1]:: +linkgit:git-unpack-file[git]:: Creates a temporary file with a blob's contents. -linkgit:git-var[1]:: +linkgit:git-var[git]:: Show a Git logical variable. -linkgit:git-verify-pack[1]:: +linkgit:git-verify-pack[git]:: Validate packed Git archive files. diff --git a/cmds-plumbingmanipulators.txt b/cmds-plumbingmanipulators.txt index b07e5673f..5f4db62c1 100644 --- a/cmds-plumbingmanipulators.txt +++ b/cmds-plumbingmanipulators.txt @@ -1,57 +1,57 @@ -linkgit:git-apply[1]:: +linkgit:git-apply[git]:: Apply a patch to files and/or to the index. -linkgit:git-checkout-index[1]:: +linkgit:git-checkout-index[git]:: Copy files from the index to the working tree. -linkgit:git-commit-graph[1]:: +linkgit:git-commit-graph[git]:: Write and verify Git commit-graph files. -linkgit:git-commit-tree[1]:: +linkgit:git-commit-tree[git]:: Create a new commit object. -linkgit:git-hash-object[1]:: +linkgit:git-hash-object[git]:: Compute object ID and optionally creates a blob from a file. -linkgit:git-index-pack[1]:: +linkgit:git-index-pack[git]:: Build pack index file for an existing packed archive. -linkgit:git-merge-file[1]:: +linkgit:git-merge-file[git]:: Run a three-way file merge. -linkgit:git-merge-index[1]:: +linkgit:git-merge-index[git]:: Run a merge for files needing merging. -linkgit:git-mktag[1]:: +linkgit:git-mktag[git]:: Creates a tag object with extra validation. -linkgit:git-mktree[1]:: +linkgit:git-mktree[git]:: Build a tree-object from ls-tree formatted text. -linkgit:git-multi-pack-index[1]:: +linkgit:git-multi-pack-index[git]:: Write and verify multi-pack-indexes. -linkgit:git-pack-objects[1]:: +linkgit:git-pack-objects[git]:: Create a packed archive of objects. -linkgit:git-prune-packed[1]:: +linkgit:git-prune-packed[git]:: Remove extra objects that are already in pack files. -linkgit:git-read-tree[1]:: +linkgit:git-read-tree[git]:: Reads tree information into the index. -linkgit:git-symbolic-ref[1]:: +linkgit:git-symbolic-ref[git]:: Read, modify and delete symbolic refs. -linkgit:git-unpack-objects[1]:: +linkgit:git-unpack-objects[git]:: Unpack objects from a packed archive. -linkgit:git-update-index[1]:: +linkgit:git-update-index[git]:: Register file contents in the working tree to the index. -linkgit:git-update-ref[1]:: +linkgit:git-update-ref[git]:: Update the object name stored in a ref safely. -linkgit:git-write-tree[1]:: +linkgit:git-write-tree[git]:: Create a tree object from the current index. diff --git a/cmds-purehelpers.txt b/cmds-purehelpers.txt index 259298821..f2693a414 100644 --- a/cmds-purehelpers.txt +++ b/cmds-purehelpers.txt @@ -1,54 +1,54 @@ -linkgit:git-check-attr[1]:: +linkgit:git-check-attr[git]:: Display gitattributes information. -linkgit:git-check-ignore[1]:: +linkgit:git-check-ignore[git]:: Debug gitignore / exclude files. -linkgit:git-check-mailmap[1]:: +linkgit:git-check-mailmap[git]:: Show canonical names and email addresses of contacts. -linkgit:git-check-ref-format[1]:: +linkgit:git-check-ref-format[git]:: Ensures that a reference name is well formed. -linkgit:git-column[1]:: +linkgit:git-column[git]:: Display data in columns. -linkgit:git-credential[1]:: +linkgit:git-credential[git]:: Retrieve and store user credentials. -linkgit:git-credential-cache[1]:: +linkgit:git-credential-cache[git]:: Helper to temporarily store passwords in memory. -linkgit:git-credential-store[1]:: +linkgit:git-credential-store[git]:: Helper to store credentials on disk. -linkgit:git-fmt-merge-msg[1]:: +linkgit:git-fmt-merge-msg[git]:: Produce a merge commit message. -linkgit:git-hook[1]:: +linkgit:git-hook[git]:: Run git hooks. -linkgit:git-interpret-trailers[1]:: +linkgit:git-interpret-trailers[git]:: Add or parse structured information in commit messages. -linkgit:git-mailinfo[1]:: +linkgit:git-mailinfo[git]:: Extracts patch and authorship from a single e-mail message. -linkgit:git-mailsplit[1]:: +linkgit:git-mailsplit[git]:: Simple UNIX mbox splitter program. -linkgit:git-merge-one-file[1]:: +linkgit:git-merge-one-file[git]:: The standard helper program to use with git-merge-index. -linkgit:git-patch-id[1]:: +linkgit:git-patch-id[git]:: Compute unique ID for a patch. -linkgit:git-sh-i18n[1]:: +linkgit:git-sh-i18n[git]:: Git's i18n setup code for shell scripts. -linkgit:git-sh-setup[1]:: +linkgit:git-sh-setup[git]:: Common Git shell script setup code. -linkgit:git-stripspace[1]:: +linkgit:git-stripspace[git]:: Remove unnecessary whitespace. diff --git a/cmds-synchelpers.txt b/cmds-synchelpers.txt index 253c5d352..d7fa711bf 100644 --- a/cmds-synchelpers.txt +++ b/cmds-synchelpers.txt @@ -1,18 +1,18 @@ -linkgit:git-http-fetch[1]:: +linkgit:git-http-fetch[git]:: Download from a remote Git repository via HTTP. -linkgit:git-http-push[1]:: +linkgit:git-http-push[git]:: Push objects over HTTP/DAV to another repository. -linkgit:git-receive-pack[1]:: +linkgit:git-receive-pack[git]:: Receive what is pushed into the repository. -linkgit:git-shell[1]:: +linkgit:git-shell[git]:: Restricted login shell for Git-only SSH access. -linkgit:git-upload-archive[1]:: +linkgit:git-upload-archive[git]:: Send archive back to git-archive. -linkgit:git-upload-pack[1]:: +linkgit:git-upload-pack[git]:: Send objects packed back to git-fetch-pack. diff --git a/cmds-synchingrepositories.txt b/cmds-synchingrepositories.txt index d3ddba3b9..ea75cfef1 100644 --- a/cmds-synchingrepositories.txt +++ b/cmds-synchingrepositories.txt @@ -1,15 +1,15 @@ -linkgit:git-daemon[1]:: +linkgit:git-daemon[git]:: A really simple server for Git repositories. -linkgit:git-fetch-pack[1]:: +linkgit:git-fetch-pack[git]:: Receive missing objects from another repository. -linkgit:git-http-backend[1]:: +linkgit:git-http-backend[git]:: Server side implementation of Git over HTTP. -linkgit:git-send-pack[1]:: +linkgit:git-send-pack[git]:: Push objects over Git protocol to another repository. -linkgit:git-update-server-info[1]:: +linkgit:git-update-server-info[git]:: Update auxiliary info file to help dumb servers. diff --git a/cmds-userinterfaces.txt b/cmds-userinterfaces.txt index dae805335..bbf661249 100644 --- a/cmds-userinterfaces.txt +++ b/cmds-userinterfaces.txt @@ -1,24 +1,24 @@ -linkgit:gitattributes[5]:: +linkgit:gitattributes[git]:: Defining attributes per path. -linkgit:gitcli[7]:: +linkgit:gitcli[git]:: Git command-line interface and conventions. -linkgit:githooks[5]:: +linkgit:githooks[git]:: Hooks used by Git. -linkgit:gitignore[5]:: +linkgit:gitignore[git]:: Specifies intentionally untracked files to ignore. -linkgit:gitmailmap[5]:: +linkgit:gitmailmap[git]:: Map author/committer names and/or E-Mail addresses. -linkgit:gitmodules[5]:: +linkgit:gitmodules[git]:: Defining submodule properties. -linkgit:gitrepository-layout[5]:: +linkgit:gitrepository-layout[git]:: Git Repository Layout. -linkgit:gitrevisions[7]:: +linkgit:gitrevisions[git]:: Specifying revisions and ranges for Git. diff --git a/git.html b/git.html index 7c83e67a0..cba3c8d99 100644 --- a/git.html +++ b/git.html @@ -1097,7 +1097,7 @@ ancillary user utilities.

Main porcelain commands

-git-add(1) +git-add(git)

@@ -1105,7 +1105,7 @@ ancillary user utilities.

-git-am(1) +git-am(git)

@@ -1113,7 +1113,7 @@ ancillary user utilities.

-git-archive(1) +git-archive(git)

@@ -1121,7 +1121,7 @@ ancillary user utilities.

-git-bisect(1) +git-bisect(git)

@@ -1129,7 +1129,7 @@ ancillary user utilities.

-git-branch(1) +git-branch(git)

@@ -1137,7 +1137,7 @@ ancillary user utilities.

-git-bundle(1) +git-bundle(git)

@@ -1145,7 +1145,7 @@ ancillary user utilities.

-git-checkout(1) +git-checkout(git)

@@ -1153,7 +1153,7 @@ ancillary user utilities.

-git-cherry-pick(1) +git-cherry-pick(git)

@@ -1161,7 +1161,7 @@ ancillary user utilities.

-git-citool(1) +git-citool(git)

@@ -1169,7 +1169,7 @@ ancillary user utilities.

-git-clean(1) +git-clean(git)

@@ -1177,7 +1177,7 @@ ancillary user utilities.

-git-clone(1) +git-clone(git)

@@ -1185,7 +1185,7 @@ ancillary user utilities.

-git-commit(1) +git-commit(git)

@@ -1193,7 +1193,7 @@ ancillary user utilities.

-git-describe(1) +git-describe(git)

@@ -1201,7 +1201,7 @@ ancillary user utilities.

-git-diff(1) +git-diff(git)

@@ -1209,7 +1209,7 @@ ancillary user utilities.

-git-fetch(1) +git-fetch(git)

@@ -1217,7 +1217,7 @@ ancillary user utilities.

-git-format-patch(1) +git-format-patch(git)

@@ -1225,7 +1225,7 @@ ancillary user utilities.

-git-gc(1) +git-gc(git)

@@ -1233,7 +1233,7 @@ ancillary user utilities.

-git-grep(1) +git-grep(git)

@@ -1241,7 +1241,7 @@ ancillary user utilities.

-git-gui(1) +git-gui(git)

@@ -1249,7 +1249,7 @@ ancillary user utilities.

-git-init(1) +git-init(git)

@@ -1257,7 +1257,7 @@ ancillary user utilities.

-git-log(1) +git-log(git)

@@ -1265,7 +1265,7 @@ ancillary user utilities.

-git-maintenance(1) +git-maintenance(git)

@@ -1273,7 +1273,7 @@ ancillary user utilities.

-git-merge(1) +git-merge(git)

@@ -1281,7 +1281,7 @@ ancillary user utilities.

-git-mv(1) +git-mv(git)

@@ -1289,7 +1289,7 @@ ancillary user utilities.

-git-notes(1) +git-notes(git)

@@ -1297,7 +1297,7 @@ ancillary user utilities.

-git-pull(1) +git-pull(git)

@@ -1305,7 +1305,7 @@ ancillary user utilities.

-git-push(1) +git-push(git)

@@ -1313,7 +1313,7 @@ ancillary user utilities.

-git-range-diff(1) +git-range-diff(git)

@@ -1321,7 +1321,7 @@ ancillary user utilities.

-git-rebase(1) +git-rebase(git)

@@ -1329,7 +1329,7 @@ ancillary user utilities.

-git-reset(1) +git-reset(git)

@@ -1337,7 +1337,7 @@ ancillary user utilities.

-git-restore(1) +git-restore(git)

@@ -1345,7 +1345,7 @@ ancillary user utilities.

-git-revert(1) +git-revert(git)

@@ -1353,7 +1353,7 @@ ancillary user utilities.

-git-rm(1) +git-rm(git)

@@ -1361,7 +1361,7 @@ ancillary user utilities.

-git-shortlog(1) +git-shortlog(git)

@@ -1369,7 +1369,7 @@ ancillary user utilities.

-git-show(1) +git-show(git)

@@ -1377,7 +1377,7 @@ ancillary user utilities.

-git-sparse-checkout(1) +git-sparse-checkout(git)

@@ -1385,7 +1385,7 @@ ancillary user utilities.

-git-stash(1) +git-stash(git)

@@ -1393,7 +1393,7 @@ ancillary user utilities.

-git-status(1) +git-status(git)

@@ -1401,7 +1401,7 @@ ancillary user utilities.

-git-submodule(1) +git-submodule(git)

@@ -1409,7 +1409,7 @@ ancillary user utilities.

-git-switch(1) +git-switch(git)

@@ -1417,7 +1417,7 @@ ancillary user utilities.

-git-tag(1) +git-tag(git)

@@ -1425,7 +1425,7 @@ ancillary user utilities.

-git-worktree(1) +git-worktree(git)

@@ -1433,13 +1433,21 @@ ancillary user utilities.

-gitk(1) +gitk(git)

The Git repository browser.

+
+scalar(scalar) +
+
+

+ A tool for managing large Git repositories. +

+
@@ -1447,7 +1455,7 @@ ancillary user utilities.

Manipulators:

-git-config(1) +git-config(git)

@@ -1455,7 +1463,7 @@ ancillary user utilities.

-git-fast-export(1) +git-fast-export(git)

@@ -1463,7 +1471,7 @@ ancillary user utilities.

-git-fast-import(1) +git-fast-import(git)

@@ -1471,7 +1479,7 @@ ancillary user utilities.

-git-filter-branch(1) +git-filter-branch(git)

@@ -1479,7 +1487,7 @@ ancillary user utilities.

-git-mergetool(1) +git-mergetool(git)

@@ -1487,7 +1495,7 @@ ancillary user utilities.

-git-pack-refs(1) +git-pack-refs(git)

@@ -1495,7 +1503,7 @@ ancillary user utilities.

-git-prune(1) +git-prune(git)

@@ -1503,7 +1511,7 @@ ancillary user utilities.

-git-reflog(1) +git-reflog(git)

@@ -1511,7 +1519,7 @@ ancillary user utilities.

-git-remote(1) +git-remote(git)

@@ -1519,7 +1527,7 @@ ancillary user utilities.

-git-repack(1) +git-repack(git)

@@ -1527,7 +1535,7 @@ ancillary user utilities.

-git-replace(1) +git-replace(git)

@@ -1538,7 +1546,7 @@ ancillary user utilities.

Interrogators:

-git-annotate(1) +git-annotate(git)

@@ -1546,7 +1554,7 @@ ancillary user utilities.

-git-blame(1) +git-blame(git)

@@ -1554,7 +1562,7 @@ ancillary user utilities.

-git-bugreport(1) +git-bugreport(git)

@@ -1562,7 +1570,7 @@ ancillary user utilities.

-git-count-objects(1) +git-count-objects(git)

@@ -1570,7 +1578,7 @@ ancillary user utilities.

-git-difftool(1) +git-difftool(git)

@@ -1578,7 +1586,7 @@ ancillary user utilities.

-git-fsck(1) +git-fsck(git)

@@ -1586,7 +1594,7 @@ ancillary user utilities.

-git-help(1) +git-help(git)

@@ -1594,7 +1602,7 @@ ancillary user utilities.

-git-instaweb(1) +git-instaweb(git)

@@ -1602,7 +1610,7 @@ ancillary user utilities.

-git-merge-tree(1) +git-merge-tree(git)

@@ -1610,7 +1618,7 @@ ancillary user utilities.

-git-rerere(1) +git-rerere(git)

@@ -1618,7 +1626,7 @@ ancillary user utilities.

-git-show-branch(1) +git-show-branch(git)

@@ -1626,7 +1634,7 @@ ancillary user utilities.

-git-verify-commit(1) +git-verify-commit(git)

@@ -1634,7 +1642,7 @@ ancillary user utilities.

-git-verify-tag(1) +git-verify-tag(git)

@@ -1642,7 +1650,7 @@ ancillary user utilities.

-git-whatchanged(1) +git-whatchanged(git)

@@ -1650,7 +1658,7 @@ ancillary user utilities.

-gitweb(1) +gitweb(git)

@@ -1665,7 +1673,7 @@ ancillary user utilities.

people via patch over e-mail.

-git-archimport(1) +git-archimport(git)

@@ -1673,7 +1681,7 @@ people via patch over e-mail.

-git-cvsexportcommit(1) +git-cvsexportcommit(git)

@@ -1681,7 +1689,7 @@ people via patch over e-mail.

-git-cvsimport(1) +git-cvsimport(git)

@@ -1689,7 +1697,7 @@ people via patch over e-mail.

-git-cvsserver(1) +git-cvsserver(git)

@@ -1697,7 +1705,7 @@ people via patch over e-mail.

-git-imap-send(1) +git-imap-send(git)

@@ -1705,7 +1713,7 @@ people via patch over e-mail.

-git-p4(1) +git-p4(git)

@@ -1713,7 +1721,7 @@ people via patch over e-mail.

-git-quiltimport(1) +git-quiltimport(git)

@@ -1721,7 +1729,7 @@ people via patch over e-mail.

-git-request-pull(1) +git-request-pull(git)

@@ -1729,7 +1737,7 @@ people via patch over e-mail.

-git-send-email(1) +git-send-email(git)

@@ -1737,7 +1745,7 @@ people via patch over e-mail.

-git-svn(1) +git-svn(git)

@@ -1801,7 +1809,7 @@ repositories.

Manipulation commands

-git-apply(1) +git-apply(git)

@@ -1809,7 +1817,7 @@ repositories.

-git-checkout-index(1) +git-checkout-index(git)

@@ -1817,7 +1825,7 @@ repositories.

-git-commit-graph(1) +git-commit-graph(git)

@@ -1825,7 +1833,7 @@ repositories.

-git-commit-tree(1) +git-commit-tree(git)

@@ -1833,7 +1841,7 @@ repositories.

-git-hash-object(1) +git-hash-object(git)

@@ -1841,7 +1849,7 @@ repositories.

-git-index-pack(1) +git-index-pack(git)

@@ -1849,7 +1857,7 @@ repositories.

-git-merge-file(1) +git-merge-file(git)

@@ -1857,7 +1865,7 @@ repositories.

-git-merge-index(1) +git-merge-index(git)

@@ -1865,7 +1873,7 @@ repositories.

-git-mktag(1) +git-mktag(git)

@@ -1873,7 +1881,7 @@ repositories.

-git-mktree(1) +git-mktree(git)

@@ -1881,7 +1889,7 @@ repositories.

-git-multi-pack-index(1) +git-multi-pack-index(git)

@@ -1889,7 +1897,7 @@ repositories.

-git-pack-objects(1) +git-pack-objects(git)

@@ -1897,7 +1905,7 @@ repositories.

-git-prune-packed(1) +git-prune-packed(git)

@@ -1905,7 +1913,7 @@ repositories.

-git-read-tree(1) +git-read-tree(git)

@@ -1913,7 +1921,7 @@ repositories.

-git-symbolic-ref(1) +git-symbolic-ref(git)

@@ -1921,7 +1929,7 @@ repositories.

-git-unpack-objects(1) +git-unpack-objects(git)

@@ -1929,7 +1937,7 @@ repositories.

-git-update-index(1) +git-update-index(git)

@@ -1937,7 +1945,7 @@ repositories.

-git-update-ref(1) +git-update-ref(git)

@@ -1945,7 +1953,7 @@ repositories.

-git-write-tree(1) +git-write-tree(git)

@@ -1958,7 +1966,7 @@ repositories.

Interrogation commands

-git-cat-file(1) +git-cat-file(git)

@@ -1966,7 +1974,7 @@ repositories.

-git-cherry(1) +git-cherry(git)

@@ -1974,7 +1982,7 @@ repositories.

-git-diff-files(1) +git-diff-files(git)

@@ -1982,7 +1990,7 @@ repositories.

-git-diff-index(1) +git-diff-index(git)

@@ -1990,7 +1998,7 @@ repositories.

-git-diff-tree(1) +git-diff-tree(git)

@@ -1998,7 +2006,7 @@ repositories.

-git-for-each-ref(1) +git-for-each-ref(git)

@@ -2006,7 +2014,7 @@ repositories.

-git-for-each-repo(1) +git-for-each-repo(git)

@@ -2014,7 +2022,7 @@ repositories.

-git-get-tar-commit-id(1) +git-get-tar-commit-id(git)

@@ -2022,7 +2030,7 @@ repositories.

-git-ls-files(1) +git-ls-files(git)

@@ -2030,7 +2038,7 @@ repositories.

-git-ls-remote(1) +git-ls-remote(git)

@@ -2038,7 +2046,7 @@ repositories.

-git-ls-tree(1) +git-ls-tree(git)

@@ -2046,7 +2054,7 @@ repositories.

-git-merge-base(1) +git-merge-base(git)

@@ -2054,7 +2062,7 @@ repositories.

-git-name-rev(1) +git-name-rev(git)

@@ -2062,7 +2070,7 @@ repositories.

-git-pack-redundant(1) +git-pack-redundant(git)

@@ -2070,7 +2078,7 @@ repositories.

-git-rev-list(1) +git-rev-list(git)

@@ -2078,7 +2086,7 @@ repositories.

-git-rev-parse(1) +git-rev-parse(git)

@@ -2086,7 +2094,7 @@ repositories.

-git-show-index(1) +git-show-index(git)

@@ -2094,7 +2102,7 @@ repositories.

-git-show-ref(1) +git-show-ref(git)

@@ -2102,7 +2110,7 @@ repositories.

-git-unpack-file(1) +git-unpack-file(git)

@@ -2110,7 +2118,7 @@ repositories.

-git-var(1) +git-var(git)

@@ -2118,7 +2126,7 @@ repositories.

-git-verify-pack(1) +git-verify-pack(git)

@@ -2133,7 +2141,7 @@ the working tree.

Syncing repositories

-git-daemon(1) +git-daemon(git)

@@ -2141,7 +2149,7 @@ the working tree.

-git-fetch-pack(1) +git-fetch-pack(git)

@@ -2149,7 +2157,7 @@ the working tree.

-git-http-backend(1) +git-http-backend(git)

@@ -2157,7 +2165,7 @@ the working tree.

-git-send-pack(1) +git-send-pack(git)

@@ -2165,7 +2173,7 @@ the working tree.

-git-update-server-info(1) +git-update-server-info(git)

@@ -2177,7 +2185,7 @@ the working tree.

typically do not use them directly.

-git-http-fetch(1) +git-http-fetch(git)

@@ -2185,7 +2193,7 @@ typically do not use them directly.

-git-http-push(1) +git-http-push(git)

@@ -2193,7 +2201,7 @@ typically do not use them directly.

-git-receive-pack(1) +git-receive-pack(git)

@@ -2201,7 +2209,7 @@ typically do not use them directly.

-git-shell(1) +git-shell(git)

@@ -2209,7 +2217,7 @@ typically do not use them directly.

-git-upload-archive(1) +git-upload-archive(git)

@@ -2217,7 +2225,7 @@ typically do not use them directly.

-git-upload-pack(1) +git-upload-pack(git)

@@ -2232,7 +2240,7 @@ typically do not use them directly.

users typically do not use them directly.

-git-check-attr(1) +git-check-attr(git)

@@ -2240,7 +2248,7 @@ users typically do not use them directly.

-git-check-ignore(1) +git-check-ignore(git)

@@ -2248,7 +2256,7 @@ users typically do not use them directly.

-git-check-mailmap(1) +git-check-mailmap(git)

@@ -2256,7 +2264,7 @@ users typically do not use them directly.

-git-check-ref-format(1) +git-check-ref-format(git)

@@ -2264,7 +2272,7 @@ users typically do not use them directly.

-git-column(1) +git-column(git)

@@ -2272,7 +2280,7 @@ users typically do not use them directly.

-git-credential(1) +git-credential(git)

@@ -2280,7 +2288,7 @@ users typically do not use them directly.

-git-credential-cache(1) +git-credential-cache(git)

@@ -2288,7 +2296,7 @@ users typically do not use them directly.

-git-credential-store(1) +git-credential-store(git)

@@ -2296,7 +2304,7 @@ users typically do not use them directly.

-git-fmt-merge-msg(1) +git-fmt-merge-msg(git)

@@ -2304,7 +2312,7 @@ users typically do not use them directly.

-git-hook(1) +git-hook(git)

@@ -2312,7 +2320,7 @@ users typically do not use them directly.

-git-interpret-trailers(1) +git-interpret-trailers(git)

@@ -2320,7 +2328,7 @@ users typically do not use them directly.

-git-mailinfo(1) +git-mailinfo(git)

@@ -2328,7 +2336,7 @@ users typically do not use them directly.

-git-mailsplit(1) +git-mailsplit(git)

@@ -2336,7 +2344,7 @@ users typically do not use them directly.

-git-merge-one-file(1) +git-merge-one-file(git)

@@ -2344,7 +2352,7 @@ users typically do not use them directly.

-git-patch-id(1) +git-patch-id(git)

@@ -2352,7 +2360,7 @@ users typically do not use them directly.

-git-sh-i18n(1) +git-sh-i18n(git)

@@ -2360,7 +2368,7 @@ users typically do not use them directly.

-git-sh-setup(1) +git-sh-setup(git)

@@ -2368,7 +2376,7 @@ users typically do not use them directly.

-git-stripspace(1) +git-stripspace(git)

@@ -2385,7 +2393,7 @@ users typically do not use them directly.

The following documentation pages are guides about Git concepts.

-gitcore-tutorial(7) +gitcore-tutorial(git)

@@ -2393,7 +2401,7 @@ users typically do not use them directly.

-gitcredentials(7) +gitcredentials(git)

@@ -2401,7 +2409,7 @@ users typically do not use them directly.

-gitcvs-migration(7) +gitcvs-migration(git)

@@ -2409,7 +2417,7 @@ users typically do not use them directly.

-gitdiffcore(7) +gitdiffcore(git)

@@ -2417,7 +2425,7 @@ users typically do not use them directly.

-giteveryday(7) +giteveryday(git)

@@ -2425,7 +2433,7 @@ users typically do not use them directly.

-gitfaq(7) +gitfaq(git)

@@ -2433,7 +2441,7 @@ users typically do not use them directly.

-gitglossary(7) +gitglossary(git)

@@ -2441,7 +2449,7 @@ users typically do not use them directly.

-gitnamespaces(7) +gitnamespaces(git)

@@ -2449,7 +2457,7 @@ users typically do not use them directly.

-gitremote-helpers(7) +gitremote-helpers(git)

@@ -2457,7 +2465,7 @@ users typically do not use them directly.

-gitsubmodules(7) +gitsubmodules(git)

@@ -2465,7 +2473,7 @@ users typically do not use them directly.

-gittutorial(7) +gittutorial(git)

@@ -2473,7 +2481,7 @@ users typically do not use them directly.

-gittutorial-2(7) +gittutorial-2(git)

@@ -2481,7 +2489,7 @@ users typically do not use them directly.

-gitworkflows(7) +gitworkflows(git)

@@ -2499,7 +2507,7 @@ users are expected to interact with directly. See --user-formats in git-help(1) for more details on the critera.

-gitattributes(5) +gitattributes(git)

@@ -2507,7 +2515,7 @@ users are expected to interact with directly. See --user-formats in

-gitcli(7) +gitcli(git)

@@ -2515,7 +2523,7 @@ users are expected to interact with directly. See --user-formats in

-githooks(5) +githooks(git)

@@ -2523,7 +2531,7 @@ users are expected to interact with directly. See --user-formats in

-gitignore(5) +gitignore(git)

@@ -2531,7 +2539,7 @@ users are expected to interact with directly. See --user-formats in

-gitmailmap(5) +gitmailmap(git)

@@ -2539,7 +2547,7 @@ users are expected to interact with directly. See --user-formats in

-gitmodules(5) +gitmodules(git)

@@ -2547,7 +2555,7 @@ users are expected to interact with directly. See --user-formats in

-gitrepository-layout(5) +gitrepository-layout(git)

@@ -2555,7 +2563,7 @@ users are expected to interact with directly. See --user-formats in

-gitrevisions(7) +gitrevisions(git)

@@ -2573,7 +2581,7 @@ other git developer interfaces. See --developer-interfaces in git-help(1).

-gitformat-bundle(5) +gitformat-bundle(git)

@@ -2581,7 +2589,7 @@ other git developer interfaces. See --developer-interfaces in

-gitformat-chunk(5) +gitformat-chunk(git)

@@ -2589,7 +2597,7 @@ other git developer interfaces. See --developer-interfaces in

-gitformat-commit-graph(5) +gitformat-commit-graph(git)

@@ -2597,7 +2605,7 @@ other git developer interfaces. See --developer-interfaces in

-gitformat-index(5) +gitformat-index(git)

@@ -2605,7 +2613,7 @@ other git developer interfaces. See --developer-interfaces in

-gitformat-pack(5) +gitformat-pack(git)

@@ -2613,7 +2621,7 @@ other git developer interfaces. See --developer-interfaces in

-gitformat-signature(5) +gitformat-signature(git)

@@ -2621,7 +2629,7 @@ other git developer interfaces. See --developer-interfaces in

-gitprotocol-capabilities(5) +gitprotocol-capabilities(git)

@@ -2629,7 +2637,7 @@ other git developer interfaces. See --developer-interfaces in

-gitprotocol-common(5) +gitprotocol-common(git)

@@ -2637,7 +2645,7 @@ other git developer interfaces. See --developer-interfaces in

-gitprotocol-http(5) +gitprotocol-http(git)

@@ -2645,7 +2653,7 @@ other git developer interfaces. See --developer-interfaces in

-gitprotocol-pack(5) +gitprotocol-pack(git)

@@ -2653,7 +2661,7 @@ other git developer interfaces. See --developer-interfaces in

-gitprotocol-v2(5) +gitprotocol-v2(git)

diff --git a/howto/coordinate-embargoed-releases.html b/howto/coordinate-embargoed-releases.html index 3f88d5723..3c34fae83 100644 --- a/howto/coordinate-embargoed-releases.html +++ b/howto/coordinate-embargoed-releases.html @@ -873,7 +873,7 @@ Thanks,

diff --git a/howto/keep-canonical-history-correct.html b/howto/keep-canonical-history-correct.html index 2a94e46c0..7eceec6c8 100644 --- a/howto/keep-canonical-history-correct.html +++ b/howto/keep-canonical-history-correct.html @@ -938,7 +938,7 @@ tip of your master again and redo the two merges:

diff --git a/howto/maintain-git.html b/howto/maintain-git.html index 170078353..27c48d24d 100644 --- a/howto/maintain-git.html +++ b/howto/maintain-git.html @@ -1469,7 +1469,7 @@ $ git update-ref -d $mf/ai/topic diff --git a/howto/new-command.html b/howto/new-command.html index ccc6f58eb..f39ac75b4 100644 --- a/howto/new-command.html +++ b/howto/new-command.html @@ -863,7 +863,7 @@ letter [PATCH 0/n]. diff --git a/howto/rebase-from-internal-branch.html b/howto/rebase-from-internal-branch.html index 9946b8c3d..09ac6723e 100644 --- a/howto/rebase-from-internal-branch.html +++ b/howto/rebase-from-internal-branch.html @@ -895,7 +895,7 @@ the #1' commit.

diff --git a/howto/rebuild-from-update-hook.html b/howto/rebuild-from-update-hook.html index 5cb2fec47..fb1bbd1da 100644 --- a/howto/rebuild-from-update-hook.html +++ b/howto/rebuild-from-update-hook.html @@ -847,7 +847,7 @@ This is still crude and does not protect against simultaneous diff --git a/howto/recover-corrupted-blob-object.html b/howto/recover-corrupted-blob-object.html index 3de0a28e7..eddc3d8c6 100644 --- a/howto/recover-corrupted-blob-object.html +++ b/howto/recover-corrupted-blob-object.html @@ -880,7 +880,7 @@ thing.

diff --git a/howto/recover-corrupted-object-harder.html b/howto/recover-corrupted-object-harder.html index 0076fcadf..4ef81ee1f 100644 --- a/howto/recover-corrupted-object-harder.html +++ b/howto/recover-corrupted-object-harder.html @@ -1189,7 +1189,7 @@ int main(int argc, char **argv) diff --git a/howto/revert-a-faulty-merge.html b/howto/revert-a-faulty-merge.html index 46ba67e84..aea3f13d0 100644 --- a/howto/revert-a-faulty-merge.html +++ b/howto/revert-a-faulty-merge.html @@ -1025,7 +1025,7 @@ P---o---o---M---x---x---W---x---M2 diff --git a/howto/revert-branch-rebase.html b/howto/revert-branch-rebase.html index 532deedf8..3720f1e7c 100644 --- a/howto/revert-branch-rebase.html +++ b/howto/revert-branch-rebase.html @@ -907,7 +907,7 @@ Committed merge 7fb9b7262a1d1e0a47bbfdcbbcf50ce0635d3f8f diff --git a/howto/separating-topic-branches.html b/howto/separating-topic-branches.html index 874d94669..3d3fd1bb3 100644 --- a/howto/separating-topic-branches.html +++ b/howto/separating-topic-branches.html @@ -841,7 +841,7 @@ o---o"master" diff --git a/howto/setup-git-server-over-http.html b/howto/setup-git-server-over-http.html index d2ec0e16b..b9e6e3574 100644 --- a/howto/setup-git-server-over-http.html +++ b/howto/setup-git-server-over-http.html @@ -1071,7 +1071,7 @@ help diagnosing the problem, but removes security checks.

diff --git a/howto/update-hook-example.html b/howto/update-hook-example.html index ed11ff587..8a2bbc2b7 100644 --- a/howto/update-hook-example.html +++ b/howto/update-hook-example.html @@ -930,7 +930,7 @@ that JC can make non-fast-forward pushes on it.

diff --git a/howto/use-git-daemon.html b/howto/use-git-daemon.html index 545440c77..c9de227ee 100644 --- a/howto/use-git-daemon.html +++ b/howto/use-git-daemon.html @@ -791,7 +791,7 @@ a good practice to put the paths after a "--" separator.

diff --git a/howto/using-merge-subtree.html b/howto/using-merge-subtree.html index 042a8dc7b..7ebc5e8f0 100644 --- a/howto/using-merge-subtree.html +++ b/howto/using-merge-subtree.html @@ -848,7 +848,7 @@ Please note that if the other project merges from you, then it will diff --git a/howto/using-signed-tag-in-pull-request.html b/howto/using-signed-tag-in-pull-request.html index 558e3de77..3f0b7eeaa 100644 --- a/howto/using-signed-tag-in-pull-request.html +++ b/howto/using-signed-tag-in-pull-request.html @@ -952,7 +952,7 @@ as part of the merge commit.

diff --git a/scalar.html b/scalar.html new file mode 100644 index 000000000..c47ab5e65 --- /dev/null +++ b/scalar.html @@ -0,0 +1,995 @@ + + + + + + +scalar(1) + + + + + +
+
+

SYNOPSIS

+
+
+
scalar clone [--single-branch] [--branch <main-branch>] [--full-clone] <url> [<enlistment>]
+scalar list
+scalar register [<enlistment>]
+scalar unregister [<enlistment>]
+scalar run ( all | config | commit-graph | fetch | loose-objects | pack-files ) [<enlistment>]
+scalar reconfigure [ --all | <enlistment> ]
+scalar diagnose [<enlistment>]
+scalar delete <enlistment>
+
+
+
+
+
+

DESCRIPTION

+
+

Scalar is a repository management tool that optimizes Git for use in large +repositories. Scalar improves performance by configuring advanced Git settings, +maintaining repositories in the background, and helping to reduce data sent +across the network.

+

An important Scalar concept is the enlistment: this is the top-level directory +of the project. It usually contains the subdirectory src/ which is a Git +worktree. This encourages the separation between tracked files (inside src/) +and untracked files, such as build artifacts (outside src/). When registering +an existing Git worktree with Scalar whose name is not src, the enlistment +will be identical to the worktree.

+

The scalar command implements various subcommands, and different options +depending on the subcommand. With the exception of clone, list and +reconfigure --all, all subcommands expect to be run in an enlistment.

+

The following options can be specified before the subcommand:

+
+
+-C <directory> +
+
+

+ Before running the subcommand, change the working directory. This + option imitates the same option of git(1). +

+
+
+-c <key>=<value> +
+
+

+ For the duration of running the specified subcommand, configure this + setting. This option imitates the same option of git(1). +

+
+
+
+
+
+

COMMANDS

+
+
+

Clone

+
+
+clone [<options>] <url> [<enlistment>] +
+
+

+ Clones the specified repository, similar to git-clone(1). By + default, only commit and tree objects are cloned. Once finished, the + worktree is located at <enlistment>/src. +

+

The sparse-checkout feature is enabled (except when run with --full-clone) +and the only files present are those in the top-level directory. Use +git sparse-checkout set to expand the set of directories you want to see, +or git sparse-checkout disable to expand to all files (see +git-sparse-checkout(1) for more details). You can explore the +subdirectories outside your sparse-checkout by using git ls-tree +HEAD[:<directory>].

+
+
+-b <name> +
+
+--branch <name> +
+
+

+ Instead of checking out the branch pointed to by the cloned + repository’s HEAD, check out the <name> branch instead. +

+
+
+--[no-]single-branch +
+
+

+ Clone only the history leading to the tip of a single branch, either + specified by the --branch option or the primary branch remote’s + HEAD points at. +

+

Further fetches into the resulting repository will only update the +remote-tracking branch for the branch this option was used for the initial +cloning. If the HEAD at the remote did not point at any branch when +--single-branch clone was made, no remote-tracking branch is created.

+
+
+--[no-]full-clone +
+
+

+ A sparse-checkout is initialized by default. This behavior can be + turned off via --full-clone. +

+
+
+
+
+

List

+
+
+list +
+
+

+ List enlistments that are currently registered by Scalar. This + subcommand does not need to be run inside an enlistment. +

+
+
+
+
+

Register

+
+
+register [<enlistment>] +
+
+

+ Adds the enlistment’s repository to the list of registered repositories + and starts background maintenance. If <enlistment> is not provided, + then the enlistment associated with the current working directory is + registered. +

+

Note: when this subcommand is called in a worktree that is called src/, its +parent directory is considered to be the Scalar enlistment. If the worktree is +not called src/, it itself will be considered to be the Scalar enlistment.

+
+
+
+
+

Unregister

+
+
+unregister [<enlistment>] +
+
+

+ Remove the specified repository from the list of repositories + registered with Scalar and stop the scheduled background maintenance. +

+
+
+
+
+

Run

+
+
+scalar run ( all | config | commit-graph | fetch | loose-objects | pack-files ) [<enlistment>] +
+
+

+ Run the given maintenance task (or all tasks, if all was specified). + Except for all and config, this subcommand simply hands off to + git-maintenance(1) (mapping fetch to prefetch and + pack-files to incremental-repack). +

+

These tasks are run automatically as part of the scheduled maintenance, +as soon as the repository is registered with Scalar. It should therefore +not be necessary to run this subcommand manually.

+

The config task is specific to Scalar and configures all those +opinionated default settings that make Git work more efficiently with +large repositories. As this task is run as part of scalar clone +automatically, explicit invocations of this task are rarely needed.

+
+
+
+
+

Reconfigure

+

After a Scalar upgrade, or when the configuration of a Scalar enlistment +was somehow corrupted or changed by mistake, this subcommand allows to +reconfigure the enlistment.

+

With the --all option, all enlistments currently registered with Scalar +will be reconfigured. Use this option after each Scalar upgrade.

+
+
+

Diagnose

+
+
+diagnose [<enlistment>] +
+
+

+ When reporting issues with Scalar, it is often helpful to provide the + information gathered by this command, including logs and certain + statistics describing the data shape of the current enlistment. +

+

The output of this command is a .zip file that is written into +a directory adjacent to the worktree in the src directory.

+
+
+
+
+

Delete

+
+
+delete <enlistment> +
+
+

+ This subcommand lets you delete an existing Scalar enlistment from your + local file system, unregistering the repository. +

+
+
+
+
+
+
+

SEE ALSO

+ +
+
+

GIT

+
+

Part of the git(1) suite

+
+
+
+

+ + + diff --git a/scalar.txt b/scalar.txt new file mode 100644 index 000000000..f33436c7f --- /dev/null +++ b/scalar.txt @@ -0,0 +1,166 @@ +scalar(1) +========= + +NAME +---- +scalar - A tool for managing large Git repositories + +SYNOPSIS +-------- +[verse] +scalar clone [--single-branch] [--branch ] [--full-clone] [] +scalar list +scalar register [] +scalar unregister [] +scalar run ( all | config | commit-graph | fetch | loose-objects | pack-files ) [] +scalar reconfigure [ --all | ] +scalar diagnose [] +scalar delete + +DESCRIPTION +----------- + +Scalar is a repository management tool that optimizes Git for use in large +repositories. Scalar improves performance by configuring advanced Git settings, +maintaining repositories in the background, and helping to reduce data sent +across the network. + +An important Scalar concept is the enlistment: this is the top-level directory +of the project. It usually contains the subdirectory `src/` which is a Git +worktree. This encourages the separation between tracked files (inside `src/`) +and untracked files, such as build artifacts (outside `src/`). When registering +an existing Git worktree with Scalar whose name is not `src`, the enlistment +will be identical to the worktree. + +The `scalar` command implements various subcommands, and different options +depending on the subcommand. With the exception of `clone`, `list` and +`reconfigure --all`, all subcommands expect to be run in an enlistment. + +The following options can be specified _before_ the subcommand: + +-C :: + Before running the subcommand, change the working directory. This + option imitates the same option of linkgit:git[1]. + +-c =:: + For the duration of running the specified subcommand, configure this + setting. This option imitates the same option of linkgit:git[1]. + +COMMANDS +-------- + +Clone +~~~~~ + +clone [] []:: + Clones the specified repository, similar to linkgit:git-clone[1]. By + default, only commit and tree objects are cloned. Once finished, the + worktree is located at `/src`. ++ +The sparse-checkout feature is enabled (except when run with `--full-clone`) +and the only files present are those in the top-level directory. Use +`git sparse-checkout set` to expand the set of directories you want to see, +or `git sparse-checkout disable` to expand to all files (see +linkgit:git-sparse-checkout[1] for more details). You can explore the +subdirectories outside your sparse-checkout by using `git ls-tree +HEAD[:]`. + +-b :: +--branch :: + Instead of checking out the branch pointed to by the cloned + repository's HEAD, check out the `` branch instead. + +--[no-]single-branch:: + Clone only the history leading to the tip of a single branch, either + specified by the `--branch` option or the primary branch remote's + `HEAD` points at. ++ +Further fetches into the resulting repository will only update the +remote-tracking branch for the branch this option was used for the initial +cloning. If the HEAD at the remote did not point at any branch when +`--single-branch` clone was made, no remote-tracking branch is created. + +--[no-]full-clone:: + A sparse-checkout is initialized by default. This behavior can be + turned off via `--full-clone`. + +List +~~~~ + +list:: + List enlistments that are currently registered by Scalar. This + subcommand does not need to be run inside an enlistment. + +Register +~~~~~~~~ + +register []:: + Adds the enlistment's repository to the list of registered repositories + and starts background maintenance. If `` is not provided, + then the enlistment associated with the current working directory is + registered. ++ +Note: when this subcommand is called in a worktree that is called `src/`, its +parent directory is considered to be the Scalar enlistment. If the worktree is +_not_ called `src/`, it itself will be considered to be the Scalar enlistment. + +Unregister +~~~~~~~~~~ + +unregister []:: + Remove the specified repository from the list of repositories + registered with Scalar and stop the scheduled background maintenance. + +Run +~~~ + +scalar run ( all | config | commit-graph | fetch | loose-objects | pack-files ) []:: + Run the given maintenance task (or all tasks, if `all` was specified). + Except for `all` and `config`, this subcommand simply hands off to + linkgit:git-maintenance[1] (mapping `fetch` to `prefetch` and + `pack-files` to `incremental-repack`). ++ +These tasks are run automatically as part of the scheduled maintenance, +as soon as the repository is registered with Scalar. It should therefore +not be necessary to run this subcommand manually. ++ +The `config` task is specific to Scalar and configures all those +opinionated default settings that make Git work more efficiently with +large repositories. As this task is run as part of `scalar clone` +automatically, explicit invocations of this task are rarely needed. + +Reconfigure +~~~~~~~~~~~ + +After a Scalar upgrade, or when the configuration of a Scalar enlistment +was somehow corrupted or changed by mistake, this subcommand allows to +reconfigure the enlistment. + +With the `--all` option, all enlistments currently registered with Scalar +will be reconfigured. Use this option after each Scalar upgrade. + +Diagnose +~~~~~~~~ + +diagnose []:: + When reporting issues with Scalar, it is often helpful to provide the + information gathered by this command, including logs and certain + statistics describing the data shape of the current enlistment. ++ +The output of this command is a `.zip` file that is written into +a directory adjacent to the worktree in the `src` directory. + +Delete +~~~~~~ + +delete :: + This subcommand lets you delete an existing Scalar enlistment from your + local file system, unregistering the repository. + +SEE ALSO +-------- +linkgit:git-clone[1], linkgit:git-maintenance[1]. + +GIT +--- +Part of the linkgit:git[1] suite diff --git a/technical/scalar.html b/technical/scalar.html new file mode 100644 index 000000000..12b4355d0 --- /dev/null +++ b/technical/scalar.html @@ -0,0 +1,840 @@ + + + + + + +Scalar + + + + + +
+
+
+

Scalar is a repository management tool that optimizes Git for use in large +repositories. It accomplishes this by helping users to take advantage of +advanced performance features in Git. Unlike most other Git built-in commands, +Scalar is not executed as a subcommand of git; rather, it is built as a +separate executable containing its own series of subcommands.

+
+
+
+

Background

+
+

Scalar was originally designed as an add-on to Git and implemented as a .NET +Core application. It was created based on the learnings from the VFS for Git +project (another application aimed at improving the experience of working with +large repositories). As part of its initial implementation, Scalar relied on +custom features in the Microsoft fork of Git that have since been integrated +into core Git:

+
    +
  • +

    +partial clone, +

    +
  • +
  • +

    +commit graphs, +

    +
  • +
  • +

    +multi-pack index, +

    +
  • +
  • +

    +sparse checkout (cone mode), +

    +
  • +
  • +

    +scheduled background maintenance, +

    +
  • +
  • +

    +etc +

    +
  • +
+

With the requisite Git functionality in place and a desire to bring the benefits +of Scalar to the larger Git community, the Scalar application itself was ported +from C# to C and integrated upstream.

+
+
+
+

Features

+
+

Scalar is comprised of two major pieces of functionality: automatically +configuring built-in Git performance features and managing repository +enlistments.

+

The Git performance features configured by Scalar (see "Background" for +examples) confer substantial performance benefits to large repositories, but are +either too experimental to enable for all of Git yet, or only benefit large +repositories. As new features are introduced, Scalar should be updated +accordingly to incorporate them. This will prevent the tool from becoming stale +while also providing a path for more easily bringing features to the appropriate +users.

+

Enlistments are how Scalar knows which repositories on a user’s system should +utilize Scalar-configured features. This allows it to update performance +settings when new ones are added to the tool, as well as centrally manage +repository maintenance. The enlistment structure - a root directory with a +src/ subdirectory containing the cloned repository itself - is designed to +encourage users to route build outputs outside of the repository to avoid the +performance-limiting overhead of ignoring those files in Git.

+
+
+
+

Design

+
+

Scalar is implemented in C and interacts with Git via a mix of child process +invocations of Git and direct usage of libgit.a. Internally, it is structured +much like other built-ins with subcommands (e.g., git stash), containing a +cmd_<subcommand>() function for each subcommand, routed through a cmd_main() +function. Most options are unique to each subcommand, with scalar respecting +some "global" git options (e.g., -c and -C).

+

Because scalar is not invoked as a Git subcommand (like git scalar), it is +built and installed as its own executable in the bin/ directory, alongside +git, git-gui, etc.

+
+
+
+

+ + + diff --git a/technical/scalar.txt b/technical/scalar.txt index 0600150b3..921cb104c 100644 --- a/technical/scalar.txt +++ b/technical/scalar.txt @@ -64,64 +64,3 @@ some "global" `git` options (e.g., `-c` and `-C`). Because `scalar` is not invoked as a Git subcommand (like `git scalar`), it is built and installed as its own executable in the `bin/` directory, alongside `git`, `git-gui`, etc. - -Roadmap -------- - -NOTE: this section will be removed once the remaining tasks outlined in this -roadmap are complete. - -Scalar is a large enough project that it is being upstreamed incrementally, -living in `contrib/` until it is feature-complete. So far, the following patch -series have been accepted: - -- `scalar-the-beginning`: The initial patch series which sets up - `contrib/scalar/` and populates it with a minimal `scalar` command that - demonstrates the fundamental ideas. - -- `scalar-c-and-C`: The `scalar` command learns about two options that can be - specified before the command, `-c =` and `-C `. - -- `scalar-diagnose`: The `scalar` command is taught the `diagnose` subcommand. - -- `scalar-generalize-diagnose`: Move the functionality of `scalar diagnose` - into `git diagnose` and `git bugreport --diagnose`. - -- 'scalar-add-fsmonitor: Enable the built-in FSMonitor in Scalar - enlistments. At the end of this series, Scalar should be feature-complete - from the perspective of a user. - -Roughly speaking (and subject to change), the following series are needed to -"finish" this initial version of Scalar: - -- Move Scalar to toplevel: Move Scalar out of `contrib/` and into the root of - `git`. This includes a variety of related updates, including: - - building & installing Scalar in the Git root-level 'make [install]'. - - builing & testing Scalar as part of CI. - - moving and expanding test coverage of Scalar (including perf tests). - - implementing 'scalar help'/'git help scalar' to display scalar - documentation. - -Finally, there are two additional patch series that exist in Microsoft's fork of -Git, but there is no current plan to upstream them. There are some interesting -ideas there, but the implementation is too specific to Azure Repos and/or VFS -for Git to be of much help in general. - -These still exist mainly because the GVFS protocol is what Azure Repos has -instead of partial clone, while Git is focused on improving partial clone: - -- `scalar-with-gvfs`: The primary purpose of this patch series is to support - existing Scalar users whose repositories are hosted in Azure Repos (which does - not support Git's partial clones, but supports its predecessor, the GVFS - protocol, which is used by Scalar to emulate the partial clone). - - Since the GVFS protocol will never be supported by core Git, this patch series - will remain in Microsoft's fork of Git. - -- `run-scalar-functional-tests`: The Scalar project developed a quite - comprehensive set of integration tests (or, "Functional Tests"). They are the - sole remaining part of the original C#-based Scalar project, and this patch - adds a GitHub workflow that runs them all. - - Since the tests partially depend on features that are only provided in the - `scalar-with-gvfs` patch series, this patch cannot be upstreamed. -- cgit 1.2.3-korg