Skip to content

Merge 'readme' into HEAD

GitForWindowsHelper / shears-seen succeeded Feb 18, 2026 in 0s

shears/seen rebased successfully

Rebase Summary: seen

From: 55fbc0b714 (Merge 'readme' into HEAD, 2018-06-07) (59ec35a184..55fbc0b714)

Resolved: cccf8a4 (http: use new "best effort" strategy for Secure Channel revoke checking, 2020-03-04)

combined patch's http_schannel_check_revoke_mode variable with upstream's new HTTP retry variables

Range-diff
1:  cccf8a4c57 ! 1:  bf245bdcac http: use new "best effort" strategy for Secure Channel revoke checking
    @@ http.c: static char *cached_accept_language;
     +#else
     +	CURLSSLOPT_NO_REVOKE;
     +#endif
    -+
    - /*
    -  * With the backend being set to `schannel`, setting sslCAinfo would override
    -  * the Certificate Store in cURL v7.60.0 and later, which is not what we want
    + 
    + static long http_retry_after = 0;
    + static long http_max_retries = 0;
     @@ http.c: static int http_options(const char *var, const char *value,
      	}
      

Resolved: 4e585f6 (http: optionally send SSL client certificate, 2021-06-23)

kept both CURLINFO_RETRY_AFTER (upstream) and CURLSSLOPT_AUTO_CLIENT_CERT (patch) blocks in date order

Range-diff
1:  4e585f6d3d ! 1:  5dfbd54121 http: optionally send SSL client certificate
    @@ Documentation/config/http.adoc: http.schannelUseSSLCAInfo::
     
      ## git-curl-compat.h ##
     @@
    - #define GIT_CURL_NEED_TRANSFER_ENCODING_HEADER
    + #define GIT_CURL_HAVE_CURLINFO_RETRY_AFTER 1
      #endif
      
     +/**
    @@ git-curl-compat.h
       * released in August 2022.
     
      ## http.c ##
    -@@ http.c: static long http_schannel_check_revoke_mode =
    +@@ http.c: static long http_max_retry_time = 300;
       */
      static int http_schannel_use_ssl_cainfo;
      

To: 2c69007b2d (Merge 'readme' into HEAD, 2018-06-07) (9ef83ed607..2c69007b2d)

Statistics

Metric Count
Total conflicts 2
Skipped (upstreamed) 0
Resolved surgically 2
Range-diff (click to expand)
  1:  80f22867b3 =   1:  862aa6e380 unix-socket: avoid leak when initialization fails
  2:  7589a2c9f3 =   2:  e2f8d60b8c grep: prevent `^$` false match at end of file
  8:  d6aa683f7b =   3:  17ae4f938f mingw: include the Python parts in the build
 10:  34aa73ed3d =   4:  188eb434b4 win32/pthread: avoid name clashes with winpthread
 17:  2eed61bb1d =   5:  876c473d10 t9350: point out that refs are not updated correctly
 12:  79adea86bb =   6:  5745243686 git-compat-util: avoid redeclaring _DEFAULT_SOURCE
 21:  e30e987aab =   7:  97b6642b8b transport-helper: add trailing --
 15:  858ae20bd9 =   8:  9083c30cf5 Import the source code of mimalloc v2.2.7
 27:  01a483713e =   9:  d7ea61745e remote-helper: check helper status after import/export
 28:  ee0a47df6a =  10:  93a16ec2f3 clean: do not traverse mount points
 19:  65038ef97f =  11:  1d3125d8dc mimalloc: adjust for building inside Git
 36:  6ed2592947 =  12:  d767dbbe31 Always auto-gc after calling a fast-import transport
 37:  e0de321863 =  13:  fc6ebbe7d9 mingw: prevent regressions with "drive-less" absolute paths
 38:  bfd3acb3cd =  14:  fad96dc0a6 clean: remove mount points when possible
 22:  645bc10816 =  15:  5e680fd961 mingw: demonstrate a `git add` issue with NTFS junctions
 24:  cf0f4ee865 =  16:  2cb751079d mimalloc: offer a build-time option to enable it
 29:  0ea7db5e29 =  17:  8de20ca5da strbuf_realpath(): use platform-dependent API if available
 33:  3f5fcccfec =  18:  c33d108aef mingw: use mimalloc
 39:  56ffa14755 =  19:  29b5670771 transport: optionally disable side-band-64k
 40:  0c4afde887 =  20:  57918f4876 mingw: fix fatal error working on mapped network drives on Windows
 41:  23f84333e4 =  21:  0f04b82340 clink.pl: fix MSVC compile script to handle libcurl-d.lib
 42:  02ea48f3e6 =  22:  ddafc58d2a mingw: implement a platform-specific `strbuf_realpath()`
  3:  699c753215 =  23:  fa828e5321 vcpkg_install: detect lack of Git
  4:  32451e25f0 =  24:  8e84c1a344 vcpkg_install: add comment regarding slow network connections
  5:  f4ad4d8485 =  25:  6f4870e43a vcbuild: install ARM64 dependencies when building ARM64 binaries
  6:  16e279a86e =  26:  18b0f59ce8 vcbuild: add an option to install individual 'features'
  7:  9ede9b1849 =  27:  54f432fb5e cmake: allow building for Windows/ARM64
  9:  00f4c2e0fc =  28:  f8e4379f72 ci(vs-build) also build Windows/ARM64 artifacts
 11:  3026e920d3 =  29:  e23e82c8c2 Add schannel to curl installation
 25:  6e9c9e49b1 =  30:  dc50c69393 t5505/t5516: allow running without `.git/branches/` in the templates
 14:  08338a0968 =  31:  54f9ce4a10 cmake(): allow setting HOST_CPU for cross-compilation
 30:  cccf8a4c57 !  32:  bf245bdcac http: use new "best effort" strategy for Secure Channel revoke checking
    @@ http.c: static char *cached_accept_language;
     +#else
     +	CURLSSLOPT_NO_REVOKE;
     +#endif
    -+
    - /*
    -  * With the backend being set to `schannel`, setting sslCAinfo would override
    -  * the Certificate Store in cURL v7.60.0 and later, which is not what we want
    + 
    + static long http_retry_after = 0;
    + static long http_max_retries = 0;
     @@ http.c: static int http_options(const char *var, const char *value,
      	}
      
 34:  37775e1051 =  33:  7d19436403 t5505/t5516: fix white-space around redirectors
 43:  ebd624e17c =  34:  6db47d4a42 t3701: verify that we can add *lots* of files interactively
 44:  57de12d3df =  35:  324ef698c5 commit: accept "scissors" with CR/LF line endings
 45:  8dd1daf0a2 =  36:  1ef866071c t0014: fix indentation
 46:  d8bdc1a5ec =  37:  2faacefcaa git-gui: accommodate for intent-to-add files
 47:  2d262394e3 =  38:  155481bace mingw: allow for longer paths in `parse_interpreter()`
 48:  944bb1244a =  39:  dbe7835997 compat/vcbuild: document preferred way to build in Visual Studio
 52:  9e2be85d85 =  40:  ac06e12c0c windows: skip linking `git-<command>` for built-ins
 53:  d4b13c0f3a =  41:  ed94e657ca mingw: stop hard-coding `CC = gcc`
 13:  809dd8a161 =  42:  2484f4cd47 hash-object: demonstrate a >4GB/LLP64 problem
 54:  13bd8c207e =  43:  5f8e4755df mingw: drop the -D_USE_32BIT_TIME_T option
 16:  3f39eacc18 =  44:  9ad4acb5bc object-file.c: use size_t for header lengths
 55:  160ae40b39 =  45:  c9efae1e25 mingw: only use -Wl,--large-address-aware for 32-bit builds
 18:  a98d37a1b4 =  46:  038b21cd40 CMake: default Visual Studio generator has changed
 20:  f3e2ae8a63 =  47:  9d10d67383 hash algorithms: use size_t for section lengths
 56:  26e14718c2 =  48:  58c898412b mingw: avoid over-specifying `--pic-executable`
 23:  918aa0ede5 =  49:  946022460c .gitignore: add Visual Studio CMakeSetting.json file
 26:  41bb265aef =  50:  f03785d18a hash-object --stdin: verify that it works with >4GB/LLP64
 57:  de3015de86 =  51:  ec19308fef mingw: set the prefix and HOST_CPU as per MSYS2's settings
 31:  9a23ae780a =  52:  428e358450 subtree: update `contrib/subtree` `test` target
 32:  761df01b32 =  53:  4d97095d18 CMakeLists: add default "x64-windows" arch for Visual Studio
 35:  4b9800b5f6 =  54:  3f0e0b21dd hash-object: add another >4GB/LLP64 test case
 79:  606ebbe82f =  55:  fe64e1c242 setup: properly use "%(prefix)/" when in WSL
 80:  b2b59f49ee =  56:  a650a065e4 Add config option `windows.appendAtomically`
 58:  856ba5bac9 =  57:  3cf48a5332 mingw: only enable the MSYS2-specific stuff when compiling in MSYS2
 71:  1eb722ba2e =  58:  444ead44d6 MinGW: link as terminal server aware
 49:  4e585f6d3d !  59:  5dfbd54121 http: optionally send SSL client certificate
    @@ Documentation/config/http.adoc: http.schannelUseSSLCAInfo::
     
      ## git-curl-compat.h ##
     @@
    - #define GIT_CURL_NEED_TRANSFER_ENCODING_HEADER
    + #define GIT_CURL_HAVE_CURLINFO_RETRY_AFTER 1
      #endif
      
     +/**
    @@ git-curl-compat.h
       * released in August 2022.
     
      ## http.c ##
    -@@ http.c: static long http_schannel_check_revoke_mode =
    +@@ http.c: static long http_max_retry_time = 300;
       */
      static int http_schannel_use_ssl_cainfo;
      
 50:  3aaa2ed3a8 =  60:  1a30b1aa62 ci: run `contrib/subtree` tests in CI builds
 51:  923febdc58 =  61:  ee1138fd51 CMake: show Win32 and Generator_platform build-option values
 84:  5c7254013a =  62:  a6158ca860 hash-object: add a >4GB/LLP64 test case using filtered input
 85:  13b089b233 =  63:  b1366788d0 compat/mingw.c: do not warn when failing to get owner
 86:  ce823f7efc =  64:  96bb05eef7 mingw: $env:TERM="xterm-256color" for newer OSes
 87:  8fc4b38cc4 =  65:  ebca5bd760 winansi: check result and Buffer before using Name
 88:  11da6ced40 =  66:  f8cd2c561e mingw: change core.fsyncObjectFiles = 1 by default
 89:  b97447b277 =  67:  dfa5bb5742 Fix Windows version resources
 90:  ce574c4572 =  68:  8d6f3f5bb2 status: fix for old-style submodules with commondir
 59:  d45000f0e1 =  69:  6e8ecb4872 mingw: rely on MSYS2's metadata instead of hard-coding it
 60:  ebb6d73400 =  70:  b412c6e6ee mingw: always define `ETC_*` for MSYS2 environments
 61:  9a267b9183 =  71:  27a61cdd28 max_tree_depth: lower it for clang builds in general on Windows
 62:  bfb7254ae4 =  72:  e31a240ebd mingw: ensure valid CTYPE
 67:  4e2e04e3d1 =  73:  e7b3ffb13f ci: work around a problem with HTTP/2 vs libcurl v8.10.0
 63:  d0baddc08f =  74:  1ffcfe38f7 mingw: allow `git.exe` to be used instead of the "Git wrapper"
 69:  1de77b4f24 =  75:  e733754ef7 revision: create mark_trees_uninteresting_dense()
 64:  1d75505354 =  76:  d389e0caf8 mingw: ignore HOMEDRIVE/HOMEPATH if it points to Windows' system directory
 72:  d6b0e824ab =  77:  a6a5a72631 survey: stub in new experimental 'git-survey' command
 75:  dbebeae73e =  78:  fb6bac1cb5 survey: add command line opts to select references
 65:  7b2cc442e7 =  79:  750d16462c clink.pl: fix libexpatd.lib link error when using MSVC
 78:  48282f92e5 =  80:  e1775028e9 survey: start pretty printing data in table form
 66:  b9d4f2b028 =  81:  9f13a2b832 Makefile: clean up .ilk files when MSVC=1
 83:  25dc379c61 =  82:  535974a1c3 survey: add object count summary
 68:  8e778228aa =  83:  941b25fa66 vcbuild: add support for compiling Windows resource files
101:  221ab39b63 =  84:  f1d0b06fa7 survey: summarize total sizes by object type
 70:  1ae6908ac9 =  85:  3cced89e39 config.mak.uname: add git.rc to MSVC builds
102:  fddd84ab4b =  86:  8c2ace8f0b survey: show progress during object walk
103:  fb832861a2 =  87:  2dff34640f mingw: make sure `errno` is set correctly when socket operations fail
 73:  7ea1c4591b =  88:  11a92926f7 clink.pl: ignore no-stack-protector arg on MSVC=1 builds
 74:  a782e1fe8a =  89:  e438f68805 http: optionally load libcurl lazily
104:  0760c54757 =  90:  7414c232f8 survey: add ability to track prioritized lists
105:  0cb394bab4 =  91:  6d51909d34 compat/mingw: handle WSA errors in strerror
 76:  c33bb6d583 =  92:  98b2f8eec2 clink.pl: move default linker options for MSVC=1 builds
 77:  1e2f0a20af =  93:  4198f0b8ef http: support lazy-loading libcurl also on Windows
106:  b6e12d7320 =  94:  8811500ce1 survey: add report of "largest" paths
107:  b83639ed09 =  95:  7b3a62ec9c compat/mingw: drop outdated comment
 81:  8c197ad73c =  96:  2e70e23444 cmake: install headless-git.
 82:  a355c35ae9 =  97:  625f3548d5 http: when loading libcurl lazily, allow for multiple SSL backends
108:  2d6d3d1fb9 =  98:  b8954b0e61 survey: add --top=<N> option and config
109:  c026369adf =  99:  44c3a77bff t0301: actually test credential-cache on Windows
 91:  96c16cfeb3 = 100:  9f3d752023 git.rc: include winuser.h
 92:  79c98a7825 = 101:  08882243e6 mingw: do load libcurl dynamically by default
 93:  c5077b0641 = 102:  d3b7b256f2 Add a GitHub workflow to verify that Git/Scalar work in Nano Server
 94:  c701e6d747 = 103:  8df1c2d74b mingw: suggest `windows.appendAtomically` in more cases
 95:  8ab0bef753 = 104:  5ffc02800c win32: use native ANSI sequence processing, if possible
 96:  844a96ab59 = 105:  69755a2001 common-main.c: fflush stdout buffer upon exit
 97:  f1b6827348 = 106:  e994c45a56 t5601/t7406(mingw): do run tests with symlink support
 98:  966adcfcc9 = 107:  d95698d0c7 win32: ensure that `localtime_r()` is declared even in i686 builds
 99:  b4ba887512 = 108:  c34782e6e7 Fallback to AppData if XDG_CONFIG_HOME is unset
100:  8bf5925526 = 109:  4d639a41cf run-command: be helpful with Git LFS fails on Windows 7
110:  d87e4fafc5 = 110:  9648a1bc04 survey: clearly note the experimental nature in the output
111:  e8787013b7 = 111:  1b21a5b160 credential-cache: handle ECONNREFUSED gracefully
112:  4076dc5961 = 112:  5f3f49f0de reftable: do make sure to use custom allocators
113:  558425b188 = 113:  cbfb918ec3 check-whitespace: avoid alerts about upstream commits
114:  2dd45d3e01 = 114:  a3b734659b t/t5571-prep-push-hook.sh: Add test with writing to stderr
115:  df031a85db = 115:  650dcd3476 git-svn: mark it as unsupported by the Git for Windows project
116:  d3218db03d = 116:  47b8421f14 ci(macos): skip the `git p4` tests
117:  4d3e8389dd = 117:  4c0b7259bd Win32: make FILETIME conversion functions public
118:  6f882522be = 118:  17e0d19e8a Win32: dirent.c: Move opendir down
119:  ca9685f3b1 = 119:  d3f561ba8f mingw: make the dirent implementation pluggable
120:  2fb6e25bd5 = 120:  a2e35b820f Win32: make the lstat implementation pluggable
121:  c13bf0955e = 121:  59d6fea879 mingw: add infrastructure for read-only file system level caches
122:  c19eac892a = 122:  f90a5b5784 mingw: add a cache below mingw's lstat and dirent implementations
123:  e73758bb51 = 123:  71035b3726 fscache: load directories only once
124:  e721054824 = 124:  4ccb7c5157 fscache: add key for GIT_TRACE_FSCACHE
125:  c5e26600c0 = 125:  53f04294e5 fscache: remember not-found directories
126:  7fa533074d = 126:  ad52f297db fscache: add a test for the dir-not-found optimization
127:  381b8651ab = 127:  eff42fb228 add: use preload-index and fscache for performance
128:  44749f7bae = 128:  ed94ca2b23 dir.c: make add_excludes aware of fscache during status
155:  57a914a0ea = 129:  be7f4858ba git-gui--askyesno: fix funny text wrapping
129:  64803214b3 = 130:  5d79ab361a fscache: make fscache_enabled() public
157:  42ae3ba666 = 131:  a467e76f0b git-gui--askyesno (mingw): use Git for Windows' icon, if available
130:  3613a5c069 = 132:  60841cd94a dir.c: regression fix for add_excludes with fscache
131:  b342139e9d = 133:  c7e536c502 fetch-pack.c: enable fscache for stats under .git/objects
132:  163025af6c = 134:  4de06a0517 checkout.c: enable fscache for checkout again
133:  6bc9ed4fa8 = 135:  0281343317 Enable the filesystem cache (fscache) in refresh_index().
134:  3ea3242148 = 136:  3fa4122121 fscache: use FindFirstFileExW to avoid retrieving the short name
135:  6cebe7cb83 = 137:  440217e88c fscache: add GIT_TEST_FSCACHE support
136:  738d81ef3d = 138:  5561ac26d3 fscache: add fscache hit statistics
137:  9b2c0b6e0d = 139:  41967e7740 unpack-trees: enable fscache for sparse-checkout
138:  c76216229c = 140:  ae695f4561 status: disable and free fscache at the end of the status command
139:  1a85f84652 = 141:  0b23c502f0 mem_pool: add GIT_TRACE_MEMPOOL support
140:  65625f6f9a = 142:  0bff01735d fscache: fscache takes an initial size
141:  ec54b5f773 = 143:  306f36a0ff fscache: update fscache to be thread specific instead of global
142:  6ca638fdfc = 144:  7c3dc23bf9 fscache: teach fscache to use mempool
143:  88cd541282 = 145:  bb40342fbe fscache: make fscache_enable() thread safe
144:  4144fcc65f = 146:  9401f77451 fscache: teach fscache to use NtQueryDirectoryFile
145:  00aec89b36 = 147:  7f1e061f07 fscache: remember the reparse tag for each entry
146:  883a87decb = 148:  e5c6e47cd2 fscache: implement an FSCache-aware is_mount_point()
147:  df2dd6f75b = 149:  d8aef72252 clean: make use of FSCache
148:  8332e33ad8 = 150:  098677ff9e pack-objects (mingw): demonstrate a segmentation fault with large deltas
149:  e3bf3e836e = 151:  247e21486a mingw: support long paths
150:  2e3b741bd3 = 152:  e4652ff467 win32(long path support): leave drive-less absolute paths intact
151:  daecb6acd3 = 153:  eac726579d compat/fsmonitor/fsm-*-win32: support long paths
152:  8fd7dc8256 = 154:  ee0b13b947 clean: suggest using `core.longPaths` if paths are too long to remove
153:  bf11d32f85 = 155:  bfec45dfc6 mingw: Support `git_terminal_prompt` with more terminals
154:  28a7176498 = 156:  64cea8c4d5 compat/terminal.c: only use the Windows console if bash 'read -r' fails
156:  8845dcd8de = 157:  94da489c68 mingw (git_terminal_prompt): do fall back to CONIN$/CONOUT$ method
160:  756ac04194 = 158:  93bdc9e911 Win32: symlink: move phantom symlink creation to a separate function
161:  fd6203f7ea = 159:  85a244de5e Introduce helper to create symlinks that knows about index_state
162:  0f680c257c = 160:  7284d58bcc mingw: allow to specify the symlink type in .gitattributes
163:  86396f721f = 161:  545f696ba0 Win32: symlink: add test for `symlink` attribute
164:  9331d62e53 = 162:  0daa8294ec mingw: explicitly specify with which cmd to prefix the cmdline
165:  6f430374de = 163:  7d947e89d0 mingw: when path_lookup() failed, try BusyBox
166:  15f8d577a1 = 164:  2e05bec64a test-tool: learn to act as a drop-in replacement for `iconv`
167:  925b9703af = 165:  5ebf6d372e tests(mingw): if `iconv` is unavailable, use `test-helper --iconv`
168:  00045eb498 = 166:  282696fd9a gitattributes: mark .png files as binary
169:  3d2c9164dd = 167:  8ccfa7f235 tests: move test PNGs into t/lib-diff/
170:  ce02e35983 = 168:  8662c87c9b tests: only override sort & find if there are usable ones in /usr/bin/
171:  24a2c71cba = 169:  7d61a8eb58 tests: use the correct path separator with BusyBox
158:  0ddc3c0073 = 170:  05c4a66ccc mingw: introduce code to detect whether we're inside a Windows container
172:  9ac62203ed = 171:  2116b698b1 mingw: only use Bash-ism `builtin pwd -W` when available
159:  40b5fa86a5 = 172:  ee48973507 mingw: when running in a Windows container, try to rename() harder
173:  4034084093 = 173:  ce4c954301 tests (mingw): remove Bash-specific pwd option
182:  866f925567 = 174:  497aee53f5 mingw: move the file_attr_to_st_mode() function definition
174:  c1da4346bd = 175:  0f4cc1f959 test-lib: add BUSYBOX prerequisite
185:  f98bc15da1 = 176:  de97bab1d1 mingw: Windows Docker volumes are *not* symbolic links
176:  050c4125e2 = 177:  1d27bc5633 t5003: use binary file from t/lib-diff/
190:  67aac17fc3 = 178:  2430efa17b mingw: work around rename() failing on a read-only file
178:  964ad07d0a = 179:  b97eecc654 t5532: workaround for BusyBox on Windows
180:  f123cb2dc1 = 180:  705dcfd53b t5605: special-case hardlink test for BusyBox-w32
183:  d383f09e3e = 181:  7b92776b93 t5813: allow for $PWD to be a Windows path
186:  351abc9201 = 182:  940703b5c6 t9200: skip tests when $PWD contains a colon
175:  b6922adcef = 183:  442dd0d167 Describe Git for Windows' architecture [no ci]
187:  5e736f9422 = 184:  97a4f17381 mingw: kill child processes in a gentler way
191:  c3162486ea = 185:  dce315903c mingw: optionally enable wsl compability file mode bits
177:  345c9f9cac = 186:  5101e536f1 Modify the Code of Conduct for Git for Windows
192:  6fde4e4019 = 187:  5066bcca92 mingw: really handle SIGINT
179:  c30d2310cc = 188:  f200df55ef CONTRIBUTING.md: add guide for first-time contributors
193:  811c48a510 = 189:  b5cc22a66b Partially un-revert "editor: save and reset terminal after calling EDITOR"
181:  32bf08e098 = 190:  a92c2782ff README.md: Add a Windows-specific preamble
194:  824fa89b1e = 191:  f0f5e1f116 reset: reinstate support for the deprecated --stdin option
184:  4c294ca8bc = 192:  f807bd9b6b Add an issue template
188:  30a84eb9ec = 193:  bd0af1f0ac Add a GitHub workflow to monitor component updates
195:  d21488ca1e = 194:  fe1066d83f fsmonitor: reintroduce core.useBuiltinFSMonitor
189:  66d0872897 = 195:  cbed15d3bc Modify the GitHub Pull Request template (to reflect Git for Windows)
196:  79d5e2a457 = 196:  3deb6f5b39 dependabot: help keeping GitHub Actions versions up to date
197:  8c4b95eadb = 197:  afcda95ff8 SECURITY.md: document Git for Windows' policies