Skip to content

Commit b4a48be

Browse files
committed
Merge tag 'v2.29.0-rc1' of github.com:git/git
Git 2.29-rc1 * tag 'v2.29.0-rc1' of github.com:git/git: Git 2.29-rc1 doc: fix the bnf like style of some commands doc: git-remote fix ups doc: use linkgit macro where needed. git-bisect-lk2009: make continuation of list indented ci: do not skip tagged revisions in GitHub workflows ci: skip GitHub workflow runs for already-tested commits/trees tests: avoid using the branch name `main` t1415: avoid using `main` as ref name Makefile: ASCII-sort += lists help: do not expect built-in commands to be hardlinked index-pack: make get_base_data() comment clearer index-pack: drop type_cas mutex index-pack: restore "resolving deltas" progress meter compat/mingw.h: drop extern from function declaration GitHub workflow: automatically follow minor updates of setup-msbuild t5534: split stdout and stderr redirection
2 parents c6b9837 + d4a3924 commit b4a48be

22 files changed

+159
-89
lines changed

.github/workflows/main.yml

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ jobs:
99
ci-config:
1010
runs-on: ubuntu-latest
1111
outputs:
12-
enabled: ${{ steps.check-ref.outputs.enabled }}
12+
enabled: ${{ steps.check-ref.outputs.enabled }}${{ steps.skip-if-redundant.outputs.enabled }}
1313
steps:
1414
- name: try to clone ci-config branch
1515
run: |
@@ -34,6 +34,43 @@ jobs:
3434
enabled=no
3535
fi
3636
echo "::set-output name=enabled::$enabled"
37+
- name: skip if the commit or tree was already tested
38+
id: skip-if-redundant
39+
uses: actions/github-script@v3
40+
if: steps.check-ref.outputs.enabled == 'yes'
41+
with:
42+
github-token: ${{secrets.GITHUB_TOKEN}}
43+
script: |
44+
// Figure out workflow ID, commit and tree
45+
const { data: run } = await github.actions.getWorkflowRun({
46+
owner: context.repo.owner,
47+
repo: context.repo.repo,
48+
run_id: context.runId,
49+
});
50+
const workflow_id = run.workflow_id;
51+
const head_sha = run.head_sha;
52+
const tree_id = run.head_commit.tree_id;
53+
54+
// See whether there is a successful run for that commit or tree
55+
const { data: runs } = await github.actions.listWorkflowRuns({
56+
owner: context.repo.owner,
57+
repo: context.repo.repo,
58+
per_page: 500,
59+
status: 'success',
60+
workflow_id,
61+
});
62+
for (const run of runs.workflow_runs) {
63+
if (head_sha === run.head_sha) {
64+
core.warning(`Successful run for the commit ${head_sha}: ${run.html_url}`);
65+
core.setOutput('enabled', ' but skip');
66+
break;
67+
}
68+
if (tree_id === run.head_commit.tree_id) {
69+
core.warning(`Successful run for the tree ${tree_id}: ${run.html_url}`);
70+
core.setOutput('enabled', ' but skip');
71+
break;
72+
}
73+
}
3774
3875
windows-build:
3976
needs: ci-config
@@ -154,7 +191,7 @@ jobs:
154191
Expand-Archive compat.zip -DestinationPath . -Force
155192
Remove-Item compat.zip
156193
- name: add msbuild to PATH
157-
uses: microsoft/setup-msbuild@v1.0.0
194+
uses: microsoft/setup-msbuild@v1
158195
- name: copy dlls to root
159196
shell: powershell
160197
run: |

Documentation/RelNotes/2.29.0.txt

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -156,7 +156,7 @@ Performance, Internal Implementation, Development Support etc.
156156
barrier to adoption.
157157

158158
* The final leg of SHA-256 transition plus doc updates. Note that
159-
there is no inter-operability between SHA-1 and SHA-256
159+
there is no interoperability between SHA-1 and SHA-256
160160
repositories yet.
161161

162162
* CMake support to build with MSVC for Windows bypassing the Makefile.
@@ -184,10 +184,6 @@ Performance, Internal Implementation, Development Support etc.
184184
the ref backend in use, as its format is much richer than the
185185
normal refs, and written directly by "git fetch" as a plain file..
186186

187-
* A handful of places in in-tree code still relied on being able to
188-
execute the git subcommands, especially built-ins, in "git-foo"
189-
form, which have been corrected.
190-
191187
* An unused binary has been discarded, and and a bunch of commands
192188
have been turned into into built-in.
193189

@@ -216,10 +212,25 @@ Performance, Internal Implementation, Development Support etc.
216212
* "diff-highlight" (in contrib/) had a logic to flush its output upon
217213
seeing a blank line but the way it detected a blank line was broken.
218214

215+
* The logic to skip testing on the tagged commit and the tag itself
216+
was not quite consistent which led to failure of Windows test
217+
tasks. It has been revamped to consistently skip revisions that
218+
have already been tested, based on the tree object of the revision.
219+
219220

220221
Fixes since v2.28
221222
-----------------
222223

224+
* The "mediawiki" remote backend which lives in contrib/mw-to-git/
225+
and is not built with git by default, had an RCE bug allowing a
226+
malicious MediaWiki server operator to inject arbitrary commands
227+
for execution by a cloning client. This has been fixed.
228+
229+
The bug was discovered and reported by Joern Schneeweisz of GitLab
230+
to the git-security mailing list. Its practical impact due to the
231+
obscurity of git-remote-mediawiki was deemed small enough to forgo
232+
a dedicated security release.
233+
223234
* "git clone --separate-git-dir=$elsewhere" used to stomp on the
224235
contents of the existing directory $elsewhere, which has been
225236
taught to fail when $elsewhere is not an empty directory.
@@ -355,16 +366,13 @@ Fixes since v2.28
355366
"git log --tags=no-tag-matches-this-pattern" does.
356367
(merge 04a0e98515 jk/rev-input-given-fix later to maint).
357368

358-
* Various callers of run_command API has been modernized.
369+
* Various callers of run_command API have been modernized.
359370
(merge afbdba391e jc/run-command-use-embedded-args later to maint).
360371

361372
* List of options offered and accepted by "git add -i/-p" were
362373
inconsistent, which have been corrected.
363374
(merge ce910287e7 pw/add-p-allowed-options-fix later to maint).
364375

365-
* Various callers of run_command API has been modernized.
366-
(merge afbdba391e jc/run-command-use-embedded-args later to maint).
367-
368376
* "git diff --stat -w" showed 0-line changes for paths whose changes
369377
were only whitespaces, which was not intuitive. We now omit such
370378
paths from the stat output.
@@ -381,7 +389,7 @@ Fixes since v2.28
381389
information (e.g. "@{u}" does not record what branch the user was
382390
on hence which branch 'the upstream' needs to be computed, and even
383391
if the record were available, the relationship between branches may
384-
have changed), at least hide the error to allow "status" show its
392+
have changed), at least hide the error and allow "status" to show its
385393
output.
386394

387395
* "git status --short" quoted a path with SP in it when tracked, but
@@ -398,7 +406,7 @@ Fixes since v2.28
398406
(merge 378fe5fc3d mt/config-fail-nongit-early later to maint).
399407

400408
* There is a logic to estimate how many objects are in the
401-
repository, which is mean to run once per process invocation, but
409+
repository, which is meant to run once per process invocation, but
402410
it ran every time the estimated value was requested.
403411
(merge 67bb65de5d jk/dont-count-existing-objects-twice later to maint).
404412

@@ -411,8 +419,8 @@ Fixes since v2.28
411419
which has been corrected.
412420
(merge 4e735c1326 ar/fetch-ipversion-in-all later to maint).
413421

414-
* The "unshelve" subcommand of "git p4" used incorrectly used
415-
commit^N where it meant to say commit~N to name the Nth generation
422+
* The "unshelve" subcommand of "git p4" incorrectly used commit^N
423+
where it meant to say commit~N to name the Nth generation
416424
ancestor, which has been corrected.
417425
(merge 0acbf5997f ld/p4-unshelve-fix later to maint).
418426

Documentation/git-bisect-lk2009.txt

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -473,7 +473,7 @@ Z-Z
473473
-------------
474474

475475
2) starting from the "good" ends of the graph, associate to each
476-
commit the number of ancestors it has plus one
476+
commit the number of ancestors it has plus one
477477

478478
For example with the following graph where H is the "bad" commit and A
479479
and D are some parents of some "good" commits:
@@ -514,7 +514,7 @@ D---E
514514
-------------
515515

516516
4) the best bisection point is the commit with the highest associated
517-
number
517+
number
518518

519519
So in the above example the best bisection point is commit C.
520520

@@ -580,8 +580,8 @@ good or a bad commit does not give more or less information).
580580

581581
Let's also suppose that we have a cleaned up graph like one after step
582582
1) in the bisection algorithm above. This means that we can measure
583-
the information we get in terms of number of commit we can remove from
584-
the graph..
583+
the information we get in terms of number of commit we can remove
584+
from the graph..
585585

586586
And let's take a commit X in the graph.
587587

@@ -689,18 +689,18 @@ roughly the following steps:
689689
6) sort the commit by decreasing associated value
690690

691691
7) if the first commit has not been skipped, we can return it and stop
692-
here
692+
here
693693

694694
8) otherwise filter out all the skipped commits in the sorted list
695695

696696
9) use a pseudo random number generator (PRNG) to generate a random
697-
number between 0 and 1
697+
number between 0 and 1
698698

699699
10) multiply this random number with its square root to bias it toward
700-
0
700+
0
701701

702702
11) multiply the result by the number of commits in the filtered list
703-
to get an index into this list
703+
to get an index into this list
704704

705705
12) return the commit at the computed index
706706

Documentation/git-grep.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ providing this option will cause it to die.
209209
Use \0 as the delimiter for pathnames in the output, and print
210210
them verbatim. Without this option, pathnames with "unusual"
211211
characters are quoted as explained for the configuration
212-
variable core.quotePath (see git-config(1)).
212+
variable core.quotePath (see linkgit:git-config[1]).
213213

214214
-o::
215215
--only-matching::

Documentation/git-init.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ repository.
7070
+
7171
If this is reinitialization, the repository will be moved to the specified path.
7272

73-
-b <branch-name::
73+
-b <branch-name>::
7474
--initial-branch=<branch-name>::
7575

7676
Use the specified name for the initial branch in the newly created repository.

Documentation/git-remote.txt

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ SYNOPSIS
1010
--------
1111
[verse]
1212
'git remote' [-v | --verbose]
13-
'git remote add' [-t <branch>] [-m <master>] [-f] [--[no-]tags] [--mirror=<fetch|push>] <name> <url>
13+
'git remote add' [-t <branch>] [-m <master>] [-f] [--[no-]tags] [--mirror=(fetch|push)] <name> <url>
1414
'git remote rename' <old> <new>
1515
'git remote remove' <name>
1616
'git remote set-head' <name> (-a | --auto | -d | --delete | <branch>)
@@ -35,7 +35,7 @@ OPTIONS
3535
-v::
3636
--verbose::
3737
Be a little more verbose and show remote url after name.
38-
NOTE: This must be placed between `remote` and `subcommand`.
38+
NOTE: This must be placed between `remote` and subcommand.
3939

4040

4141
COMMANDS
@@ -46,7 +46,7 @@ subcommands are available to perform operations on the remotes.
4646

4747
'add'::
4848

49-
Adds a remote named <name> for the repository at
49+
Add a remote named <name> for the repository at
5050
<url>. The command `git fetch <name>` can then be used to create and
5151
update remote-tracking branches <name>/<branch>.
5252
+
@@ -109,13 +109,13 @@ With `-d` or `--delete`, the symbolic ref `refs/remotes/<name>/HEAD` is deleted.
109109
+
110110
With `-a` or `--auto`, the remote is queried to determine its `HEAD`, then the
111111
symbolic-ref `refs/remotes/<name>/HEAD` is set to the same branch. e.g., if the remote
112-
`HEAD` is pointed at `next`, "`git remote set-head origin -a`" will set
112+
`HEAD` is pointed at `next`, `git remote set-head origin -a` will set
113113
the symbolic-ref `refs/remotes/origin/HEAD` to `refs/remotes/origin/next`. This will
114114
only work if `refs/remotes/origin/next` already exists; if not it must be
115115
fetched first.
116116
+
117-
Use `<branch>` to set the symbolic-ref `refs/remotes/<name>/HEAD` explicitly. e.g., "git
118-
remote set-head origin master" will set the symbolic-ref `refs/remotes/origin/HEAD` to
117+
Use `<branch>` to set the symbolic-ref `refs/remotes/<name>/HEAD` explicitly. e.g., `git
118+
remote set-head origin master` will set the symbolic-ref `refs/remotes/origin/HEAD` to
119119
`refs/remotes/origin/master`. This will only work if
120120
`refs/remotes/origin/master` already exists; if not it must be fetched first.
121121
+
@@ -127,7 +127,7 @@ This can be used to track a subset of the available remote branches
127127
after the initial setup for a remote.
128128
+
129129
The named branches will be interpreted as if specified with the
130-
`-t` option on the 'git remote add' command line.
130+
`-t` option on the `git remote add` command line.
131131
+
132132
With `--add`, instead of replacing the list of currently tracked
133133
branches, adds to that list.
@@ -181,16 +181,16 @@ fetch --prune <name>`, except that no new references will be fetched.
181181
See the PRUNING section of linkgit:git-fetch[1] for what it'll prune
182182
depending on various configuration.
183183
+
184-
With `--dry-run` option, report what branches will be pruned, but do not
184+
With `--dry-run` option, report what branches would be pruned, but do not
185185
actually prune them.
186186

187187
'update'::
188188

189189
Fetch updates for remotes or remote groups in the repository as defined by
190-
remotes.<group>. If neither group nor remote is specified on the command line,
190+
`remotes.<group>`. If neither group nor remote is specified on the command line,
191191
the configuration parameter remotes.default will be used; if
192192
remotes.default is not defined, all remotes which do not have the
193-
configuration parameter remote.<name>.skipDefaultUpdate set to true will
193+
configuration parameter `remote.<name>.skipDefaultUpdate` set to true will
194194
be updated. (See linkgit:git-config[1]).
195195
+
196196
With `--prune` option, run pruning against all the remotes that are updated.

GIT-VERSION-GEN

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/bin/sh
22

33
GVF=GIT-VERSION-FILE
4-
DEF_VER=v2.29.0-rc0
4+
DEF_VER=v2.29.0-rc1
55

66
LF='
77
'

Makefile

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -820,8 +820,8 @@ TEST_SHELL_PATH = $(SHELL_PATH)
820820
LIB_FILE = libgit.a
821821
XDIFF_LIB = xdiff/lib.a
822822

823-
GENERATED_H += config-list.h
824823
GENERATED_H += command-list.h
824+
GENERATED_H += config-list.h
825825

826826
LIB_H := $(sort $(patsubst ./%,%,$(shell git ls-files '*.h' ':!t/' ':!Documentation/' 2>/dev/null || \
827827
$(FIND) . \
@@ -998,9 +998,9 @@ LIB_OBJS += sigchain.o
998998
LIB_OBJS += split-index.o
999999
LIB_OBJS += stable-qsort.o
10001000
LIB_OBJS += strbuf.o
1001-
LIB_OBJS += strvec.o
10021001
LIB_OBJS += streaming.o
10031002
LIB_OBJS += string-list.o
1003+
LIB_OBJS += strvec.o
10041004
LIB_OBJS += sub-process.o
10051005
LIB_OBJS += submodule-config.o
10061006
LIB_OBJS += submodule.o
@@ -1066,15 +1066,15 @@ BUILTIN_OBJS += builtin/checkout-index.o
10661066
BUILTIN_OBJS += builtin/checkout.o
10671067
BUILTIN_OBJS += builtin/clean.o
10681068
BUILTIN_OBJS += builtin/clone.o
1069-
BUILTIN_OBJS += builtin/credential-cache.o
1070-
BUILTIN_OBJS += builtin/credential-cache--daemon.o
1071-
BUILTIN_OBJS += builtin/credential-store.o
10721069
BUILTIN_OBJS += builtin/column.o
10731070
BUILTIN_OBJS += builtin/commit-graph.o
10741071
BUILTIN_OBJS += builtin/commit-tree.o
10751072
BUILTIN_OBJS += builtin/commit.o
10761073
BUILTIN_OBJS += builtin/config.o
10771074
BUILTIN_OBJS += builtin/count-objects.o
1075+
BUILTIN_OBJS += builtin/credential-cache--daemon.o
1076+
BUILTIN_OBJS += builtin/credential-cache.o
1077+
BUILTIN_OBJS += builtin/credential-store.o
10781078
BUILTIN_OBJS += builtin/credential.o
10791079
BUILTIN_OBJS += builtin/describe.o
10801080
BUILTIN_OBJS += builtin/diff-files.o

0 commit comments

Comments
 (0)