aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2025-11-04 07:33:41 -0800
committerJunio C Hamano <gitster@pobox.com>2025-11-04 07:33:41 -0800
commitaec5adb4b70e1fa58d4a7cfc3fb07913733f7e90 (patch)
tree30af5415ba362a455a1d6a2e46e7fdc6e92f5639 /Documentation
parentSync with Git 2.51.1 (diff)
parentt7004: do not chdir around in the main process (diff)
downloadgit-aec5adb4b70e1fa58d4a7cfc3fb07913733f7e90.tar.gz
git-aec5adb4b70e1fa58d4a7cfc3fb07913733f7e90.zip
Merge branch 'ps/ref-peeled-tags' into kn/refs-optim-cleanup
* ps/ref-peeled-tags: (92 commits) t7004: do not chdir around in the main process ref-filter: fix stale parsed objects ref-filter: parse objects on demand ref-filter: detect broken tags when dereferencing them refs: don't store peeled object IDs for invalid tags object: add flag to `peel_object()` to verify object type refs: drop infrastructure to peel via iterators refs: drop `current_ref_iter` hack builtin/show-ref: convert to use `reference_get_peeled_oid()` ref-filter: propagate peeled object ID upload-pack: convert to use `reference_get_peeled_oid()` refs: expose peeled object ID via the iterator refs: refactor reference status flags refs: fully reset `struct ref_iterator::ref` on iteration refs: introduce `.ref` field for the base iterator refs: introduce wrapper struct for `each_ref_fn` builtin/repo: add progress meter for structure stats builtin/repo: add keyvalue and nul format for structure stats builtin/repo: add object counts in structure output builtin/repo: introduce structure subcommand ...
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/RelNotes/2.52.0.adoc31
-rw-r--r--Documentation/SubmittingPatches29
-rw-r--r--Documentation/config/core.adoc4
-rw-r--r--Documentation/config/stash.adoc4
-rw-r--r--Documentation/git-add.adoc8
-rw-r--r--Documentation/git-config.adoc18
-rw-r--r--Documentation/git-repo.adoc30
-rw-r--r--Documentation/git-rev-parse.adoc14
-rw-r--r--Documentation/git-shortlog.adoc4
-rw-r--r--Documentation/git-sparse-checkout.adoc72
10 files changed, 149 insertions, 65 deletions
diff --git a/Documentation/RelNotes/2.52.0.adoc b/Documentation/RelNotes/2.52.0.adoc
index 67b0ac7c45..1e41b7380a 100644
--- a/Documentation/RelNotes/2.52.0.adoc
+++ b/Documentation/RelNotes/2.52.0.adoc
@@ -100,7 +100,7 @@ Performance, Internal Implementation, Development Support etc.
* CodingGuidelines now spells out how bitfields are to be written.
- * Adjust to the way newer versions of cURL selectivel enables tracing
+ * Adjust to the way newer versions of cURL selectively enable tracing
options, so that our tests can continue to work.
(merge 1b5a6bfff3 jk/curl-global-trace-components later to maint).
@@ -127,6 +127,10 @@ Performance, Internal Implementation, Development Support etc.
* Documentation for "git log --pretty" options has been updated
to make it easier to translate.
+ * Instead of three library archives (one for git, one for reftable,
+ and one for xdiff), roll everything into a single libgit.a archive.
+ This would help later effort to FFI into Rust.
+
Fixes since v2.51
-----------------
@@ -212,13 +216,13 @@ including security updates, are included in this release.
name.
(merge bcb20dda83 js/doc-gitk-history later to maint).
- * Update the instruction to use of GGG in the MyFirstContribution
+ * Update the instructions for using GGG in the MyFirstContribution
document to say that a GitHub PR could be made against `git/git`
instead of `gitgitgadget/git`.
(merge 37001cdbc4 ds/doc-ggg-pr-fork-clarify later to maint).
* Makefile tried to run multiple "cargo build" which would not work
- very well; serialize their execution to work it around.
+ very well; serialize their execution to work around this problem.
(merge 0eeacde50e da/cargo-serialize later to maint).
* "git repack --path-walk" lost objects in some corner cases, which
@@ -294,12 +298,12 @@ including security updates, are included in this release.
updated.
(merge 54a60e5b38 kh/you-still-use-whatchanged-fix later to maint).
- * Clang-format update to let our control macros formatted the way we
+ * Clang-format update to let our control macros be formatted the way we
had them traditionally, e.g., "for_each_string_list_item()" without
space before the parentheses.
(merge 3721541d35 jt/clang-format-foreach-wo-space-before-parenthesis later to maint).
- * A few places where an size_t value was cast to curl_off_t without
+ * A few places where a size_t value was cast to curl_off_t without
checking has been updated to use the existing helper function.
(merge ecc5749578 js/curl-off-t-fixes later to maint).
@@ -329,6 +333,19 @@ including security updates, are included in this release.
you would get from "git format-patch --notes=..." for a singleton
patch.
+ * The code in "git add -p" and friends to iterate over hunks was
+ riddled with bugs, which has been corrected.
+
+ * A few more things that patch authors can do to help maintainer to
+ keep track of their topics better.
+ (merge 1a41698841 tb/doc-submitting-patches later to maint).
+
+ * An earlier addition to "git diff --no-index A B" to limit the
+ output with pathspec after the two directories misbehaved when
+ these directories were given with a trailing slash, which has been
+ corrected.
+ (merge c0bec06cfe jk/diff-no-index-with-pathspec-fix later to maint).
+
* Other code cleanup, docfix, build fix, etc.
(merge 823d537fa7 kh/doc-git-log-markup-fix later to maint).
(merge cf7efa4f33 rj/t6137-cygwin-fix later to maint).
@@ -359,3 +376,7 @@ including security updates, are included in this release.
(merge 1c573a3451 en/doc-merge-tree-describe-merge-base later to maint).
(merge 84a6bf7965 ja/doc-markup-attached-paragraph-fix later to maint).
(merge 399694384b kh/doc-patch-id-markup-fix later to maint).
+ (merge 15b8abde07 js/mingw-includes-cleanup later to maint).
+ (merge 3860985105 js/unreachable-workaround-for-no-symlink-head later to maint).
+ (merge b3ac6e737d kh/doc-continued-paragraph-fix later to maint).
+ (merge 2cebca0582 tb/cat-file-objectmode-update later to maint).
diff --git a/Documentation/SubmittingPatches b/Documentation/SubmittingPatches
index 86ca7f6a78..d620bd93bd 100644
--- a/Documentation/SubmittingPatches
+++ b/Documentation/SubmittingPatches
@@ -579,14 +579,27 @@ line via `git format-patch --notes`.
[[the-topic-summary]]
*This is EXPERIMENTAL*.
-When sending a topic, you can propose a one-paragraph summary that
-should appear in the "What's cooking" report when it is picked up to
-explain the topic. If you choose to do so, please write a 2-5 line
-paragraph that will fit well in our release notes (see many bulleted
-entries in the Documentation/RelNotes/* files for examples), and make
-it the first paragraph of the cover letter. For a single-patch
-series, use the space between the three-dash line and the diffstat, as
-described earlier.
+When sending a topic, you can optionally propose a topic name and/or a
+one-paragraph summary that should appear in the "What's cooking"
+report when it is picked up to explain the topic. If you choose to do
+so, please write a 2-5 line paragraph that will fit well in our
+release notes (see many bulleted entries in the
+Documentation/RelNotes/* files for examples), and make it the first
+(or second, if including a suggested topic name) paragraph of the
+cover letter. If suggesting a topic name, use the format
+"XX/your-topic-name", where "XX" is a stand-in for the primary
+author's initials, and "your-topic-name" is a brief, dash-delimited
+description of what your topic does. For a single-patch series, use
+the space between the three-dash line and the diffstat, as described
+earlier.
+
+[[multi-series-efforts]]
+If your patch series is part of a larger effort spanning multiple
+patch series, briefly describe the broader goal, and state where the
+current series fits into that goal. If you are suggesting a topic
+name as in <<the-topic-summary, section above>>, consider
+"XX/the-broader-goal-part-one", "XX/the-broader-goal-part-two", and so
+on.
[[attachment]]
Do not attach the patch as a MIME attachment, compressed or not.
diff --git a/Documentation/config/core.adoc b/Documentation/config/core.adoc
index 08739bb9d4..e2de270c86 100644
--- a/Documentation/config/core.adoc
+++ b/Documentation/config/core.adoc
@@ -75,8 +75,8 @@ The built-in file system monitor is currently available only on a
limited set of supported platforms. Currently, this includes Windows
and MacOS.
+
- Otherwise, this variable contains the pathname of the "fsmonitor"
- hook command.
+Otherwise, this variable contains the pathname of the "fsmonitor"
+hook command.
+
This hook command is used to identify all files that may have changed
since the requested date/time. This information is used to speed up
diff --git a/Documentation/config/stash.adoc b/Documentation/config/stash.adoc
index 7fc32027f7..a1197ffd7d 100644
--- a/Documentation/config/stash.adoc
+++ b/Documentation/config/stash.adoc
@@ -11,6 +11,10 @@ endif::git-stash[]
behave as if `--index` was supplied. Defaults to false.
ifndef::git-stash[]
See the descriptions in linkgit:git-stash[1].
++
+This also affects invocations of linkgit:git-stash[1] via `--autostash` from
+commands like linkgit:git-merge[1], linkgit:git-rebase[1], and
+linkgit:git-pull[1].
endif::git-stash[]
`stash.showIncludeUntracked`::
diff --git a/Documentation/git-add.adoc b/Documentation/git-add.adoc
index ad629c46c5..3116a2cac5 100644
--- a/Documentation/git-add.adoc
+++ b/Documentation/git-add.adoc
@@ -342,10 +342,10 @@ patch::
d - do not stage this hunk or any of the later hunks in the file
g - select a hunk to go to
/ - search for a hunk matching the given regex
- j - leave this hunk undecided, see next undecided hunk
- J - leave this hunk undecided, see next hunk
- k - leave this hunk undecided, see previous undecided hunk
- K - leave this hunk undecided, see previous hunk
+ j - go to the next undecided hunk, roll over at the bottom
+ J - go to the next hunk, roll over at the bottom
+ k - go to the previous undecided hunk, roll over at the top
+ K - go to the previous hunk, roll over at the top
s - split the current hunk into smaller hunks
e - manually edit the current hunk
p - print the current hunk
diff --git a/Documentation/git-config.adoc b/Documentation/git-config.adoc
index 36d2845152..cc054fa7e1 100644
--- a/Documentation/git-config.adoc
+++ b/Documentation/git-config.adoc
@@ -117,15 +117,15 @@ OPTIONS
--comment <message>::
Append a comment at the end of new or modified lines.
-
- If _<message>_ begins with one or more whitespaces followed
- by "#", it is used as-is. If it begins with "#", a space is
- prepended before it is used. Otherwise, a string " # " (a
- space followed by a hash followed by a space) is prepended
- to it. And the resulting string is placed immediately after
- the value defined for the variable. The _<message>_ must
- not contain linefeed characters (no multi-line comments are
- permitted).
++
+If _<message>_ begins with one or more whitespaces followed
+by "#", it is used as-is. If it begins with "#", a space is
+prepended before it is used. Otherwise, a string " # " (a
+space followed by a hash followed by a space) is prepended
+to it. And the resulting string is placed immediately after
+the value defined for the variable. The _<message>_ must
+not contain linefeed characters (no multi-line comments are
+permitted).
--all::
With `get`, return all values for a multi-valued key.
diff --git a/Documentation/git-repo.adoc b/Documentation/git-repo.adoc
index 209afd1b61..ce43cb19c8 100644
--- a/Documentation/git-repo.adoc
+++ b/Documentation/git-repo.adoc
@@ -9,6 +9,7 @@ SYNOPSIS
--------
[synopsis]
git repo info [--format=(keyvalue|nul)] [-z] [<key>...]
+git repo structure [--format=(table|keyvalue|nul)]
DESCRIPTION
-----------
@@ -43,6 +44,35 @@ supported:
+
`-z` is an alias for `--format=nul`.
+`structure [--format=(table|keyvalue|nul)]`::
+ Retrieve statistics about the current repository structure. The
+ following kinds of information are reported:
++
+* Reference counts categorized by type
+* Reachable object counts categorized by type
+
++
+The output format can be chosen through the flag `--format`. Three formats are
+supported:
++
+`table`:::
+ Outputs repository stats in a human-friendly table. This format may
+ change and is not intended for machine parsing. This is the default
+ format.
+
+`keyvalue`:::
+ Each line of output contains a key-value pair for a repository stat.
+ The '=' character is used to delimit between the key and the value.
+ Values containing "unusual" characters are quoted as explained for the
+ configuration variable `core.quotePath` (see linkgit:git-config[1]).
+
+`nul`:::
+ Similar to `keyvalue`, but uses a NUL character to delimit between
+ key-value pairs instead of a newline. Also uses a newline character as
+ the delimiter between the key and value instead of '='. Unlike the
+ `keyvalue` format, values containing "unusual" characters are never
+ quoted.
+
INFO KEYS
---------
In order to obtain a set of values from `git repo info`, you should provide
diff --git a/Documentation/git-rev-parse.adoc b/Documentation/git-rev-parse.adoc
index cc32b4b4f0..18383e52af 100644
--- a/Documentation/git-rev-parse.adoc
+++ b/Documentation/git-rev-parse.adoc
@@ -174,13 +174,13 @@ for another option.
Allow oids to be input from any object format that the current
repository supports.
-
- Specifying "sha1" translates if necessary and returns a sha1 oid.
-
- Specifying "sha256" translates if necessary and returns a sha256 oid.
-
- Specifying "storage" translates if necessary and returns an oid in
- encoded in the storage hash algorithm.
++
+Specifying "sha1" translates if necessary and returns a sha1 oid.
++
+Specifying "sha256" translates if necessary and returns a sha256 oid.
++
+Specifying "storage" translates if necessary and returns an oid in
+encoded in the storage hash algorithm.
Options for Objects
~~~~~~~~~~~~~~~~~~~
diff --git a/Documentation/git-shortlog.adoc b/Documentation/git-shortlog.adoc
index d8ab38dcc1..aa92800c69 100644
--- a/Documentation/git-shortlog.adoc
+++ b/Documentation/git-shortlog.adoc
@@ -44,8 +44,8 @@ OPTIONS
describe each commit. '<format>' can be any string accepted
by the `--format` option of 'git log', such as '* [%h] %s'.
(See the "PRETTY FORMATS" section of linkgit:git-log[1].)
-
- Each pretty-printed commit will be rewrapped before it is shown.
++
+Each pretty-printed commit will be rewrapped before it is shown.
--date=<format>::
Show dates formatted according to the given date string. (See
diff --git a/Documentation/git-sparse-checkout.adoc b/Documentation/git-sparse-checkout.adoc
index 529a8edd9c..b5fe5da041 100644
--- a/Documentation/git-sparse-checkout.adoc
+++ b/Documentation/git-sparse-checkout.adoc
@@ -264,34 +264,50 @@ patterns in non-cone mode has a number of shortcomings:
inconsistent.
* It has edge cases where the "right" behavior is unclear. Two examples:
-
- First, two users are in a subdirectory, and the first runs
- git sparse-checkout set '/toplevel-dir/*.c'
- while the second runs
- git sparse-checkout set relative-dir
- Should those arguments be transliterated into
- current/subdirectory/toplevel-dir/*.c
- and
- current/subdirectory/relative-dir
- before inserting into the sparse-checkout file? The user who typed
- the first command is probably aware that arguments to set/add are
- supposed to be patterns in non-cone mode, and probably would not be
- happy with such a transliteration. However, many gitignore-style
- patterns are just paths, which might be what the user who typed the
- second command was thinking, and they'd be upset if their argument
- wasn't transliterated.
-
- Second, what should bash-completion complete on for set/add commands
- for non-cone users? If it suggests paths, is it exacerbating the
- problem above? Also, if it suggests paths, what if the user has a
- file or directory that begins with either a '!' or '#' or has a '*',
- '\', '?', '[', or ']' in its name? And if it suggests paths, will
- it complete "/pro" to "/proc" (in the root filesystem) rather than to
- "/progress.txt" in the current directory? (Note that users are
- likely to want to start paths with a leading '/' in non-cone mode,
- for the same reason that .gitignore files often have one.)
- Completing on files or directories might give nasty surprises in
- all these cases.
++
+First, two users are in a subdirectory, and the first runs
++
+----
+git sparse-checkout set '/toplevel-dir/*.c'
+----
++
+while the second runs
++
+----
+git sparse-checkout set relative-dir
+----
++
+Should those arguments be transliterated into
++
+----
+current/subdirectory/toplevel-dir/*.c
+----
++
+and
++
+----
+current/subdirectory/relative-dir
+----
++
+before inserting into the sparse-checkout file? The user who typed
+the first command is probably aware that arguments to set/add are
+supposed to be patterns in non-cone mode, and probably would not be
+happy with such a transliteration. However, many gitignore-style
+patterns are just paths, which might be what the user who typed the
+second command was thinking, and they'd be upset if their argument
+wasn't transliterated.
++
+Second, what should bash-completion complete on for set/add commands
+for non-cone users? If it suggests paths, is it exacerbating the
+problem above? Also, if it suggests paths, what if the user has a
+file or directory that begins with either a '!' or '#' or has a '*',
+'\', '?', '[', or ']' in its name? And if it suggests paths, will
+it complete "/pro" to "/proc" (in the root filesystem) rather than to
+"/progress.txt" in the current directory? (Note that users are
+likely to want to start paths with a leading '/' in non-cone mode,
+for the same reason that .gitignore files often have one.)
+Completing on files or directories might give nasty surprises in
+all these cases.
* The excessive flexibility made other extensions essentially
impractical. `--sparse-index` is likely impossible in non-cone