Skip to content

Commit 173fff6

Browse files
committed
Merge tag 'v2.25.0-rc0' into git-po-master
Git 2.25-rc0 * tag 'v2.25.0-rc0': (531 commits) Git 2.25-rc0 sparse-checkout: improve OS ls compatibility dir.c: use st_add3() for allocation size dir: consolidate similar code in treat_directory() dir: synchronize treat_leading_path() and read_directory_recursive() dir: fix checks on common prefix directory t4015: improve coverage of function context test commit: forbid --pathspec-from-file --all t3434: mark successful test as such notes.h: fix typos in comment t6030: don't create unused file t5580: don't create unused file t3501: don't create unused file bisect--helper: convert `*_warning` char pointers to char arrays. The sixth batch fix-typo: consecutive-word duplications Makefile: drop GEN_HDRS built-in add -p: show helpful hint when nothing can be staged built-in add -p: only show the applicable parts of the help text built-in add -p: implement the 'q' ("quit") command ...
2 parents 9e341f6 + 99c33be commit 173fff6

File tree

518 files changed

+17382
-6607
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

518 files changed

+17382
-6607
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,7 @@
158158
/git-show-branch
159159
/git-show-index
160160
/git-show-ref
161+
/git-sparse-checkout
161162
/git-stage
162163
/git-stash
163164
/git-status

Documentation/CodingGuidelines

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ For shell scripts specifically (not exhaustive):
7575

7676
- If you want to find out if a command is available on the user's
7777
$PATH, you should use 'type <command>', instead of 'which <command>'.
78-
The output of 'which' is not machine parseable and its exit code
78+
The output of 'which' is not machine parsable and its exit code
7979
is not reliable across platforms.
8080

8181
- We use POSIX compliant parameter substitutions and avoid bashisms;
@@ -203,7 +203,7 @@ For C programs:
203203
. since early 2012 with e1327023ea, we have been using an enum
204204
definition whose last element is followed by a comma. This, like
205205
an array initializer that ends with a trailing comma, can be used
206-
to reduce the patch noise when adding a new identifer at the end.
206+
to reduce the patch noise when adding a new identifier at the end.
207207

208208
. since mid 2017 with cbc0f81d, we have been using designated
209209
initializers for struct (e.g. "struct t v = { .val = 'a' };").

Documentation/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ API_DOCS = $(patsubst %.txt,%,$(filter-out technical/api-index-skel.txt technica
7777
SP_ARTICLES += $(API_DOCS)
7878

7979
TECH_DOCS += MyFirstContribution
80+
TECH_DOCS += MyFirstObjectWalk
8081
TECH_DOCS += SubmittingPatches
8182
TECH_DOCS += technical/hash-function-transition
8283
TECH_DOCS += technical/http-protocol

Documentation/MyFirstContribution.txt

Lines changed: 51 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,26 @@ $ git clone https://github.com/git/git git
3838
$ cd git
3939
----
4040

41+
[[dependencies]]
42+
=== Installing Dependencies
43+
44+
To build Git from source, you need to have a handful of dependencies installed
45+
on your system. For a hint of what's needed, you can take a look at
46+
`INSTALL`, paying close attention to the section about Git's dependencies on
47+
external programs and libraries. That document mentions a way to "test-drive"
48+
our freshly built Git without installing; that's the method we'll be using in
49+
this tutorial.
50+
51+
Make sure that your environment has everything you need by building your brand
52+
new clone of Git from the above step:
53+
54+
----
55+
$ make
56+
----
57+
58+
NOTE: The Git build is parallelizable. `-j#` is not included above but you can
59+
use it as you prefer, here and elsewhere.
60+
4161
[[identify-problem]]
4262
=== Identify Problem to Solve
4363

@@ -138,9 +158,6 @@ NOTE: When you are developing the Git project, it's preferred that you use the
138158
`DEVELOPER` flag; if there's some reason it doesn't work for you, you can turn
139159
it off, but it's a good idea to mention the problem to the mailing list.
140160

141-
NOTE: The Git build is parallelizable. `-j#` is not included above but you can
142-
use it as you prefer, here and elsewhere.
143-
144161
Great, now your new command builds happily on its own. But nobody invokes it.
145162
Let's change that.
146163

@@ -534,6 +551,28 @@ you want to pass as a parameter something which would usually be interpreted as
534551
a flag.) `parse_options()` will terminate parsing when it reaches `--` and give
535552
you the rest of the options afterwards, untouched.
536553

554+
Now that you have a usage hint, you can teach Git how to show it in the general
555+
command list shown by `git help git` or `git help -a`, which is generated from
556+
`command-list.txt`. Find the line for 'git-pull' so you can add your 'git-psuh'
557+
line above it in alphabetical order. Now, we can add some attributes about the
558+
command which impacts where it shows up in the aforementioned help commands. The
559+
top of `command-list.txt` shares some information about what each attribute
560+
means; in those help pages, the commands are sorted according to these
561+
attributes. `git psuh` is user-facing, or porcelain - so we will mark it as
562+
"mainporcelain". For "mainporcelain" commands, the comments at the top of
563+
`command-list.txt` indicate we can also optionally add an attribute from another
564+
list; since `git psuh` shows some information about the user's workspace but
565+
doesn't modify anything, let's mark it as "info". Make sure to keep your
566+
attributes in the same style as the rest of `command-list.txt` using spaces to
567+
align and delineate them:
568+
569+
----
570+
git-prune-packed plumbingmanipulators
571+
git-psuh mainporcelain info
572+
git-pull mainporcelain remote
573+
git-push mainporcelain remote
574+
----
575+
537576
Build again. Now, when you run with `-h`, you should see your usage printed and
538577
your command terminated before anything else interesting happens. Great!
539578

@@ -746,6 +785,14 @@ will automatically run your PRs through the CI even without the permission given
746785
but you will not be able to `/submit` your changes until someone allows you to
747786
use the tool.
748787

788+
NOTE: You can typically find someone who can `/allow` you on GitGitGadget by
789+
either examining recent pull requests where someone has been granted `/allow`
790+
(https://github.com/gitgitgadget/git/pulls?utf8=%E2%9C%93&q=is%3Apr+is%3Aopen+%22%2Fallow%22[Search:
791+
is:pr is:open "/allow"]), in which case both the author and the person who
792+
granted the `/allow` can now `/allow` you, or by inquiring on the
793+
https://webchat.freenode.net/#git-devel[#git-devel] IRC channel on Freenode
794+
linking your pull request and asking for someone to `/allow` you.
795+
749796
If the CI fails, you can update your changes with `git rebase -i` and push your
750797
branch again:
751798

@@ -970,7 +1017,7 @@ reviewers the changes you've made that may not be as visible.
9701017
You will also need to go and find the Message-Id of your previous cover letter.
9711018
You can either note it when you send the first series, from the output of `git
9721019
send-email`, or you can look it up on the
973-
https://public-inbox.org/git[mailing list]. Find your cover letter in the
1020+
https://lore.kernel.org/git[mailing list]. Find your cover letter in the
9741021
archives, click on it, then click "permalink" or "raw" to reveal the Message-Id
9751022
header. It should match:
9761023

0 commit comments

Comments
 (0)