Skip to content

Releases: git-for-windows/git-snapshots

Fri, 12 Apr 2024 14:22:30 +0200

25 Jan 10:21
79cd17f

Choose a tag to compare

prerelease-2.44.0.windows.1-8-g79cd17fc78-20240412122612

common-main.c: fflush stdout buffer when exit (#4901)

Fri, 12 Apr 2024 11:01:34 +0000

25 Jan 10:20
1a6b238

Choose a tag to compare

builtin/clone: allow remote helpers to detect repo (#4908)

In 18c9cb7524 (builtin/clone: create the refdb with the correct object
format, 2023-12-12), we have changed git-clone(1) so that it delays
creation of the refdb until after it has learned about the remote's
object format. This change was required for the reftable backend, which
encodes the object format into the tables. So if we pre-initialized the
refdb with the default object format, but the remote uses a different
object format than that, then the resulting tables would have encoded
the wrong object format.

This change unfortunately breaks remote helpers which try to access the
repository that is about to be created. Because the refdb has not yet
been initialized at the point where we spawn the remote helper, we also
don't yet have "HEAD" or "refs/". Consequently, any Git commands ran by
the remote helper which try to access the repository would fail because
it cannot be discovered.

This is essentially a chicken-and-egg problem: we cannot initialize the
refdb because we don't know about the object format. But we cannot learn
about the object format because the remote helper may be unable to
access the partially-initialized repository.

Ideally, we would address this issue via capabilities. But the remote
helper protocol is not structured in a way that guarantees that the
capability announcement happens before the remote helper tries to access
the repository.

Instead, fix this issue by partially initializing the refdb up to the
point where it becomes discoverable by Git commands.

-----

Cherry-picked the commit 199f44cb2ead34486f2588dc32d000d17e30f9cc to
provide the backport-PR requested by @dscho in #4843 ...

Commit message unchanged with the exception of the `Signed-off-by:`. The
contents of the commit are anyway unchanged. Hope this works for you.

Wed, 10 Apr 2024 05:53:09 +0000

25 Jan 10:20
8c06394

Choose a tag to compare

libcurl 8.7 regression workaround (#4906)

As discussed
[here](https://github.com/git-for-windows/git/issues/4883#issuecomment-2045393711),
we should have a work-around in place before deploying libcurl 8.7.1.

Fri, 23 Feb 2024 21:02:10 +0100

25 Jan 10:20

Choose a tag to compare

Merge 'readme' into HEAD

Add a README.md for GitHub goodness.

Signed-off-by: Johannes Schindelin <[email protected]>

Tue, 20 Feb 2024 18:21:52 +0100

25 Jan 10:20

Choose a tag to compare

Merge 'readme' into HEAD

Add a README.md for GitHub goodness.

Signed-off-by: Johannes Schindelin <[email protected]>

Wed, 14 Feb 2024 23:38:05 +0100

25 Jan 10:20
e74f1e0

Choose a tag to compare

Rebase to v2.44.0-rc1 (#4816)

<details><summary>Range-diff relative to main</summary>



* 1: eb7ae2c9e2a8 = 1: b85851bbae56 gitk(Windows): avoid inadvertently
calling executables in the worktree
* 2: 8ec17633c228 = 2: e300ee03cde5 t9350: point out that refs are not
updated correctly
* 3: b23a328cb547 = 3: 4c2bec34c49a transport-helper: add trailing --
* 4: ed0a8447acab = 4: 4773f563b00f remote-helper: check helper status
after import/export
* 5: 795df8948c68 = 5: 1beb2a05bd1c mingw: demonstrate a problem with
certain absolute paths
* 8: 4df7f74d31bf = 6: 5bc0a876fdd6 Always auto-gc after calling a
fast-import transport
* 7: d356b8512a40 = 7: 6ed6c401c885 mingw: include the Python parts in
the build
* 11: 713527b076c6 = 8: 9b84468f00a2 win32/pthread: avoid name clashes
with winpthread
* 6: cf1302569f8a = 9: 3c8a4f959021 clean: do not traverse mount points
* 12: 3d44f1710a6e = 10: 1437592ed876 git-compat-util: avoid redeclaring
_DEFAULT_SOURCE
* 9: 868992b35dcb = 11: b4584a13fa08 mingw: allow absolute paths without
drive prefix
* 10: d7814f950bb8 = 12: 92d9ad73e041 clean: remove mount points when
possible
* 13: 349f77716a1b = 13: 4edc85e25d60 Import the source code of mimalloc
v2.1.2
* 14: e206f41544fd = 14: db92376c36f6 mimalloc: adjust for building
inside Git
* 15: f2ddbf30292d = 15: b11790071cbe mimalloc: offer a build-time
option to enable it
* 16: d31fba57e8d0 = 16: f32c0135ce9a mimalloc: use "weak" random seed
when statically linked
* 17:  9ce9df328de2 =  17:  dc533b3e2e3f mingw: use mimalloc
* 18: 24eeb1864a79 = 18: 97286b5645a6 transport: optionally disable
side-band-64k
* 19: 6a694f116511 = 19: 8e70da535b29 mingw: make sure `errno` is set
correctly when socket operations fail
* 20: c649490ba6fc = 20: a3f426956929 mingw: do resolve symlinks in
`getcwd()`
* 21: 76dc36c2edf3 = 21: cae8b70c644d mingw: fix fatal error working on
mapped network drives on Windows
* 27: e53cde2b7935 = 22: 08745e0ce368 clink.pl: fix MSVC compile script
to handle libcurl-d.lib
* 22:  bab3249853c9 =  23:  e3d760aab3c4 mingw: ensure valid CTYPE
* 23: 0110f9aec432 = 24: 137623699507 mingw: demonstrate a `git add`
issue with NTFS junctions
* 24: 3560b11f58d6 = 25: a59f3296e1b2 mingw: allow `git.exe` to be used
instead of the "Git wrapper"
* 25: 9ada5ded71ed = 26: 84eeb35804c5 strbuf_realpath(): use
platform-dependent API if available
* 26: 1ccff877e5d1 = 27: a9495cf5bc7a mingw: ignore HOMEDRIVE/HOMEPATH
if it points to Windows' system directory
* 28: 470a863dc3c2 = 28: f73d1cce36ea mingw: implement a
platform-specific `strbuf_realpath()`
* 29: 99dfbb5a4fcd = 29: cb1934bca717 vcxproj: unclash project
directories with build outputs
* 30: 4e42bbcbe84c = 30: 2adbc192791d t5505/t5516: allow running without
`.git/branches/` in the templates
* 31: 176457165e03 = 31: 933ca80edaa2 t5505/t5516: fix white-space
around redirectors
* 32: 86177934738c = 32: 34e850d96f99 http: use new "best effort"
strategy for Secure Channel revoke checking
* 33: b4325252f250 = 33: 6a80a392495d t3701: verify that we can add
*lots* of files interactively
* 34: ff98b84b6380 = 34: 49dc0427f4a3 git add -i: handle CR/LF line
endings in the interactive input
* 35: c80db0f067f4 = 35: a43a6d9e1be3 commit: accept "scissors" with
CR/LF line endings
* 39:  d9819aaa6faa =  36:  8910fa988f9e t0014: fix indentation
* 40: 12ec6cbc109d = 37: 9a6441e7155d git-gui: accommodate for
intent-to-add files
* 36: d339319eb104 = 38: a4f2b128edf1 clink.pl: fix libexpatd.lib link
error when using MSVC
* 37: 67013010850e = 39: 4922bcc3b3af Makefile: clean up .ilk files when
MSVC=1
* 38: e759b02a3140 = 40: b52199749505 vcbuild: add support for compiling
Windows resource files
* 41: bc1981478b0f = 41: 2235fbb3bfed config.mak.uname: add git.rc to
MSVC builds
* 42: 96d5def900c7 = 42: 4642b4258e68 clink.pl: ignore
no-stack-protector arg on MSVC=1 builds
* 43: 38be60622c05 = 43: 048ccb36a1b5 clink.pl: move default linker
options for MSVC=1 builds
* 44: acf87e9b5bd0 = 44: 35c0d1847fab buildsystems: remove duplicate
clause
* 45: f9b959b81528 = 45: 31e3ed7cc287 vcxproj: handle resource files,
too
* 46: 9ad52f90582a = 46: 19e9453e9393 vcxproj: ignore
-fno-stack-protector and -fno-common
* 48: e48e3608c0ca = 47: ff5b0c706d94 vcxproj: handle GUI programs, too
* 47: e447a1ef24b4 = 48: eacd5f894348 vcpkg_install: detect lack of Git
* 49: 8f1942325594 = 49: e2e27125a271 vcpkg_install: add comment
regarding slow network connections
* 51: b07c00c6364b = 50: 0b4976dedced vcxproj: support building
Windows/ARM64 binaries
* 52: d609b857eceb = 51: b766f3a60c37 vcbuild: install ARM64
dependencies when building ARM64 binaries
* 53: 4c84da2c484f = 52: 1810941cbe8f vcbuild: add an option to install
individual 'features'
* 54: 8b7fdd9b28b0 = 53: b58fc39d3f55 cmake: allow building for
Windows/ARM64
* 50:  e657e649327d =  54:  8d047436f1f4 cmake: install headless-git.
* 55: a4477677a000 ! 55: 736513deb34c ci(vs-build) also build
Windows/ARM64 artifacts

   ``````diff
   @@ .github/workflows/main.yml: jobs:
    +      group: vs-build-${{ github.ref }}-${{ matrix.arch }}
cancel-in-progress: ${{ needs.ci-config.outputs.skip_concurrent == 'yes'
}}
         steps:
   -     - uses: actions/checkout@v3
   +     - uses: actions/checkout@v4
    @@ .github/workflows/main.yml: jobs:
           uses: microsoft/setup-msbuild@v1
         - name: copy dlls to root
   @@ .github/workflows/main.yml: jobs:
           env:
    @@ .github/workflows/main.yml: jobs:
         - name: upload tracked files and build artifacts
   -       uses: actions/upload-artifact@v3
   +       uses: actions/upload-artifact@v4
           with:
    -        name: vs-artifacts
    +        name: vs-artifacts-${{ matrix.arch }}
   @@ .github/workflows/main.yml: jobs:
         name: win+VS test
    @@ .github/workflows/main.yml: jobs:
         - name: download tracked files and build artifacts
   -       uses: actions/download-artifact@v3
   +       uses: actions/download-artifact@v4
           with:
    -        name: vs-artifacts
    +        name: vs-artifacts-x64
   ``````

* 56: f7954f54a52e = 56: dfc7f1464b13 Add schannel to curl installation
* 57: d762b9deba1b = 57: cd7caf5cc49d cmake(): allow setting HOST_CPU
for cross-compilation
* 58: 05eba3609c7b = 58: 5f98f73ce19f ci(vs-build): download the vcpkg
artifacts using a dedicated Action
* 59: 1c9a318f4b4e = 59: de0ecc69f9b8 mingw: allow for longer paths in
`parse_interpreter()`
* 61: 95f0b13ad567 = 60: ae60138ec912 compat/vcbuild: document preferred
way to build in Visual Studio
* 64: 371034042719 = 61: f0cadf356abd CMake: default Visual Studio
generator has changed
* 65: b23eb9ff03e7 = 62: c7ae2169e4e3 .gitignore: add Visual Studio
CMakeSetting.json file
* 60: c855be1da8a2 = 63: 567e8028147b subtree: update `contrib/subtree`
`test` target
* 66: 809634c9f8a6 = 64: 1582f5ff525a CMakeLists: add default
"x64-windows" arch for Visual Studio
* 62: 7aaa6dcd1890 = 65: 7ffc93ababed http: optionally send SSL client
certificate
* 63: 065c692a4685 = 66: f60c5eb01aa7 ci: run `contrib/subtree` tests in
CI builds
* 67: 414841d01a9f = 67: a07e77cf6e45 CMake: show Win32 and
Generator_platform build-option values
* 68: 1667cfccefbb = 68: 3887dd85bb8d init: do parse _all_ core.*
settings early
* 69: 66dc4f62b671 ! 69: d6a9e8d49bf8 Enable the built-in FSMonitor as
an experimental feature

   ``````diff
   @@ repo-settings.c
static void repo_cfg_bool(struct repository *r, const char *key, int
*dest,
     			  int def)
    @@ repo-settings.c: void prepare_repo_settings(struct repository *r)
   - 	if (experimental) {
r->settings.fetch_negotiation_algorithm = FETCH_NEGOTIATION_SKIPPING;
     		r->settings.pack_use_bitmap_boundary_traversal = 1;
   + 		r->settings.pack_use_multi_pack_reuse = 1;
    +
    +		/*
    +		 * Force enable the builtin FSMonitor (unless the repo
   ``````

* 70: 68bb0cce981e = 70: 236135f1b8a8 hash-object: demonstrate a
>4GB/LLP64 problem
* 71: 254707b032ca = 71: 54e92593b757 write_object_file_literally(): use
size_t
* 72: 0b4a921e5584 = 72: 516c82973dc7 object-file.c: use size_t for
header lengths
* 73: a7172a5e5107 = 73: f3220f45be23 hash algorithms: use size_t for
section lengths
* 74: bd50e8cca2d8 = 74: 3353257f4c47 hash-object --stdin: verify that
it works with >4GB/LLP64
* 75: c752b1d62dbd = 75: 1edb6272cb15 hash-object: add another
>4GB/LLP64 test case
* 76: 8beb33aff664 = 76: 407d577771fe setup: properly use "%(prefix)/"
when in WSL
* 77: adfa9afbc3c0 = 77: e5bcb5976901 hash-object: add a >4GB/LLP64 test
case using filtered input
* 81: 4194acdd9be5 = 78: e966001f3fef Add config option
`windows.appendAtomically`
* 78: 4d5f6bc3e0a6 = 79: 122b22160aa7 compat/mingw.c: do not warn when
failing to get owner
* 79: 09b582e1e815 = 80: 80220c7d04f3 mingw: $env:TERM="xterm-256color"
for newer OSes
* 80: ee671646c089 = 81: becda22f2342 winansi: check result and Buffer
before using Name
* 87: 6af63c9241b1 = 82: 37512822f574 mingw: change
core.fsyncObjectFiles = 1 by default
* 82: 4dd10121a696 = 83: dae381f048c0 vcxproj: allow building with
`NO_PERL` again
* 83:  75b29d554a05 =  84:  16b0f2b1d8c4 vcxproj: require C11
* 84: 5f42f98ddf31 = 85: e14321337720 vcxproj: ignore the `-pedantic`
option
* 85: b1dce6117b25 = 86: aec61319cec9 vcxproj: include reftable when
committing `.vcxproj` files
* 86: 139819411577 = 87: d4ee719dec08 vcxproj: handle libreftable_test,
too
* 88: bdda4a98bf6c = 88: 46bf8d4e38f1 vcxproj: avoid escaping double
quotes in the defines
* 89: 9356e8ae5122 = 89: a87c891148f6 ci: adjust Azure Pipeline for
`runs_on_pool`
* 90: e5e341851a70 = 90: e601a63d1470 ci: stop linking the `prove` cache
* 91: bf1de07baaa9 = 91: 8950ff343c71 ci: reinstate Azure Pipelines
support
* 92: 9f2a9887e001 = 92: c6f2362ba295 azure-pipeline: drop the
`GETTEXT_POISON` job
* 93: 90d5aa1fff4d = 93: 21036e5edd2f azure-pipeline: stop hard-coding
`apt-get` calls
* 94: 2efc68247cac = 94: 2ee6500029e3 azure-pipeline: drop the code to
write to/read from a file share
* 95: f02cef7bd026 = 95: de3fc61d5474 azure-pipeline: use partial
clone/parallel checkout to initialize minimal-sdk
* 96: f89636b72d5b = 96: c4a26913a70a azure-pipeline: downcase the job
name of the `Linux32` job
* 98: fc4ba85beae2 = 97: e570cb668a0f bswap.h: add support for built-in
bswap functions
* 97: 4d7fc2f2a034 = 98: 1977b0d7df62 MinGW: link as terminal server
aware
* 99: e7164dfc0f67 = 99: 398e99bd9278 azure-pipeline: run
static-analysis on jammy
* 100:  0d4081bdbfe6 = 100:  793a4aa76c23 Fix Windows version resources
* 118: af7ae49ed5b9 = 101: d5a0c1502813 config.mak.uname: add support
for clangarm64
* 101: 8c72ab335776 = 102: 456b68479a43 http: optionally load libcurl
lazily
* 119: 2849c150f577 = 103: 38db02150899 ci: create clangarm64-build.yml
* 104: d48d4a1b9301 = 104: 1a15f97a49f4 status: fix for old-style
submodules with commondir
* 105: 575360de1572 = 105: a7f576636bd7 windows: skip linking
`git-<command>` for built-ins
* 106: 758eb7604b63 = 106: a0a0f819b9a6 windows: fix Repository>Explore
Working Copy
* 102: 359804e7e89d = 107: afdf1c3232e5 http: support lazy-loading
libcurl also on Windows
* 103: df832a2b9225 = 108: db80eabdaba3 http: when loading libcurl
lazily, allow for multiple SSL backends
* 107: 5f391ca18802 = 109: a6c04513f53b mingw: do load libcurl
dynamically by default
* 120: a8f4b84e1d11 = 110: 653444feb4e1 Add a GitHub workflow to verify
that Git/Scalar work in Nano Server
* 108: f8c5c67b8117 = 111: 598d6705dbb0 mingw: suggest
`windows.appendAtomically` in more cases
* 109: ad1a318b3150 = 112: 87137c3bcb46 win32: use native ANSI sequence
processing, if possible
* 110:  c6e18ad5f111 = 113:  9bd36bc728e6 git.rc: include winuser.h
* 113: 742b547d0ff6 = 114: 1f57497bf1ab build(deps): bump
mshick/add-pr-comment from 1 to 2
* 114: b3ee228c8c0a = 115: ec2d8db264e7 build(deps): bump
actions/setup-go from 2 to 5
* 239: 49981fa2f85c ! 116: 82d6f85551d5 build(deps): bump
microsoft/setup-msbuild from 1 to 2

   ``````diff
   @@ Commit message
    
     ## .github/workflows/main.yml ##
    @@ .github/workflows/main.yml: jobs:
   -         repository: git/git
   -         definitionId: 9
   +         Expand-Archive compat.zip -DestinationPath . -Force
   +         Remove-Item compat.zip
         - name: add msbuild to PATH
    -      uses: microsoft/setup-msbuild@v1
    +      uses: microsoft/setup-msbuild@v2
         - name: copy dlls to root
           shell: cmd
- run: compat\vcbuild\vcpkg_copy_dlls.bat release ${{ matrix.arch
}}-windows
   +       run: compat\vcbuild\vcpkg_copy_dlls.bat release
   ``````

* 121: 4619239ea103 = 117: 1fc651a2a70f Win32: make FILETIME conversion
functions public
* 122: b8f812cef6bc = 118: 7392f0b6f06c Win32: dirent.c: Move opendir
down
* 123: 73027edb68da = 119: 50ca74a9ceb4 mingw: make the dirent
implementation pluggable
* 124: 32d5356b2c17 = 120: 029bfbb1921c Win32: make the lstat
implementation pluggable
* 125: abb83bcc6ace = 121: ddad2ed9ec12 mingw: add infrastructure for
read-only file system level caches
* 126: bc9194e52932 = 122: a708aacf0e34 mingw: add a cache below mingw's
lstat and dirent implementations
* 127: 2b2895f145fd = 123: b2aa80ae2224 fscache: load directories only
once
* 128: 8a0b4db0c0e5 = 124: 78eaedc699cd fscache: add key for
GIT_TRACE_FSCACHE
* 129: d6d8974d9489 = 125: 0fa5fc23d404 fscache: remember not-found
directories
* 130: 8dbd53253e72 = 126: 843f261613fe fscache: add a test for the
dir-not-found optimization
* 131: 8650575223f1 = 127: b935fb6a8a93 add: use preload-index and
fscache for performance
* 132: ae4b42e48114 = 128: 52e530319b73 dir.c: make add_excludes aware
of fscache during status
* 133: 6a2343d0547c = 129: 3f5158603780 fscache: make fscache_enabled()
public
* 134: c1585e265e78 = 130: c9e4f541a0f2 dir.c: regression fix for
add_excludes with fscache
* 135: 717aa9ad61f0 = 131: d7a8910fc560 fetch-pack.c: enable fscache for
stats under .git/objects
* 136: 058b1ac2e263 = 132: c28e607afeb5 checkout.c: enable fscache for
checkout again
* 137: 556779e8a58e = 133: bbd50d0a14a1 Enable the filesystem cache
(fscache) in refresh_index().
* 138: 8985e6da55c2 = 134: c17775123e14 fscache: use FindFirstFileExW to
avoid retrieving the short name
* 139: c0e94789480e = 135: 56b5f030848e status: disable and free fscache
at the end of the status command
* 140: 0f9047d20f0d = 136: 56d493ebdb06 fscache: add GIT_TEST_FSCACHE
support
* 141: 601a472e208a = 137: 6453004b6d61 fscache: add fscache hit
statistics
* 142: 5242cc1d6f9e = 138: f66b44d5bac0 mem_pool: add GIT_TRACE_MEMPOOL
support
* 143: 217332c07b96 = 139: 3f6d11ba98a9 fscache: fscache takes an
initial size
* 144: 87a49f204b6b = 140: e4fa72c493e0 fscache: update fscache to be
thread specific instead of global
* 145: d2d53d579698 = 141: aa996e008869 fscache: teach fscache to use
mempool
* 146: 80126ad65cb4 = 142: 049d093beee9 fscache: make fscache_enable()
thread safe
* 147: ae387da36763 = 143: 6e11a860042e fscache: teach fscache to use
NtQueryDirectoryFile
* 148: 4d2d6ae53a3e = 144: 487504c16c75 unpack-trees: enable fscache for
sparse-checkout
* 149: a1ff8e852916 = 145: 4cb1b2b1f4df fscache: remember the reparse
tag for each entry
* 150: 7f6d3646724a = 146: 565c51cc7dac fscache: implement an
FSCache-aware is_mount_point()
* 156:  c3775094ddde = 147:  02af368ca10d clean: make use of FSCache
* 151: 4b1b1b29d76b = 148: 1e5089b58eac git-gui: provide question helper
for retry fallback on Windows
* 152: 78e1b5302029 = 149: b6bd66607b51 git gui: set
GIT_ASKPASS=git-gui--askpass if not set yet
* 153: b15d3d9249dc = 150: 3c2ef68f3e4a git-gui--askyesno: fix funny
text wrapping
* 154: aedb111156b0 = 151: 4515dcd0b02b git-gui--askyesno: allow
overriding the window title
* 157: b78ed88d7615 = 152: 081cd825e216 gitk: Unicode file name support
* 155: 35800e645ee3 = 153: d812052fb3db git-gui--askyesno (mingw): use
Git for Windows' icon, if available
* 158: 0fac83d12782 = 154: 08088d45a8d1 gitk: Use an external icon file
on Windows
* 159: c93db98aa27c = 155: 631e5e1ae527 gitk: fix arrow keys in input
fields with Tcl/Tk >= 8.6
* 160: f74888f1a6d0 = 156: 67f2b2a05519 gitk: make the "list references"
default window width wider
* 161: e9683b83a59c = 157: 2d3e5bd77942 pack-objects (mingw):
demonstrate a segmentation fault with large deltas
* 162:  c4f7e1eb16c1 = 158:  3d9752173913 mingw: support long paths
* 163: 32624bb6c8ab = 159: 2938bf5357f2 Win32: fix 'lstat("dir/")' with
long paths
* 164: 1b6d1577187f = 160: 835aab16bd95 win32(long path support): leave
drive-less absolute paths intact
* 167: 7b3ecaa66cb1 = 161: d3f9f3561aaf mingw: Support
`git_terminal_prompt` with more terminals
* 165: c020f1450766 = 162: 7a2bc382b732 compat/fsmonitor/fsm-*-win32:
support long paths
* 166: 9c161b16f482 = 163: 91db5cdb2a13 clean: suggest using
`core.longPaths` if paths are too long to remove
* 168: d4a2b5653c7b = 164: 88898ca00939 compat/terminal.c: only use the
Windows console if bash 'read -r' fails
* 169: 83d310ac65e1 = 165: fae917809345 mingw (git_terminal_prompt): do
fall back to CONIN$/CONOUT$ method
* 170: fede48b61ea0 = 166: e19ba9b5169b Unbreak interactive GPG prompt
upon signing
* 171: 34a933a72696 = 167: 64f19935a767 strbuf_readlink: don't call
readlink twice if hint is the exact link size
* 172: 42cf85d79bec = 168: ff3bcfe62e07 strbuf_readlink: support link
targets that exceed PATH_MAX
* 173: fa1bf3817eaf = 169: 9eedc45ea379 lockfile.c: use is_dir_sep()
instead of hardcoded '/' checks
* 174: 6f1a739a93f1 = 170: 02fcad47ee46 Win32: don't call
GetFileAttributes twice in mingw_lstat()
* 175: dada6d060a17 = 171: 9a0406c56178 Win32: implement stat() with
symlink support
* 176: 2a2665c230ad = 172: ebb4cbd4078e Win32: remove separate
do_lstat() function
* 177: 996eb099574f = 173: ca4eb3198494 Win32: let mingw_lstat() error
early upon problems with reparse points
* 178: 185b2043db1b = 174: 1f0dd078b9b4 mingw: teach fscache and dirent
about symlinks
* 179: 113ca09b4726 = 175: 293d18a8d269 Win32: lstat(): return adequate
stat.st_size for symlinks
* 180:  534a7527817a = 176:  d9a2b0c868da Win32: factor out retry logic
* 181: 179020ec9774 = 177: a0ded6249792 Win32: change default of
'core.symlinks' to false
* 182: 1d95e40a030a = 178: 81dd006ec07e Win32: add symlink-specific
error codes
* 183: 3148b500ff77 = 179: 2d56f472e316 Win32: mingw_unlink: support
symlinks to directories
* 184: 449133324172 = 180: 3495257c8742 Win32: mingw_rename: support
renaming symlinks
* 185: 2a19c8ec43f5 = 181: 0f4229a743cf Win32: mingw_chdir: change to
symlink-resolved directory
* 186:  977b781bd8a9 = 182:  83b9eea8ba3f Win32: implement readlink()
* 187: fccf2150dbd2 = 183: 41f21df79efa mingw: lstat: compute correct
size for symlinks
* 188: 18ca6d479d9b = 184: 8a9711d56a0b Win32: implement basic symlink()
functionality (file symlinks only)
* 189: aceda067bac9 = 185: a57efa62f0b7 Win32: symlink: add support for
symlinks to directories
* 190: a6b014ce40fb = 186: 4a23132ba8d5 mingw: try to create symlinks
without elevated permissions
* 191: 1dc87ff8f9b4 = 187: a02e6a723ec0 mingw: emulate stat() a little
more faithfully
* 192: b24bb5cb3c42 = 188: 80afdbd698d5 mingw: special-case index
entries for symlinks with buggy size
* 193: 8f4dae0edea6 = 189: be1959472a93 mingw: introduce code to detect
whether we're inside a Windows container
* 194: b13757e045f5 = 190: 33d504ee7456 mingw: when running in a Windows
container, try to rename() harder
* 196: 2852c4ef03a4 = 191: cf77157b598e mingw: move the
file_attr_to_st_mode() function definition
* 195: 7c0eb6166140 = 192: d954fc6fb669 Win32: symlink: move phantom
symlink creation to a separate function
* 197: c6fd0ea075f5 = 193: 1882c46a1be8 Introduce helper to create
symlinks that knows about index_state
* 199: 3b567547cd4f = 194: a28a0f86da7e mingw: allow to specify the
symlink type in .gitattributes
* 198: 3d21db01f159 = 195: b0068a2c6dc7 mingw: Windows Docker volumes
are *not* symbolic links
* 201: 4a500ff622a4 = 196: 26480830fff4 Win32: symlink: add test for
`symlink` attribute
* 200: 87328506754c = 197: 1309f481791c mingw: work around rename()
failing on a read-only file
* 202: 3f4790bc30eb = 198: 64c8e893ccdc mingw: explicitly specify with
which cmd to prefix the cmdline
* 203: ab039e906631 = 199: d183f32cc3bb mingw: when path_lookup()
failed, try BusyBox
* 204: 35e72040c161 = 200: e046af6c04a7 test-lib: avoid unnecessary Perl
invocation
* 205: 9dd05209fcd0 = 201: c13d5f0ee4f8 test-tool: learn to act as a
drop-in replacement for `iconv`
* 206: ee66969336d3 = 202: 8d6a91e20f9e tests(mingw): if `iconv` is
unavailable, use `test-helper --iconv`
* 207: 6cfa349972f7 = 203: 39deb53e3f3d gitattributes: mark .png files
as binary
* 208: f941f5581e33 = 204: 1b12d2e280dc tests: move test PNGs into
t/lib-diff/
* 209: 6bf246960295 = 205: f69fa032e783 tests: only override sort & find
if there are usable ones in /usr/bin/
* 210: 4a15dc6f968d = 206: c619329cc756 tests: use the correct path
separator with BusyBox
* 211: 9b21147031a0 = 207: 1f509e73065e mingw: only use Bash-ism
`builtin pwd -W` when available
* 212: 1432f3b2a922 = 208: 67acbe80c055 tests (mingw): remove
Bash-specific pwd option
* 213: ee9645fe03b5 = 209: a18a0f882abe test-lib: add BUSYBOX
prerequisite
* 214: 32f116db2a91 = 210: 6b2142ba7d67 t5003: use binary file from
t/lib-diff/
* 215: 27e1ff9a153e = 211: 6e490c1ea9b4 t5532: workaround for BusyBox on
Windows
* 216: 388ddea9df2e = 212: d4287d241941 t5605: special-case hardlink
test for BusyBox-w32
* 217: 4135380ce1d1 = 213: 15b88e752f4e t5813: allow for $PWD to be a
Windows path
* 218: 4e1c3caa01e6 = 214: 891b29f03861 t9200: skip tests when $PWD
contains a colon
* 219: 58dfc2b135e3 = 215: f8c17f3a55f4 mingw: add a Makefile target to
copy test artifacts
* 220: 8a79bc2d95f0 = 216: 4a2ec98f1296 mingw: kill child processes in a
gentler way
* 221: b29a9ac6976b = 217: d5e288173e5e mingw: optionally enable wsl
compability file mode bits
* 222:  57cc6f20a5ff = 218:  5aa9ec74006a mingw: really handle SIGINT
* 223: f95abb64716a = 219: 875251fd73d0 mingw: do not call
xutftowcs_path in mingw_mktemp
* 224: 1606d619a050 = 220: fe47e0903d62 Partially un-revert "editor:
save and reset terminal after calling EDITOR"
* 225: 052add787b83 = 221: 576d1c3c8c6e reset: reinstate support for the
deprecated --stdin option
* 226: 6fc41b6fa6e5 = 222: 315f0ea1d464 fsmonitor: reintroduce
core.useBuiltinFSMonitor
* 227: 7db097fe541f = 223: b0702abec792 Describe Git for Windows'
architecture [no ci]
* 229: 666c5959a2ac = 224: 04e2a5283aa4 Modify the Code of Conduct for
Git for Windows
* 230: 8d8b80e55e08 = 225: 213f046feabc CONTRIBUTING.md: add guide for
first-time contributors
* 231: 80818bce9325 = 226: 2bc7f447798a README.md: Add a
Windows-specific preamble
* 232:  2be1a7be5e02 = 227:  76c1e9222225 Add an issue template
* 228: 7a503f1e5956 = 228: 2cec3293de96 Add a GitHub workflow to monitor
component updates
* 233: 08ec415a3828 ! 229: c3d7282342ad Modify the GitHub Pull Request
template (to reflect Git for Windows)

   ``````diff
   @@ .github/PULL_REQUEST_TEMPLATE.md
+Nevertheless, you can use GitGitGadget
(https://gitgitgadget.github.io/)
to conveniently send your Pull Requests commits to our mailing list.
     
   - Please read the "guidelines for contributing" linked above!
+ For a single-commit pull request, please *leave the pull request
description
   ``````

* 111: dc95f4d8ec7f = 230: 9e7f27a42d9b dependabot: help keeping GitHub
Actions versions up to date
* 112: 9471bc669089 < -: ------------ build(deps): bump actions/cache
from 3 to 4
* 115: ac09146e34f6 < -: ------------ build(deps): bump
actions/download-artifact from 3 to 4
* 116: 8d2729e3a6e0 (upstream: 820a3400851a) < -: ------------ ci: bump
actions/upload-artifact to v4
* 117: dd7556150dc8 (upstream: e94dec0c1d77) < -: ------------
build(deps): bump actions/checkout from 3 to 4
* 234: f9944c3366fd = 231: e01cfabab245 .github: Add configuration for
the Sentiment Bot
* 235: 4d421e51c2c2 = 232: 4ac6362abb90 Document how $HOME is set on
Windows
* 236: a5db93a8eb25 = 233: 3fb190d782f9 SECURITY.md: document Git for
Windows' policies
* 237: ffbfa3bbdb4d < -: ------------ build(deps): bump actions/checkout
from 1 to 4
* 238: 50bb27309f75 (upstream: c4ddbe043ebf) < -: ------------
build(deps): bump actions/github-script from 6 to 7

</details>

Mon, 12 Feb 2024 23:15:07 +0100

25 Jan 10:20
5f4d459

Choose a tag to compare

prerelease-2.44.0-rc0.windows.1-4-g5f4d459f98-20240212221812

ci: bump actions/checkout from 3 to 4, actions/github-script from 6 t…

Fri, 9 Feb 2024 21:50:07 +0100

25 Jan 10:19

Choose a tag to compare

Merge 'readme' into HEAD

Add a README.md for GitHub goodness.

Signed-off-by: Johannes Schindelin <[email protected]>

Thu, 8 Feb 2024 18:55:31 +0100

25 Jan 10:19
7e0789d

Choose a tag to compare

build(deps): bump actions/checkout from 3 to 4 (#4796)

Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to
4.

Thu, 8 Feb 2024 18:55:31 +0100

25 Jan 10:54
7e0789d

Choose a tag to compare

build(deps): bump actions/checkout from 3 to 4 (#4796)

Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to
4.