Skip to content

Commit 66e3561

Browse files
committed
---
yaml --- r: 10462163 b: refs/heads/main c: b7434cb h: refs/heads/main i: 10462161: c603b9c 10462159: e540f14
1 parent 39a1f6d commit 66e3561

Some content is hidden

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

83 files changed

+14930
-192
lines changed

‎[refs]‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -913,7 +913,7 @@ refs/tags/v2.24.0.windows.1: da8368720c73123de29fd82848f2dd227d6f698f
913913
refs/tags/v2.24.0.windows.2: b92b4f3e346316a86311be4d0ac551821b22439b
914914
refs/tags/v2.24.1.windows.2: 3689972ae6f8ffa00fffadf8ed25895683855c70
915915
refs/tags/v2.25.0-rc0.windows.1: 8f1dcc87c1033d06c7c9c2470ba1d17750fc0b49
916-
refs/heads/main: 4d07750fbff033724fb0d4e370e7016521c30064
916+
refs/heads/main: b7434cbcc1bc48fdf711dd542193667174111d2a
917917
refs/heads/shears/seen: 527fd02c41f64177069db5edd8d87c80f3943559
918918
refs/heads/vs/main: 2fe064a94ca8074cc0a25c5a3222bbff148b7bdb
919919
refs/tags/v2.14.4.windows.6: cec94c423c65cb4607d12abc0ae1f74ae7f2095e

‎trunk/.github/workflows/main.yml‎

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -152,8 +152,11 @@ jobs:
152152
NO_PERL: 1
153153
GIT_CONFIG_PARAMETERS: "'user.name=CI' 'user.email=ci@git'"
154154
runs-on: windows-latest
155+
strategy:
156+
matrix:
157+
arch: [x64, arm64]
155158
concurrency:
156-
group: vs-build-${{ github.ref }}
159+
group: vs-build-${{ github.ref }}-${{ matrix.arch }}
157160
cancel-in-progress: ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
158161
steps:
159162
- uses: actions/checkout@v3
@@ -164,26 +167,22 @@ jobs:
164167
repository: 'microsoft/vcpkg'
165168
path: 'compat/vcbuild/vcpkg'
166169
- name: download vcpkg artifacts
167-
shell: powershell
168-
run: |
169-
$urlbase = "https://dev.azure.com/git/git/_apis/build/builds"
170-
$id = ((Invoke-WebRequest -UseBasicParsing "${urlbase}?definitions=9&statusFilter=completed&resultFilter=succeeded&`$top=1").content | ConvertFrom-JSON).value[0].id
171-
$downloadUrl = ((Invoke-WebRequest -UseBasicParsing "${urlbase}/$id/artifacts").content | ConvertFrom-JSON).value[0].resource.downloadUrl
172-
(New-Object Net.WebClient).DownloadFile($downloadUrl, "compat.zip")
173-
Expand-Archive compat.zip -DestinationPath . -Force
174-
Remove-Item compat.zip
170+
uses: git-for-windows/get-azure-pipelines-artifact@v0
171+
with:
172+
repository: git/git
173+
definitionId: 9
175174
- name: add msbuild to PATH
176175
uses: microsoft/setup-msbuild@v1
177176
- name: copy dlls to root
178177
shell: cmd
179-
run: compat\vcbuild\vcpkg_copy_dlls.bat release
178+
run: compat\vcbuild\vcpkg_copy_dlls.bat release ${{ matrix.arch }}-windows
180179
- name: generate Visual Studio solution
181180
shell: bash
182181
run: |
183-
cmake `pwd`/contrib/buildsystems/ -DCMAKE_PREFIX_PATH=`pwd`/compat/vcbuild/vcpkg/installed/x64-windows \
184-
-DNO_GETTEXT=YesPlease -DPERL_TESTS=OFF -DPYTHON_TESTS=OFF -DCURL_NO_CURL_CMAKE=ON
182+
cmake `pwd`/contrib/buildsystems/ -DCMAKE_PREFIX_PATH=`pwd`/compat/vcbuild/vcpkg/installed/${{ matrix.arch }}-windows \
183+
-DNO_GETTEXT=YesPlease -DPERL_TESTS=OFF -DPYTHON_TESTS=OFF -DCURL_NO_CURL_CMAKE=ON -DCMAKE_GENERATOR_PLATFORM=${{ matrix.arch }} -DVCPKG_ARCH=${{ matrix.arch }}-windows -DHOST_CPU=${{ matrix.arch }}
185184
- name: MSBuild
186-
run: msbuild git.sln -property:Configuration=Release -property:Platform=x64 -maxCpuCount:4 -property:PlatformToolset=v142
185+
run: msbuild git.sln -property:Configuration=Release -property:Platform=${{ matrix.arch }} -maxCpuCount:4 -property:PlatformToolset=v142
187186
- name: bundle artifact tar
188187
shell: bash
189188
env:
@@ -197,7 +196,7 @@ jobs:
197196
- name: upload tracked files and build artifacts
198197
uses: actions/upload-artifact@v3
199198
with:
200-
name: vs-artifacts
199+
name: vs-artifacts-${{ matrix.arch }}
201200
path: artifacts
202201
vs-test:
203202
name: win+VS test
@@ -215,7 +214,7 @@ jobs:
215214
- name: download tracked files and build artifacts
216215
uses: actions/download-artifact@v3
217216
with:
218-
name: vs-artifacts
217+
name: vs-artifacts-x64
219218
path: ${{github.workspace}}
220219
- name: extract tracked files and build artifacts
221220
shell: bash

‎trunk/.gitignore‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -246,3 +246,4 @@ Release/
246246
/git.VC.db
247247
*.dSYM
248248
/contrib/buildsystems/out
249+
CMakeSettings.json

‎trunk/Documentation/config.txt‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -507,6 +507,8 @@ include::config/safe.txt[]
507507

508508
include::config/sendemail.txt[]
509509

510+
include::config/sendpack.txt[]
511+
510512
include::config/sequencer.txt[]
511513

512514
include::config/showbranch.txt[]

‎trunk/Documentation/config/http.txt‎

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -189,11 +189,13 @@ http.sslBackend::
189189

190190
http.schannelCheckRevoke::
191191
Used to enforce or disable certificate revocation checks in cURL
192-
when http.sslBackend is set to "schannel". Defaults to `true` if
193-
unset. Only necessary to disable this if Git consistently errors
194-
and the message is about checking the revocation status of a
195-
certificate. This option is ignored if cURL lacks support for
196-
setting the relevant SSL option at runtime.
192+
when http.sslBackend is set to "schannel" via "true" and "false",
193+
respectively. Another accepted value is "best-effort" (the default)
194+
in which case revocation checks are performed, but errors due to
195+
revocation list distribution points that are offline are silently
196+
ignored, as well as errors due to certificates missing revocation
197+
list distribution points. This option is ignored if cURL lacks
198+
support for setting the relevant SSL option at runtime.
197199

198200
http.schannelUseSSLCAInfo::
199201
As of cURL v7.60.0, the Secure Channel backend can use the
@@ -203,6 +205,11 @@ http.schannelUseSSLCAInfo::
203205
when the `schannel` backend was configured via `http.sslBackend`,
204206
unless `http.schannelUseSSLCAInfo` overrides this behavior.
205207

208+
http.sslAutoClientCert::
209+
As of cURL v7.77.0, the Secure Channel backend won't automatically
210+
send client certificates from the Windows Certificate Store anymore.
211+
To opt in to the old behavior, http.sslAutoClientCert can be set.
212+
206213
http.pinnedPubkey::
207214
Public key of the https service. It may either be the filename of
208215
a PEM or DER encoded public key file or a string starting with
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
sendpack.sideband::
2+
Allows to disable the side-band-64k capability for send-pack even
3+
when it is advertised by the server. Makes it possible to work
4+
around a limitation in the git for windows implementation together
5+
with the dump git protocol. Defaults to true.

‎trunk/Makefile‎

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1325,6 +1325,7 @@ BUILTIN_OBJS += builtin/write-tree.o
13251325
# upstream unnecessarily (making merging in future changes easier).
13261326
THIRD_PARTY_SOURCES += compat/inet_ntop.c
13271327
THIRD_PARTY_SOURCES += compat/inet_pton.c
1328+
THIRD_PARTY_SOURCES += compat/mimalloc/%
13281329
THIRD_PARTY_SOURCES += compat/nedmalloc/%
13291330
THIRD_PARTY_SOURCES += compat/obstack.%
13301331
THIRD_PARTY_SOURCES += compat/poll/%
@@ -2053,6 +2054,41 @@ ifdef USE_NED_ALLOCATOR
20532054
OVERRIDE_STRDUP = YesPlease
20542055
endif
20552056

2057+
ifdef USE_MIMALLOC
2058+
MIMALLOC_OBJS = \
2059+
compat/mimalloc/alloc-aligned.o \
2060+
compat/mimalloc/alloc.o \
2061+
compat/mimalloc/arena.o \
2062+
compat/mimalloc/bitmap.o \
2063+
compat/mimalloc/heap.o \
2064+
compat/mimalloc/init.o \
2065+
compat/mimalloc/options.o \
2066+
compat/mimalloc/os.o \
2067+
compat/mimalloc/page.o \
2068+
compat/mimalloc/random.o \
2069+
compat/mimalloc/segment.o \
2070+
compat/mimalloc/segment-cache.o \
2071+
compat/mimalloc/stats.o
2072+
2073+
COMPAT_CFLAGS += -Icompat/mimalloc -DMI_DEBUG=0 -DUSE_MIMALLOC --std=gnu11
2074+
COMPAT_OBJS += $(MIMALLOC_OBJS)
2075+
2076+
$(MIMALLOC_OBJS): COMPAT_CFLAGS += -DBANNED_H
2077+
2078+
$(MIMALLOC_OBJS): COMPAT_CFLAGS += \
2079+
-Wno-attributes \
2080+
-Wno-unknown-pragmas \
2081+
-Wno-array-bounds
2082+
2083+
ifdef DEVELOPER
2084+
$(MIMALLOC_OBJS): COMPAT_CFLAGS += \
2085+
-Wno-pedantic \
2086+
-Wno-declaration-after-statement \
2087+
-Wno-old-style-definition \
2088+
-Wno-missing-prototypes
2089+
endif
2090+
endif
2091+
20562092
ifdef OVERRIDE_STRDUP
20572093
COMPAT_CFLAGS += -DOVERRIDE_STRDUP
20582094
COMPAT_OBJS += compat/strdup.o
@@ -2779,6 +2815,13 @@ compat/nedmalloc/nedmalloc.sp compat/nedmalloc/nedmalloc.o: EXTRA_CPPFLAGS = \
27792815
compat/nedmalloc/nedmalloc.sp: SP_EXTRA_FLAGS += -Wno-non-pointer-null
27802816
endif
27812817

2818+
headless-git.o: compat/win32/headless.c GIT-CFLAGS
2819+
$(QUIET_CC)$(CC) $(ALL_CFLAGS) $(COMPAT_CFLAGS) \
2820+
-fno-stack-protector -o $@ -c -Wall -Wwrite-strings $<
2821+
2822+
headless-git$X: headless-git.o git.res GIT-LDFLAGS
2823+
$(QUIET_LINK)$(CC) $(ALL_CFLAGS) $(ALL_LDFLAGS) -mwindows -o $@ $< git.res
2824+
27822825
git-%$X: %.o GIT-LDFLAGS $(GITLIBS)
27832826
$(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) $(LIBS)
27842827

@@ -3658,6 +3701,7 @@ clean: profile-clean coverage-clean cocciclean
36583701
$(RM) po/git.pot po/git-core.pot
36593702
$(RM) git.res
36603703
$(RM) $(OBJECTS)
3704+
$(RM) headless-git.o
36613705
$(RM) $(LIB_FILE) $(XDIFF_LIB) $(REFTABLE_LIB) $(REFTABLE_TEST_LIB)
36623706
$(RM) $(ALL_PROGRAMS) $(SCRIPT_LIB) $(BUILT_INS) $(OTHER_PROGRAMS)
36633707
$(RM) $(TEST_PROGRAMS)
@@ -3686,13 +3730,17 @@ endif
36863730
$(RM) GIT-SCRIPT-DEFINES GIT-PERL-DEFINES GIT-PERL-HEADER GIT-PYTHON-VARS
36873731
ifdef MSVC
36883732
$(RM) $(patsubst %.o,%.o.pdb,$(OBJECTS))
3733+
$(RM) headless-git.o.pdb
36893734
$(RM) $(patsubst %.exe,%.pdb,$(OTHER_PROGRAMS))
3735+
$(RM) $(patsubst %.exe,%.ilk,$(OTHER_PROGRAMS))
36903736
$(RM) $(patsubst %.exe,%.iobj,$(OTHER_PROGRAMS))
36913737
$(RM) $(patsubst %.exe,%.ipdb,$(OTHER_PROGRAMS))
36923738
$(RM) $(patsubst %.exe,%.pdb,$(PROGRAMS))
3739+
$(RM) $(patsubst %.exe,%.ilk,$(PROGRAMS))
36933740
$(RM) $(patsubst %.exe,%.iobj,$(PROGRAMS))
36943741
$(RM) $(patsubst %.exe,%.ipdb,$(PROGRAMS))
36953742
$(RM) $(patsubst %.exe,%.pdb,$(TEST_PROGRAMS))
3743+
$(RM) $(patsubst %.exe,%.ilk,$(TEST_PROGRAMS))
36963744
$(RM) $(patsubst %.exe,%.iobj,$(TEST_PROGRAMS))
36973745
$(RM) $(patsubst %.exe,%.ipdb,$(TEST_PROGRAMS))
36983746
$(RM) compat/vcbuild/MSVC-DEFS-GEN

‎trunk/abspath.c‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,9 @@ static char *strbuf_realpath_1(struct strbuf *resolved, const char *path,
9393
goto error_out;
9494
}
9595

96+
if (platform_strbuf_realpath(resolved, path))
97+
return resolved->buf;
98+
9699
strbuf_addstr(&remaining, path);
97100
get_root_part(resolved, &remaining);
98101

‎trunk/builtin/clean.c‎

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,10 @@ static const char *msg_remove = N_("Removing %s\n");
3939
static const char *msg_would_remove = N_("Would remove %s\n");
4040
static const char *msg_skip_git_dir = N_("Skipping repository %s\n");
4141
static const char *msg_would_skip_git_dir = N_("Would skip repository %s\n");
42+
#ifndef CAN_UNLINK_MOUNT_POINTS
43+
static const char *msg_skip_mount_point = N_("Skipping mount point %s\n");
44+
static const char *msg_would_skip_mount_point = N_("Would skip mount point %s\n");
45+
#endif
4246
static const char *msg_warn_remove_failed = N_("failed to remove %s");
4347
static const char *msg_warn_lstat_failed = N_("could not lstat %s\n");
4448
static const char *msg_skip_cwd = N_("Refusing to remove current working directory\n");
@@ -183,6 +187,29 @@ static int remove_dirs(struct strbuf *path, const char *prefix, int force_flag,
183187
goto out;
184188
}
185189

190+
if (is_mount_point(path)) {
191+
#ifndef CAN_UNLINK_MOUNT_POINTS
192+
if (!quiet) {
193+
quote_path(path->buf, prefix, &quoted, 0);
194+
printf(dry_run ?
195+
_(msg_would_skip_mount_point) :
196+
_(msg_skip_mount_point), quoted.buf);
197+
}
198+
*dir_gone = 0;
199+
#else
200+
if (!dry_run && unlink(path->buf)) {
201+
int saved_errno = errno;
202+
quote_path(path->buf, prefix, &quoted, 0);
203+
errno = saved_errno;
204+
warning_errno(_(msg_warn_remove_failed), quoted.buf);
205+
*dir_gone = 0;
206+
ret = -1;
207+
}
208+
#endif
209+
210+
goto out;
211+
}
212+
186213
dir = opendir(path->buf);
187214
if (!dir) {
188215
/* an empty dir could be removed even if it is unreadble */

‎trunk/builtin/gc.c‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2068,7 +2068,7 @@ static int schtasks_schedule_task(const char *exec_path, enum schedule_priority
20682068
"</Settings>\n"
20692069
"<Actions Context=\"Author\">\n"
20702070
"<Exec>\n"
2071-
"<Command>\"%s\\git.exe\"</Command>\n"
2071+
"<Command>\"%s\\headless-git.exe\"</Command>\n"
20722072
"<Arguments>--exec-path=\"%s\" for-each-repo --config=maintenance.repo maintenance run --schedule=%s</Arguments>\n"
20732073
"</Exec>\n"
20742074
"</Actions>\n"

0 commit comments

Comments
 (0)