Skip to content

Commit 9682f5e

Browse files
committed
Merge pull request git-for-windows#773 from jeffhostetler/vs2015
Build with VS2015 Signed-off-by: Johannes Schindelin <[email protected]>
2 parents 8352556 + 60ac536 commit 9682f5e

File tree

138 files changed

+4281
-830
lines changed

Some content is hidden

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

138 files changed

+4281
-830
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
/GIT-BUILD-OPTIONS
22
/GIT-CFLAGS
33
/GIT-LDFLAGS
4+
/GIT-MSVC-GEN
45
/GIT-PREFIX
56
/GIT-PERL-DEFINES
67
/GIT-PERL-HEADER
@@ -222,5 +223,7 @@
222223
*.user
223224
*.idb
224225
*.pdb
226+
*.ilk
227+
.vs/
225228
/Debug/
226229
/Release/

Documentation/Makefile

Lines changed: 44 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -286,9 +286,9 @@ docdep_prereqs = \
286286
cmd-list.made $(cmds_txt)
287287

288288
doc.dep : $(docdep_prereqs) $(wildcard *.txt) build-docdep.perl
289-
$(QUIET_GEN)$(RM) $@+ $@ && \
290-
$(PERL_PATH) ./build-docdep.perl >$@+ $(QUIET_STDERR) && \
291-
mv $@+ $@
289+
$(QUIET_GEN)$(RM) $@.new $@ && \
290+
$(PERL_PATH) ./build-docdep.perl >$@.new $(QUIET_STDERR) && \
291+
mv $@.new $@
292292

293293
-include doc.dep
294294

@@ -324,8 +324,8 @@ mergetools-list.made: ../git-mergetool--lib.sh $(wildcard ../mergetools/*)
324324
date >$@
325325

326326
clean:
327-
$(RM) *.xml *.xml+ *.html *.html+ *.1 *.5 *.7
328-
$(RM) *.texi *.texi+ *.texi++ git.info gitman.info
327+
$(RM) *.xml *.xml.new *.html *.html.new *.1 *.5 *.7
328+
$(RM) *.texi *.texi.new *.texi.new.new git.info gitman.info
329329
$(RM) *.pdf
330330
$(RM) howto-index.txt howto/*.html doc.dep
331331
$(RM) technical/*.html technical/api-index.txt
@@ -334,14 +334,14 @@ clean:
334334
$(RM) manpage-base-url.xsl
335335

336336
$(MAN_HTML): %.html : %.txt asciidoc.conf
337-
$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
338-
$(TXT_TO_HTML) -d manpage -o $@+ $< && \
339-
mv $@+ $@
337+
$(QUIET_ASCIIDOC)$(RM) $@.new $@ && \
338+
$(TXT_TO_HTML) -d manpage -o $@.new $< && \
339+
mv $@.new $@
340340

341341
$(OBSOLETE_HTML): %.html : %.txto asciidoc.conf
342-
$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
343-
$(TXT_TO_HTML) -o $@+ $< && \
344-
mv $@+ $@
342+
$(QUIET_ASCIIDOC)$(RM) $@.new $@ && \
343+
$(TXT_TO_HTML) -o $@.new $< && \
344+
mv $@.new $@
345345

346346
manpage-base-url.xsl: manpage-base-url.xsl.in
347347
sed "s|@@MAN_BASE_URL@@|$(MAN_BASE_URL)|" $< > $@
@@ -351,14 +351,14 @@ manpage-base-url.xsl: manpage-base-url.xsl.in
351351
$(XMLTO) -m $(MANPAGE_XSL) $(XMLTO_EXTRA) man $<
352352

353353
%.xml : %.txt asciidoc.conf
354-
$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
355-
$(TXT_TO_XML) -d manpage -o $@+ $< && \
356-
mv $@+ $@
354+
$(QUIET_ASCIIDOC)$(RM) $@.new $@ && \
355+
$(TXT_TO_XML) -d manpage -o $@.new $< && \
356+
mv $@.new $@
357357

358358
user-manual.xml: user-manual.txt user-manual.conf
359-
$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
360-
$(TXT_TO_XML) -d book -o $@+ $< && \
361-
mv $@+ $@
359+
$(QUIET_ASCIIDOC)$(RM) $@.new $@ && \
360+
$(TXT_TO_XML) -d book -o $@.new $< && \
361+
mv $@.new $@
362362

363363
technical/api-index.txt: technical/api-index-skel.txt \
364364
technical/api-index.sh $(patsubst %,%.txt,$(API_DOCS))
@@ -375,46 +375,46 @@ XSLT = docbook.xsl
375375
XSLTOPTS = --xinclude --stringparam html.stylesheet docbook-xsl.css
376376

377377
user-manual.html: user-manual.xml $(XSLT)
378-
$(QUIET_XSLTPROC)$(RM) $@+ $@ && \
379-
xsltproc $(XSLTOPTS) -o $@+ $(XSLT) $< && \
380-
mv $@+ $@
378+
$(QUIET_XSLTPROC)$(RM) $@.new $@ && \
379+
xsltproc $(XSLTOPTS) -o $@.new $(XSLT) $< && \
380+
mv $@.new $@
381381

382382
git.info: user-manual.texi
383383
$(QUIET_MAKEINFO)$(MAKEINFO) --no-split -o $@ user-manual.texi
384384

385385
user-manual.texi: user-manual.xml
386-
$(QUIET_DB2TEXI)$(RM) $@+ $@ && \
387-
$(DOCBOOK2X_TEXI) user-manual.xml --encoding=UTF-8 --to-stdout >$@++ && \
388-
$(PERL_PATH) fix-texi.perl <$@++ >$@+ && \
389-
rm $@++ && \
390-
mv $@+ $@
386+
$(QUIET_DB2TEXI)$(RM) $@.new $@ && \
387+
$(DOCBOOK2X_TEXI) user-manual.xml --encoding=UTF-8 --to-stdout >$@.new.new && \
388+
$(PERL_PATH) fix-texi.perl <$@.new.new >$@.new && \
389+
rm $@.new.new && \
390+
mv $@.new $@
391391

392392
user-manual.pdf: user-manual.xml
393-
$(QUIET_DBLATEX)$(RM) $@+ $@ && \
394-
$(DBLATEX) -o $@+ $(DBLATEX_COMMON) $< && \
395-
mv $@+ $@
393+
$(QUIET_DBLATEX)$(RM) $@.new $@ && \
394+
$(DBLATEX) -o $@.new $(DBLATEX_COMMON) $< && \
395+
mv $@.new $@
396396

397397
gitman.texi: $(MAN_XML) cat-texi.perl texi.xsl
398-
$(QUIET_DB2TEXI)$(RM) $@+ $@ && \
399-
($(foreach xml,$(sort $(MAN_XML)),xsltproc -o $(xml)+ texi.xsl $(xml) && \
400-
$(DOCBOOK2X_TEXI) --encoding=UTF-8 --to-stdout $(xml)+ && \
401-
rm $(xml)+ &&) true) > $@++ && \
402-
$(PERL_PATH) cat-texi.perl $@ <$@++ >$@+ && \
403-
rm $@++ && \
404-
mv $@+ $@
398+
$(QUIET_DB2TEXI)$(RM) $@.new $@ && \
399+
($(foreach xml,$(sort $(MAN_XML)),xsltproc -o $(xml).new texi.xsl $(xml) && \
400+
$(DOCBOOK2X_TEXI) --encoding=UTF-8 --to-stdout $(xml).new && \
401+
rm $(xml).new &&) true) > $@.new.new && \
402+
$(PERL_PATH) cat-texi.perl $@ <$@.new.new >$@.new && \
403+
rm $@.new.new && \
404+
mv $@.new $@
405405

406406
gitman.info: gitman.texi
407407
$(QUIET_MAKEINFO)$(MAKEINFO) --no-split --no-validate $*.texi
408408

409409
$(patsubst %.txt,%.texi,$(MAN_TXT)): %.texi : %.xml
410-
$(QUIET_DB2TEXI)$(RM) $@+ $@ && \
411-
$(DOCBOOK2X_TEXI) --to-stdout $*.xml >$@+ && \
412-
mv $@+ $@
410+
$(QUIET_DB2TEXI)$(RM) $@.new $@ && \
411+
$(DOCBOOK2X_TEXI) --to-stdout $*.xml >$@.new && \
412+
mv $@.new $@
413413

414414
howto-index.txt: howto-index.sh $(wildcard howto/*.txt)
415-
$(QUIET_GEN)$(RM) $@+ $@ && \
416-
'$(SHELL_PATH_SQ)' ./howto-index.sh $(sort $(wildcard howto/*.txt)) >$@+ && \
417-
mv $@+ $@
415+
$(QUIET_GEN)$(RM) $@.new $@ && \
416+
'$(SHELL_PATH_SQ)' ./howto-index.sh $(sort $(wildcard howto/*.txt)) >$@.new && \
417+
mv $@.new $@
418418

419419
$(patsubst %,%.html,$(ARTICLES)) : %.html : %.txt
420420
$(QUIET_ASCIIDOC)$(TXT_TO_HTML) $*.txt
@@ -423,10 +423,10 @@ WEBDOC_DEST = /pub/software/scm/git/docs
423423

424424
howto/%.html: ASCIIDOC_EXTRA += -a git-relative-html-prefix=../
425425
$(patsubst %.txt,%.html,$(wildcard howto/*.txt)): %.html : %.txt
426-
$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
426+
$(QUIET_ASCIIDOC)$(RM) $@.new $@ && \
427427
sed -e '1,/^$$/d' $< | \
428-
$(TXT_TO_HTML) - >$@+ && \
429-
mv $@+ $@
428+
$(TXT_TO_HTML) - >$@.new && \
429+
mv $@.new $@
430430

431431
install-webdoc : html
432432
'$(SHELL_PATH_SQ)' ./install-webdoc.sh $(WEBDOC_DEST)

Documentation/config.txt

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -909,6 +909,25 @@ relatively high IO latencies. When enabled, Git will do the
909909
index comparison to the filesystem data in parallel, allowing
910910
overlapping IO's. Defaults to true.
911911

912+
core.fscache::
913+
Enable additional caching of file system data for some operations.
914+
+
915+
Git for Windows uses this to bulk-read and cache lstat data of entire
916+
directories (instead of doing lstat file by file).
917+
918+
core.longpaths::
919+
Enable long path (> 260) support for builtin commands in Git for
920+
Windows. This is disabled by default, as long paths are not supported
921+
by Windows Explorer, cmd.exe and the Git for Windows tool chain
922+
(msys, bash, tcl, perl...). Only enable this if you know what you're
923+
doing and are prepared to live with a few quirks.
924+
925+
core.unsetenvvars::
926+
EXPERIMENTAL, Windows-only: comma-separated list of environment
927+
variables' names that need to be unset before spawning any other
928+
process. Defaults to `PERL5LIB` to account for the fact that Git
929+
for Windows insists on using its own Perl interpreter.
930+
912931
core.createObject::
913932
You can set this to 'link', in which case a hardlink followed by
914933
a delete of the source are used to make sure that object creation
@@ -2236,6 +2255,27 @@ http.sslCAPath::
22362255
with when fetching or pushing over HTTPS. Can be overridden
22372256
by the `GIT_SSL_CAPATH` environment variable.
22382257

2258+
http.sslBackend::
2259+
Name of the SSL backend to use (e.g. "openssl" or "schannel").
2260+
This option is ignored if cURL lacks support for choosing the SSL
2261+
backend at runtime.
2262+
2263+
http.schannelCheckRevoke::
2264+
Used to enforce or disable certificate revocation checks in cURL
2265+
when http.sslBackend is set to "schannel". Defaults to `true` if
2266+
unset. Only necessary to disable this if Git consistently errors
2267+
and the message is about checking the revocation status of a
2268+
certificate. This option is ignored if cURL lacks support for
2269+
setting the relevant SSL option at runtime.
2270+
2271+
http.schannelUseSSLCAInfo::
2272+
As of cURL v7.60.0, the Secure Channel backend can use the
2273+
certificate bundle provided via `http.sslCAInfo`, but that would
2274+
override the Windows Certificate Store. Since this is not desirable
2275+
by default, Git will tell cURL not to use that bundle by default
2276+
when the `schannel` backend was configured via `http.sslBackend`,
2277+
unless `http.schannelUseSSLCAInfo` overrides this behavior.
2278+
22392279
http.pinnedpubkey::
22402280
Public key of the https service. It may either be the filename of
22412281
a PEM or DER encoded public key file or a string starting with
@@ -3754,3 +3794,9 @@ worktree.guessRemote::
37543794
such a branch exists, it is checked out and set as "upstream"
37553795
for the new branch. If no such match can be found, it falls
37563796
back to creating a new branch from the current HEAD.
3797+
3798+
sendpack.sideband::
3799+
Allows to disable the side-band-64k capability for send-pack even
3800+
when it is advertised by the server. Makes it possible to work
3801+
around a limitation in the git for windows implementation together
3802+
with the dump git protocol. Defaults to true.

Documentation/git-reset.txt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ SYNOPSIS
1010
[verse]
1111
'git reset' [-q] [<tree-ish>] [--] <paths>...
1212
'git reset' (--patch | -p) [<tree-ish>] [--] [<paths>...]
13+
EXPERIMENTAL: 'git reset' [-q] [--stdin [-z]] [<tree-ish>]
1314
'git reset' [--soft | --mixed [-N] | --hard | --merge | --keep] [-q] [<commit>]
1415

1516
DESCRIPTION
@@ -97,6 +98,15 @@ OPTIONS
9798
--quiet::
9899
Be quiet, only report errors.
99100

101+
--stdin::
102+
EXPERIMENTAL: Instead of taking list of paths from the
103+
command line, read list of paths from the standard input.
104+
Paths are separated by LF (i.e. one path per line) by
105+
default.
106+
107+
-z::
108+
EXPERIMENTAL: Only meaningful with `--stdin`; paths are
109+
separated with NUL character instead of LF.
100110

101111
EXAMPLES
102112
--------

Makefile

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1179,7 +1179,7 @@ endif
11791179

11801180
ifdef SANE_TOOL_PATH
11811181
SANE_TOOL_PATH_SQ = $(subst ','\'',$(SANE_TOOL_PATH))
1182-
BROKEN_PATH_FIX = 's|^\# @@BROKEN_PATH_FIX@@$$|git_broken_path_fix $(SANE_TOOL_PATH_SQ)|'
1182+
BROKEN_PATH_FIX = 's|^\# @@BROKEN_PATH_FIX@@$$|git_broken_path_fix "$(SANE_TOOL_PATH_SQ)"|'
11831183
PATH := $(SANE_TOOL_PATH):${PATH}
11841184
else
11851185
BROKEN_PATH_FIX = '/^\# @@BROKEN_PATH_FIX@@$$/d'
@@ -2087,7 +2087,7 @@ $(SCRIPT_LIB) : % : %.sh GIT-SCRIPT-DEFINES
20872087
$(QUIET_GEN)$(cmd_munge_script) && \
20882088
mv $@+ $@
20892089

2090-
git.res: git.rc GIT-VERSION-FILE
2090+
git.res: git.rc GIT-VERSION-FILE GIT-PREFIX
20912091
$(QUIET_RC)$(RC) \
20922092
$(join -DMAJOR= -DMINOR= -DMICRO= -DPATCHLEVEL=, $(wordlist 1, 4, \
20932093
$(shell echo $(GIT_VERSION) 0 0 0 0 | tr '.a-zA-Z-' ' '))) \
@@ -2749,6 +2749,28 @@ install: all
27492749
$(INSTALL) $(ALL_PROGRAMS) '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
27502750
$(INSTALL) -m 644 $(SCRIPT_LIB) '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
27512751
$(INSTALL) $(install_bindir_programs) '$(DESTDIR_SQ)$(bindir_SQ)'
2752+
ifdef MSVC
2753+
$(INSTALL) compat/vcbuild/GEN.DEPS/bin/*.dll '$(DESTDIR_SQ)$(bindir_SQ)'
2754+
$(INSTALL) compat/vcbuild/GEN.DEPS/bin/*.pdb '$(DESTDIR_SQ)$(bindir_SQ)'
2755+
# We DO NOT install the individual foo.o.pdb files because they
2756+
# have already been rolled up into the exe's pdb file.
2757+
# We DO NOT have pdb files for the builtin commands (like git-status.exe)
2758+
# because it is just a copy/hardlink of git.exe, rather than a unique binary.
2759+
$(INSTALL) git.pdb '$(DESTDIR_SQ)$(bindir_SQ)'
2760+
$(INSTALL) git-shell.pdb '$(DESTDIR_SQ)$(bindir_SQ)'
2761+
$(INSTALL) git-upload-pack.pdb '$(DESTDIR_SQ)$(bindir_SQ)'
2762+
$(INSTALL) git-credential-store.pdb '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
2763+
$(INSTALL) git-daemon.pdb '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
2764+
$(INSTALL) git-fast-import.pdb '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
2765+
$(INSTALL) git-http-backend.pdb '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
2766+
$(INSTALL) git-http-fetch.pdb '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
2767+
$(INSTALL) git-http-push.pdb '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
2768+
$(INSTALL) git-imap-send.pdb '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
2769+
$(INSTALL) git-remote-http.pdb '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
2770+
$(INSTALL) git-remote-testsvn.pdb '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
2771+
$(INSTALL) git-sh-i18n--envsubst.pdb '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
2772+
$(INSTALL) git-show-index.pdb '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
2773+
endif
27522774
$(MAKE) -C templates DESTDIR='$(DESTDIR_SQ)' install
27532775
$(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(mergetools_instdir_SQ)'
27542776
$(INSTALL) -m 644 mergetools/* '$(DESTDIR_SQ)$(mergetools_instdir_SQ)'
@@ -2949,6 +2971,13 @@ endif
29492971
$(RM) GIT-VERSION-FILE GIT-CFLAGS GIT-LDFLAGS GIT-BUILD-OPTIONS
29502972
$(RM) GIT-USER-AGENT GIT-PREFIX
29512973
$(RM) GIT-SCRIPT-DEFINES GIT-PERL-DEFINES GIT-PERL-HEADER GIT-PYTHON-VARS
2974+
ifdef MSVC
2975+
$(RM) $(patsubst %.o,%.o.pdb,$(OBJECTS))
2976+
$(RM) $(patsubst %.exe,%.pdb,$(OTHER_PROGRAMS))
2977+
$(RM) $(patsubst %.exe,%.pdb,$(PROGRAMS))
2978+
$(RM) $(patsubst %.exe,%.pdb,$(TEST_PROGRAMS))
2979+
$(RM) GIT-MSVC-GEN
2980+
endif
29522981

29532982
.PHONY: all install profile-clean cocciclean clean strip
29542983
.PHONY: shell_compatibility_test please_set_SHELL_PATH_to_a_more_modern_shell

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
[![Build Status](https:/dev.azure.com/git/git/_apis/build/status/test-git.git)](https://dev.azure.com/git/git/_build/latest?definitionId=2)
2+
13
Git - fast, scalable, distributed revision control system
24
=========================================================
35

0 commit comments

Comments
 (0)