diff options
34 files changed, 163 insertions, 50 deletions
diff --git a/RelNotes/2.39.0.txt b/RelNotes/2.39.0.txt index 7096f0768..f21f94947 100644 --- a/RelNotes/2.39.0.txt +++ b/RelNotes/2.39.0.txt @@ -29,6 +29,9 @@ UI, Workflows & Features existing bugs in the internal patch-id logic that did not match what "git patch-id" produces have been corrected. + * Enable gc.cruftpacks by default for those who opt into + feature.experimental setting. + Performance, Internal Implementation, Development Support etc. -------------------------------------------------------------- @@ -84,6 +87,17 @@ Performance, Internal Implementation, Development Support etc. * Make sure generated dependency file is stably sorted to help developers debugging their build issues. + * The glossary entries for "commit-graph file" and "reachability + bitmap" have been added. + + * Various tests exercising the transfer.credentialsInUrl + configuration are taught to avoid making requests which require + resolving localhost to reduce CI-flakiness. + + * A redundant diagnostic message is dropped from test_path_is_missing(). + + * Simplify the run-command API. + Fixes since v2.38 ----------------- @@ -219,6 +233,12 @@ Fixes since v2.38 configuration are taught to avoid making requests which require resolving localhost to reduce CI-flakiness. + * The adjust_shared_perm() helper function learned to refrain from + setting the "g+s" bit on directories when it is not necessary. + + * "git archive" mistakenly complained twice about a missing + executable, which has been corrected. + * Other code cleanup, docfix, build fix, etc. (merge 413bc6d20a ds/cmd-main-reorder later to maint). (merge 8d2863e4ed nw/t1002-cleanup later to maint). diff --git a/cmds-developerinterfaces.txt b/cmds-developerinterfaces.txt index e060960bb..810ebe5a1 100644 --- a/cmds-developerinterfaces.txt +++ b/cmds-developerinterfaces.txt @@ -5,7 +5,7 @@ linkgit:gitformat-chunk[5]:: Chunk-based file formats. linkgit:gitformat-commit-graph[5]:: - Git commit graph format. + Git commit-graph format. linkgit:gitformat-index[5]:: Git index format. diff --git a/git-config.html b/git-config.html index 85a5bb365..a497dbdf9 100644 --- a/git-config.html +++ b/git-config.html @@ -3199,7 +3199,7 @@ but risks losing recent work in the event of an unclean system shutdown.</p></di </li>
<li>
<p>
-<code>commit-graph</code> hardens the commit graph file.
+<code>commit-graph</code> hardens the commit-graph file.
</p>
</li>
<li>
@@ -5403,6 +5403,12 @@ feature.experimental skipping more commits at a time, reducing the number of round trips.
</p>
</li>
+<li>
+<p>
+<code>gc.cruftPacks=true</code> reduces disk space used by unreachable objects during
+garbage collection, preventing loose object explosions.
+</p>
+</li>
</ul></div>
</dd>
<dt class="hdlist1">
diff --git a/git-ls-files.html b/git-ls-files.html index b3772663f..e81b784bf 100644 --- a/git-ls-files.html +++ b/git-ls-files.html @@ -750,8 +750,8 @@ git-ls-files(1) Manual Page <div class="sectionbody">
<div class="verseblock">
<pre class="content"><em>git ls-files</em> [-z] [-t] [-v] [-f]
- [-c|--cached] [-d|--deleted] [-o|--others] [-i|--|ignored]
- [-s|--stage] [-u|--unmerged] [-k|--|killed] [-m|--modified]
+ [-c|--cached] [-d|--deleted] [-o|--others] [-i|--ignored]
+ [-s|--stage] [-u|--unmerged] [-k|--killed] [-m|--modified]
[--directory [--no-empty-directory]] [--eol]
[--deduplicate]
[-x <pattern>|--exclude=<pattern>]
@@ -1327,7 +1327,7 @@ pattern file appears in.</p></div> <div id="footer">
<div id="footer-text">
Last updated
- 2022-08-03 14:33:44 PDT
+ 2022-11-11 23:55:30 PST
</div>
</div>
</body>
diff --git a/git-ls-files.txt b/git-ls-files.txt index d7986419c..440043cdb 100644 --- a/git-ls-files.txt +++ b/git-ls-files.txt @@ -10,8 +10,8 @@ SYNOPSIS -------- [verse] 'git ls-files' [-z] [-t] [-v] [-f] - [-c|--cached] [-d|--deleted] [-o|--others] [-i|--|ignored] - [-s|--stage] [-u|--unmerged] [-k|--|killed] [-m|--modified] + [-c|--cached] [-d|--deleted] [-o|--others] [-i|--ignored] + [-s|--stage] [-u|--unmerged] [-k|--killed] [-m|--modified] [--directory [--no-empty-directory]] [--eol] [--deduplicate] [-x <pattern>|--exclude=<pattern>] diff --git a/git-pack-redundant.html b/git-pack-redundant.html index 85fe9b035..46a10b30e 100644 --- a/git-pack-redundant.html +++ b/git-pack-redundant.html @@ -786,7 +786,7 @@ git pack-redundant --all | xargs rm</p></div> <dd>
<p>
Don’t require objects present in packs from alternate object
- directories to be present in local packs.
+ database (odb) directories to be present in local packs.
</p>
</dd>
<dt class="hdlist1">
@@ -819,7 +819,7 @@ git pack-redundant --all | xargs rm</p></div> <div id="footer">
<div id="footer-text">
Last updated
- 2022-10-28 11:53:56 PDT
+ 2022-11-11 23:55:30 PST
</div>
</div>
</body>
diff --git a/git-pack-redundant.txt b/git-pack-redundant.txt index dda80a740..99ef13839 100644 --- a/git-pack-redundant.txt +++ b/git-pack-redundant.txt @@ -34,7 +34,7 @@ OPTIONS --alt-odb:: Don't require objects present in packs from alternate object - directories to be present in local packs. + database (odb) directories to be present in local packs. --verbose:: Outputs some statistics to stderr. Has a small performance penalty. @@ -2617,7 +2617,7 @@ other git developer interfaces. See <code>--developer-interfaces</code> in </dt>
<dd>
<p>
- Git commit graph format.
+ Git commit-graph format.
</p>
</dd>
<dt class="hdlist1">
diff --git a/gitformat-commit-graph.html b/gitformat-commit-graph.html index 6db4b769a..feaa323ed 100644 --- a/gitformat-commit-graph.html +++ b/gitformat-commit-graph.html @@ -740,7 +740,7 @@ gitformat-commit-graph(5) Manual Page <h2>NAME</h2>
<div class="sectionbody">
<p>gitformat-commit-graph -
- Git commit graph format
+ Git commit-graph format
</p>
</div>
</div>
@@ -758,7 +758,7 @@ $GIT_DIR/objects/info/commit-graphs/*</pre> <div class="sect1">
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
-<div class="paragraph"><p>The Git commit graph stores a list of commit OIDs and some associated
+<div class="paragraph"><p>The Git commit-graph stores a list of commit OIDs and some associated
metadata, including:</p></div>
<div class="ulist"><ul>
<li>
@@ -796,7 +796,7 @@ to some special constants we use to track parents, we can store at most </div>
</div>
<div class="sect1">
-<h2 id="_commit_graph_files_have_the_following_format">Commit graph files have the following format:</h2>
+<h2 id="_commit_graph_files_have_the_following_format">Commit-graph files have the following format:</h2>
<div class="sectionbody">
<div class="paragraph"><p>In order to allow extensions that add extra data to the graph, we organize
the body into "chunks" and provide a binary lookup table at the beginning
@@ -1076,7 +1076,7 @@ chunks and write the new information without trusting the incorrect data.</p></d <div id="footer">
<div id="footer-text">
Last updated
- 2022-08-18 14:11:07 PDT
+ 2022-11-11 23:55:30 PST
</div>
</div>
</body>
diff --git a/gitformat-commit-graph.txt b/gitformat-commit-graph.txt index 732466571..31cad585e 100644 --- a/gitformat-commit-graph.txt +++ b/gitformat-commit-graph.txt @@ -3,7 +3,7 @@ gitformat-commit-graph(5) NAME ---- -gitformat-commit-graph - Git commit graph format +gitformat-commit-graph - Git commit-graph format SYNOPSIS -------- @@ -14,7 +14,7 @@ $GIT_DIR/objects/info/commit-graphs/* DESCRIPTION ----------- -The Git commit graph stores a list of commit OIDs and some associated +The Git commit-graph stores a list of commit OIDs and some associated metadata, including: - The generation number of the commit. @@ -34,7 +34,7 @@ corresponding to the array position within the list of commit OIDs. Due to some special constants we use to track parents, we can store at most (1 << 30) + (1 << 29) + (1 << 28) - 1 (around 1.8 billion) commits. -== Commit graph files have the following format: +== Commit-graph files have the following format: In order to allow extensions that add extra data to the graph, we organize the body into "chunks" and provide a binary lookup table at the beginning diff --git a/gitglossary.html b/gitglossary.html index 1369a7461..6d0632f87 100644 --- a/gitglossary.html +++ b/gitglossary.html @@ -796,7 +796,7 @@ gitglossary(7) Manual Page <p>
A "branch" is a line of development. The most recent
<a href="#def_commit">commit</a> on a branch is referred to as the tip of
- that branch. The tip of the branch is referenced by a branch
+ that branch. The tip of the branch is <a href="#def_ref">referenced</a> by a branch
<a href="#def_head">head</a>, which moves forward as additional development
is done on the branch. A single Git
<a href="#def_repository">repository</a> can track an arbitrary number of
@@ -887,6 +887,31 @@ state of the <a href="#def_index">index</a> and advancing <a href="#def_HEAD">HE to point at the new commit.</p></div>
</dd>
<dt class="hdlist1">
+<a id="def_commit_graph_general"></a>commit graph concept, representations and usage
+</dt>
+<dd>
+<p>
+ A synonym for the <a href="#def_DAG">DAG</a> structure formed by the commits
+ in the object database, <a href="#def_ref">referenced</a> by branch tips,
+ using their <a href="#def_chain">chain</a> of linked commits.
+ This structure is the definitive commit graph. The
+ graph can be represented in other ways, e.g. the
+ <a href="#def_commit_graph_file">"commit-graph" file</a>.
+</p>
+</dd>
+<dt class="hdlist1">
+<a id="def_commit_graph_file"></a>commit-graph file
+</dt>
+<dd>
+<p>
+ The "commit-graph" (normally hyphenated) file is a supplemental
+ representation of the <a href="#def_commit_graph_general">commit graph</a>
+ which accelerates commit graph walks. The "commit-graph" file is
+ stored either in the .git/objects/info directory or in the info
+ directory of an alternate object database.
+</p>
+</dd>
+<dt class="hdlist1">
<a id="def_commit_object"></a>commit object
</dt>
<dd>
@@ -1200,7 +1225,7 @@ This commit is referred to as a "merge commit", or sometimes just a </p>
</dd>
<dt class="hdlist1">
-<a id="def_object_identifier"></a>object identifier
+<a id="def_object_identifier"></a>object identifier (oid)
</dt>
<dd>
<p>
@@ -1585,6 +1610,19 @@ exclude </p>
</dd>
<dt class="hdlist1">
+<a id="def_reachability_bitmap"></a>reachability bitmaps
+</dt>
+<dd>
+<p>
+ Reachability bitmaps store information about the
+ <a href="#def_reachable">reachability</a> of a selected set of commits in
+ a packfile, or a multi-pack index (MIDX), to speed up object search.
+ The bitmaps are stored in a ".bitmap" file. A repository may have at
+ most one bitmap file in use. The bitmap file may belong to either one
+ pack, or the repository’s multi-pack index (if it exists).
+</p>
+</dd>
+<dt class="hdlist1">
<a id="def_rebase"></a>rebase
</dt>
<dd>
diff --git a/glossary-content.txt b/glossary-content.txt index aa2f41f5e..5a537268e 100644 --- a/glossary-content.txt +++ b/glossary-content.txt @@ -20,7 +20,7 @@ [[def_branch]]branch:: A "branch" is a line of development. The most recent <<def_commit,commit>> on a branch is referred to as the tip of - that branch. The tip of the branch is referenced by a branch + that branch. The tip of the branch is <<def_ref,referenced>> by a branch <<def_head,head>>, which moves forward as additional development is done on the branch. A single Git <<def_repository,repository>> can track an arbitrary number of @@ -75,6 +75,21 @@ state in the Git history, by creating a new commit representing the current state of the <<def_index,index>> and advancing <<def_HEAD,HEAD>> to point at the new commit. +[[def_commit_graph_general]]commit graph concept, representations and usage:: + A synonym for the <<def_DAG,DAG>> structure formed by the commits + in the object database, <<def_ref,referenced>> by branch tips, + using their <<def_chain,chain>> of linked commits. + This structure is the definitive commit graph. The + graph can be represented in other ways, e.g. the + <<def_commit_graph_file,"commit-graph" file>>. + +[[def_commit_graph_file]]commit-graph file:: + The "commit-graph" (normally hyphenated) file is a supplemental + representation of the <<def_commit_graph_general,commit graph>> + which accelerates commit graph walks. The "commit-graph" file is + stored either in the .git/objects/info directory or in the info + directory of an alternate object database. + [[def_commit_object]]commit object:: An <<def_object,object>> which contains the information about a particular <<def_revision,revision>>, such as <<def_parent,parents>>, committer, @@ -262,7 +277,7 @@ This commit is referred to as a "merge commit", or sometimes just a identified by its <<def_object_name,object name>>. The objects usually live in `$GIT_DIR/objects/`. -[[def_object_identifier]]object identifier:: +[[def_object_identifier]]object identifier (oid):: Synonym for <<def_object_name,object name>>. [[def_object_name]]object name:: @@ -493,6 +508,14 @@ exclude;; <<def_tree_object,trees>> to the trees or <<def_blob_object,blobs>> that they contain. +[[def_reachability_bitmap]]reachability bitmaps:: + Reachability bitmaps store information about the + <<def_reachable,reachability>> of a selected set of commits in + a packfile, or a multi-pack index (MIDX), to speed up object search. + The bitmaps are stored in a ".bitmap" file. A repository may have at + most one bitmap file in use. The bitmap file may belong to either one + pack, or the repository's multi-pack index (if it exists). + [[def_rebase]]rebase:: To reapply a series of changes from a <<def_branch,branch>> to a different base, and reset the <<def_head,head>> of that branch diff --git a/howto-index.html b/howto-index.html index c5b645ef6..fce1f88c4 100644 --- a/howto-index.html +++ b/howto-index.html @@ -895,7 +895,7 @@ later validate it.</p></div> <div id="footer">
<div id="footer-text">
Last updated
- 2022-11-04 21:49:37 PDT
+ 2022-11-11 23:55:31 PST
</div>
</div>
</body>
diff --git a/howto/coordinate-embargoed-releases.html b/howto/coordinate-embargoed-releases.html index 9b449a171..674e7634b 100644 --- a/howto/coordinate-embargoed-releases.html +++ b/howto/coordinate-embargoed-releases.html @@ -1038,7 +1038,7 @@ Thanks, <div id="footer">
<div id="footer-text">
Last updated
- 2022-11-04 21:50:28 PDT
+ 2022-11-11 23:56:48 PST
</div>
</div>
</body>
diff --git a/howto/keep-canonical-history-correct.html b/howto/keep-canonical-history-correct.html index 019afbc06..3720eae1d 100644 --- a/howto/keep-canonical-history-correct.html +++ b/howto/keep-canonical-history-correct.html @@ -938,7 +938,7 @@ tip of your <em>master</em> again and redo the two merges:</p></div> <div id="footer">
<div id="footer-text">
Last updated
- 2022-11-04 21:50:28 PDT
+ 2022-11-11 23:56:48 PST
</div>
</div>
</body>
diff --git a/howto/maintain-git.html b/howto/maintain-git.html index 767862584..4c52785fa 100644 --- a/howto/maintain-git.html +++ b/howto/maintain-git.html @@ -1148,7 +1148,7 @@ merged to 'next', add it at the end of the list. Then:</code></pre> <div class="literalblock">
<div class="content">
<pre><code>$ git checkout -B jch master
-$ Meta/redo-jch.sh -c1</code></pre>
+$ sh Meta/redo-jch.sh -c1</code></pre>
</div></div>
<div class="literalblock">
<div class="content">
@@ -1469,7 +1469,7 @@ $ git update-ref -d $mf/ai/topic</code></pre> <div id="footer">
<div id="footer-text">
Last updated
- 2022-11-04 21:50:28 PDT
+ 2022-11-11 23:56:48 PST
</div>
</div>
</body>
diff --git a/howto/maintain-git.txt b/howto/maintain-git.txt index a67130deb..215e2edb0 100644 --- a/howto/maintain-git.txt +++ b/howto/maintain-git.txt @@ -256,7 +256,7 @@ by doing the following: merged to 'next', add it at the end of the list. Then: $ git checkout -B jch master - $ Meta/redo-jch.sh -c1 + $ sh Meta/redo-jch.sh -c1 to rebuild the 'jch' branch from scratch. "-c1" tells the script to stop merging at the first line that begins with '###' diff --git a/howto/new-command.html b/howto/new-command.html index 251a7b5ac..0cf4bbb07 100644 --- a/howto/new-command.html +++ b/howto/new-command.html @@ -863,7 +863,7 @@ letter [PATCH 0/n]. <div id="footer">
<div id="footer-text">
Last updated
- 2022-11-04 21:50:25 PDT
+ 2022-11-11 23:56:43 PST
</div>
</div>
</body>
diff --git a/howto/rebase-from-internal-branch.html b/howto/rebase-from-internal-branch.html index 5270b7200..b8bee9488 100644 --- a/howto/rebase-from-internal-branch.html +++ b/howto/rebase-from-internal-branch.html @@ -895,7 +895,7 @@ the #1' commit.</p></div> <div id="footer">
<div id="footer-text">
Last updated
- 2022-11-04 21:50:28 PDT
+ 2022-11-11 23:56:47 PST
</div>
</div>
</body>
diff --git a/howto/rebuild-from-update-hook.html b/howto/rebuild-from-update-hook.html index 76726d633..5f2826463 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 <div id="footer">
<div id="footer-text">
Last updated
- 2022-11-04 21:50:28 PDT
+ 2022-11-11 23:56:47 PST
</div>
</div>
</body>
diff --git a/howto/recover-corrupted-blob-object.html b/howto/recover-corrupted-blob-object.html index 052527675..483f1bc13 100644 --- a/howto/recover-corrupted-blob-object.html +++ b/howto/recover-corrupted-blob-object.html @@ -880,7 +880,7 @@ thing.</p></div> <div id="footer">
<div id="footer-text">
Last updated
- 2022-11-04 21:50:27 PDT
+ 2022-11-11 23:56:46 PST
</div>
</div>
</body>
diff --git a/howto/recover-corrupted-object-harder.html b/howto/recover-corrupted-object-harder.html index 911c5138c..dab820e32 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) <div id="footer">
<div id="footer-text">
Last updated
- 2022-11-04 21:50:28 PDT
+ 2022-11-11 23:56:47 PST
</div>
</div>
</body>
diff --git a/howto/revert-a-faulty-merge.html b/howto/revert-a-faulty-merge.html index 8208e1047..83fcab67d 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 <div id="footer">
<div id="footer-text">
Last updated
- 2022-11-04 21:50:27 PDT
+ 2022-11-11 23:56:46 PST
</div>
</div>
</body>
diff --git a/howto/revert-branch-rebase.html b/howto/revert-branch-rebase.html index 339ea0217..37b9e9c46 100644 --- a/howto/revert-branch-rebase.html +++ b/howto/revert-branch-rebase.html @@ -907,7 +907,7 @@ Committed merge 7fb9b7262a1d1e0a47bbfdcbbcf50ce0635d3f8f <div id="footer">
<div id="footer-text">
Last updated
- 2022-11-04 21:50:25 PDT
+ 2022-11-11 23:56:43 PST
</div>
</div>
</body>
diff --git a/howto/separating-topic-branches.html b/howto/separating-topic-branches.html index ed4baa4e3..ff25192bb 100644 --- a/howto/separating-topic-branches.html +++ b/howto/separating-topic-branches.html @@ -841,7 +841,7 @@ o---o"master"</code></pre> <div id="footer">
<div id="footer-text">
Last updated
- 2022-11-04 21:50:27 PDT
+ 2022-11-11 23:56:46 PST
</div>
</div>
</body>
diff --git a/howto/setup-git-server-over-http.html b/howto/setup-git-server-over-http.html index 51b0cbb45..dfec30cab 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.</p></div> <div id="footer">
<div id="footer-text">
Last updated
- 2022-11-04 21:50:27 PDT
+ 2022-11-11 23:56:45 PST
</div>
</div>
</body>
diff --git a/howto/update-hook-example.html b/howto/update-hook-example.html index 874750282..b64308833 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.</p></div> <div id="footer">
<div id="footer-text">
Last updated
- 2022-11-04 21:50:26 PDT
+ 2022-11-11 23:56:45 PST
</div>
</div>
</body>
diff --git a/howto/use-git-daemon.html b/howto/use-git-daemon.html index d06b19cf4..8a82321f0 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.</p></div> <div id="footer">
<div id="footer-text">
Last updated
- 2022-11-04 21:50:26 PDT
+ 2022-11-11 23:56:44 PST
</div>
</div>
</body>
diff --git a/howto/using-merge-subtree.html b/howto/using-merge-subtree.html index cead6e188..a505aa161 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 <div id="footer">
<div id="footer-text">
Last updated
- 2022-11-04 21:50:25 PDT
+ 2022-11-11 23:56:43 PST
</div>
</div>
</body>
diff --git a/howto/using-signed-tag-in-pull-request.html b/howto/using-signed-tag-in-pull-request.html index c3a6e94de..a16e0ef79 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.</p></div> <div id="footer">
<div id="footer-text">
Last updated
- 2022-11-04 21:50:26 PDT
+ 2022-11-11 23:56:44 PST
</div>
</div>
</body>
diff --git a/technical/commit-graph.txt b/technical/commit-graph.txt index 90c9760c2..86fed0de0 100644 --- a/technical/commit-graph.txt +++ b/technical/commit-graph.txt @@ -1,4 +1,4 @@ -Git Commit Graph Design Notes +Git Commit-Graph Design Notes ============================= Git walks the commit graph for many reasons, including: @@ -17,7 +17,7 @@ There are two main costs here: The commit-graph file is a supplemental data structure that accelerates commit graph walks. If a user downgrades or disables the 'core.commitGraph' -config setting, then the existing ODB is sufficient. The file is stored +config setting, then the existing object database is sufficient. The file is stored as "commit-graph" either in the .git/objects/info directory or in the info directory of an alternate. @@ -95,7 +95,7 @@ with default order), but is not used when the topological order is required (such as merge base calculations, "git log --graph"). In practice, we expect some commits to be created recently and not stored -in the commit graph. We can treat these commits as having "infinite" +in the commit-graph. We can treat these commits as having "infinite" generation number and walk until reaching commits with known generation number. @@ -149,7 +149,7 @@ Design Details helpful for these clones, anyway. The commit-graph will not be read or written when shallow commits are present. -Commit Graphs Chains +Commit-Graphs Chains -------------------- Typically, repos grow with near-constant velocity (commits per day). Over time, diff --git a/technical/parallel-checkout.html b/technical/parallel-checkout.html index 74bca8547..7a2ae5e47 100644 --- a/technical/parallel-checkout.html +++ b/technical/parallel-checkout.html @@ -818,7 +818,7 @@ and uses parallel workers to replace the sequential <div class="sectionbody">
<div class="paragraph"><p>The most "straightforward" implementation would be to spread the set of
to-be-updated cache entries across multiple threads. But due to the
-thread-unsafe functions in the ODB code, we would have to use locks to
+thread-unsafe functions in the object database code, we would have to use locks to
coordinate the parallel operation. An early prototype of this solution
showed that the multi-threaded checkout would bring performance
improvements over the sequential code, but there was still too much lock
@@ -1075,7 +1075,7 @@ err |= run_parallel_checkout(&state, pc_workers, pc_threshold, NULL, NULL);< <div id="footer">
<div id="footer-text">
Last updated
- 2021-04-29 23:16:11 PDT
+ 2022-11-11 23:55:30 PST
</div>
</div>
</body>
diff --git a/technical/parallel-checkout.txt b/technical/parallel-checkout.txt index e790258a1..47c9b6183 100644 --- a/technical/parallel-checkout.txt +++ b/technical/parallel-checkout.txt @@ -56,7 +56,7 @@ Rejected Multi-Threaded Solution The most "straightforward" implementation would be to spread the set of to-be-updated cache entries across multiple threads. But due to the -thread-unsafe functions in the ODB code, we would have to use locks to +thread-unsafe functions in the object database code, we would have to use locks to coordinate the parallel operation. An early prototype of this solution showed that the multi-threaded checkout would bring performance improvements over the sequential code, but there was still too much lock diff --git a/user-manual.html b/user-manual.html index f29318aad..47d7266cd 100644 --- a/user-manual.html +++ b/user-manual.html @@ -1974,7 +1974,7 @@ itself!</p></div></div><div class="chapter"><div class="titlepage"><div><div><h1 </span></dt><dd> A "branch" is a line of development. The most recent <a class="link" href="#def_commit">commit</a> on a branch is referred to as the tip of - that branch. The tip of the branch is referenced by a branch + that branch. The tip of the branch is <a class="link" href="#def_ref">referenced</a> by a branch <a class="link" href="#def_head">head</a>, which moves forward as additional development is done on the branch. A single Git <a class="link" href="#def_repository">repository</a> can track an arbitrary number of @@ -2034,6 +2034,23 @@ itself!</p></div></div><div class="chapter"><div class="titlepage"><div><div><h1 state in the Git history, by creating a new commit representing the current state of the <a class="link" href="#def_index">index</a> and advancing <a class="link" href="#def_HEAD">HEAD</a> to point at the new commit.</p></dd><dt><span class="term"> +<a name="def_commit_graph_general"></a>commit graph concept, representations and usage +</span></dt><dd> + A synonym for the <a class="link" href="#def_DAG">DAG</a> structure formed by the commits + in the object database, <a class="link" href="#def_ref">referenced</a> by branch tips, + using their <a class="link" href="#def_chain">chain</a> of linked commits. + This structure is the definitive commit graph. The + graph can be represented in other ways, e.g. the + <a class="link" href="#def_commit_graph_file">"commit-graph" file</a>. +</dd><dt><span class="term"> +<a name="def_commit_graph_file"></a>commit-graph file +</span></dt><dd> + The "commit-graph" (normally hyphenated) file is a supplemental + representation of the <a class="link" href="#def_commit_graph_general">commit graph</a> + which accelerates commit graph walks. The "commit-graph" file is + stored either in the .git/objects/info directory or in the info + directory of an alternate object database. +</dd><dt><span class="term"> <a name="def_commit_object"></a>commit object </span></dt><dd> An <a class="link" href="#def_object">object</a> which contains the information about a @@ -2240,7 +2257,7 @@ This commit is referred to as a "merge commit", or sometimes just a identified by its <a class="link" href="#def_object_name">object name</a>. The objects usually live in <code class="literal">$GIT_DIR/objects/</code>. </dd><dt><span class="term"> -<a name="def_object_identifier"></a>object identifier +<a name="def_object_identifier"></a>object identifier (oid) </span></dt><dd> Synonym for <a class="link" href="#def_object_name">object name</a>. </dd><dt><span class="term"> @@ -2473,6 +2490,15 @@ exclude <a class="link" href="#def_tree_object">trees</a> to the trees or <a class="link" href="#def_blob_object">blobs</a> that they contain. </dd><dt><span class="term"> +<a name="def_reachability_bitmap"></a>reachability bitmaps +</span></dt><dd> + Reachability bitmaps store information about the + <a class="link" href="#def_reachable">reachability</a> of a selected set of commits in + a packfile, or a multi-pack index (MIDX), to speed up object search. + The bitmaps are stored in a ".bitmap" file. A repository may have at + most one bitmap file in use. The bitmap file may belong to either one + pack, or the repository’s multi-pack index (if it exists). +</dd><dt><span class="term"> <a name="def_rebase"></a>rebase </span></dt><dd> To reapply a series of changes from a <a class="link" href="#def_branch">branch</a> to a |