Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rebase to v2.44.0-rc1 #4816

Merged
merged 405 commits into from
Feb 14, 2024
Merged

Rebase to v2.44.0-rc1 #4816

merged 405 commits into from
Feb 14, 2024

Conversation

dscho
Copy link
Member

@dscho dscho commented Feb 14, 2024

Range-diff relative to main
  • 1: eb7ae2c = 1: b85851b gitk(Windows): avoid inadvertently calling executables in the worktree

  • 2: 8ec1763 = 2: e300ee0 t9350: point out that refs are not updated correctly

  • 3: b23a328 = 3: 4c2bec3 transport-helper: add trailing --

  • 4: ed0a844 = 4: 4773f56 remote-helper: check helper status after import/export

  • 5: 795df89 = 5: 1beb2a0 mingw: demonstrate a problem with certain absolute paths

  • 8: 4df7f74 = 6: 5bc0a87 Always auto-gc after calling a fast-import transport

  • 7: d356b85 = 7: 6ed6c40 mingw: include the Python parts in the build

  • 11: 713527b = 8: 9b84468 win32/pthread: avoid name clashes with winpthread

  • 6: cf13025 = 9: 3c8a4f9 clean: do not traverse mount points

  • 12: 3d44f17 = 10: 1437592 git-compat-util: avoid redeclaring _DEFAULT_SOURCE

  • 9: 868992b = 11: b4584a1 mingw: allow absolute paths without drive prefix

  • 10: d7814f9 = 12: 92d9ad7 clean: remove mount points when possible

  • 13: 349f777 = 13: 4edc85e Import the source code of mimalloc v2.1.2

  • 14: e206f41 = 14: db92376 mimalloc: adjust for building inside Git

  • 15: f2ddbf3 = 15: b117900 mimalloc: offer a build-time option to enable it

  • 16: d31fba5 = 16: f32c013 mimalloc: use "weak" random seed when statically linked

  • 17: 9ce9df3 = 17: dc533b3 mingw: use mimalloc

  • 18: 24eeb18 = 18: 97286b5 transport: optionally disable side-band-64k

  • 19: 6a694f1 = 19: 8e70da5 mingw: make sure errno is set correctly when socket operations fail

  • 20: c649490 = 20: a3f4269 mingw: do resolve symlinks in getcwd()

  • 21: 76dc36c = 21: cae8b70 mingw: fix fatal error working on mapped network drives on Windows

  • 27: e53cde2 = 22: 08745e0 clink.pl: fix MSVC compile script to handle libcurl-d.lib

  • 22: bab3249 = 23: e3d760a mingw: ensure valid CTYPE

  • 23: 0110f9a = 24: 1376236 mingw: demonstrate a git add issue with NTFS junctions

  • 24: 3560b11 = 25: a59f329 mingw: allow git.exe to be used instead of the "Git wrapper"

  • 25: 9ada5de = 26: 84eeb35 strbuf_realpath(): use platform-dependent API if available

  • 26: 1ccff87 = 27: a9495cf mingw: ignore HOMEDRIVE/HOMEPATH if it points to Windows' system directory

  • 28: 470a863 = 28: f73d1cc mingw: implement a platform-specific strbuf_realpath()

  • 29: 99dfbb5 = 29: cb1934b vcxproj: unclash project directories with build outputs

  • 30: 4e42bbc = 30: 2adbc19 t5505/t5516: allow running without .git/branches/ in the templates

  • 31: 1764571 = 31: 933ca80 t5505/t5516: fix white-space around redirectors

  • 32: 8617793 = 32: 34e850d http: use new "best effort" strategy for Secure Channel revoke checking

  • 33: b432525 = 33: 6a80a39 t3701: verify that we can add lots of files interactively

  • 34: ff98b84 = 34: 49dc042 git add -i: handle CR/LF line endings in the interactive input

  • 35: c80db0f = 35: a43a6d9 commit: accept "scissors" with CR/LF line endings

  • 39: d9819aa = 36: 8910fa9 t0014: fix indentation

  • 40: 12ec6cb = 37: 9a6441e git-gui: accommodate for intent-to-add files

  • 36: d339319 = 38: a4f2b12 clink.pl: fix libexpatd.lib link error when using MSVC

  • 37: 6701301 = 39: 4922bcc Makefile: clean up .ilk files when MSVC=1

  • 38: e759b02 = 40: b521997 vcbuild: add support for compiling Windows resource files

  • 41: bc19814 = 41: 2235fbb config.mak.uname: add git.rc to MSVC builds

  • 42: 96d5def = 42: 4642b42 clink.pl: ignore no-stack-protector arg on MSVC=1 builds

  • 43: 38be606 = 43: 048ccb3 clink.pl: move default linker options for MSVC=1 builds

  • 44: acf87e9 = 44: 35c0d18 buildsystems: remove duplicate clause

  • 45: f9b959b = 45: 31e3ed7 vcxproj: handle resource files, too

  • 46: 9ad52f9 = 46: 19e9453 vcxproj: ignore -fno-stack-protector and -fno-common

  • 48: e48e360 = 47: ff5b0c7 vcxproj: handle GUI programs, too

  • 47: e447a1e = 48: eacd5f8 vcpkg_install: detect lack of Git

  • 49: 8f19423 = 49: e2e2712 vcpkg_install: add comment regarding slow network connections

  • 51: b07c00c = 50: 0b4976d vcxproj: support building Windows/ARM64 binaries

  • 52: d609b85 = 51: b766f3a vcbuild: install ARM64 dependencies when building ARM64 binaries

  • 53: 4c84da2 = 52: 1810941 vcbuild: add an option to install individual 'features'

  • 54: 8b7fdd9 = 53: b58fc39 cmake: allow building for Windows/ARM64

  • 50: e657e64 = 54: 8d04743 cmake: install headless-git.

  • 55: a447767 ! 55: 736513d ci(vs-build) also build Windows/ARM64 artifacts

    @@ .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: f7954f5 = 56: dfc7f14 Add schannel to curl installation

  • 57: d762b9d = 57: cd7caf5 cmake(): allow setting HOST_CPU for cross-compilation

  • 58: 05eba36 = 58: 5f98f73 ci(vs-build): download the vcpkg artifacts using a dedicated Action

  • 59: 1c9a318 = 59: de0ecc6 mingw: allow for longer paths in parse_interpreter()

  • 61: 95f0b13 = 60: ae60138 compat/vcbuild: document preferred way to build in Visual Studio

  • 64: 3710340 = 61: f0cadf3 CMake: default Visual Studio generator has changed

  • 65: b23eb9f = 62: c7ae216 .gitignore: add Visual Studio CMakeSetting.json file

  • 60: c855be1 = 63: 567e802 subtree: update contrib/subtree test target

  • 66: 809634c = 64: 1582f5f CMakeLists: add default "x64-windows" arch for Visual Studio

  • 62: 7aaa6dc = 65: 7ffc93a http: optionally send SSL client certificate

  • 63: 065c692 = 66: f60c5eb ci: run contrib/subtree tests in CI builds

  • 67: 414841d = 67: a07e77c CMake: show Win32 and Generator_platform build-option values

  • 68: 1667cfc = 68: 3887dd8 init: do parse all core.* settings early

  • 69: 66dc4f6 ! 69: d6a9e8d Enable the built-in FSMonitor as an experimental feature

    @@ 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: 68bb0cc = 70: 236135f hash-object: demonstrate a >4GB/LLP64 problem

  • 71: 254707b = 71: 54e9259 write_object_file_literally(): use size_t

  • 72: 0b4a921 = 72: 516c829 object-file.c: use size_t for header lengths

  • 73: a7172a5 = 73: f3220f4 hash algorithms: use size_t for section lengths

  • 74: bd50e8c = 74: 3353257 hash-object --stdin: verify that it works with >4GB/LLP64

  • 75: c752b1d = 75: 1edb627 hash-object: add another >4GB/LLP64 test case

  • 76: 8beb33a = 76: 407d577 setup: properly use "%(prefix)/" when in WSL

  • 77: adfa9af = 77: e5bcb59 hash-object: add a >4GB/LLP64 test case using filtered input

  • 81: 4194acd = 78: e966001 Add config option windows.appendAtomically

  • 78: 4d5f6bc = 79: 122b221 compat/mingw.c: do not warn when failing to get owner

  • 79: 09b582e = 80: 80220c7 mingw: $env:TERM="xterm-256color" for newer OSes

  • 80: ee67164 = 81: becda22 winansi: check result and Buffer before using Name

  • 87: 6af63c9 = 82: 3751282 mingw: change core.fsyncObjectFiles = 1 by default

  • 82: 4dd1012 = 83: dae381f vcxproj: allow building with NO_PERL again

  • 83: 75b29d5 = 84: 16b0f2b vcxproj: require C11

  • 84: 5f42f98 = 85: e143213 vcxproj: ignore the -pedantic option

  • 85: b1dce61 = 86: aec6131 vcxproj: include reftable when committing .vcxproj files

  • 86: 1398194 = 87: d4ee719 vcxproj: handle libreftable_test, too

  • 88: bdda4a9 = 88: 46bf8d4 vcxproj: avoid escaping double quotes in the defines

  • 89: 9356e8a = 89: a87c891 ci: adjust Azure Pipeline for runs_on_pool

  • 90: e5e3418 = 90: e601a63 ci: stop linking the prove cache

  • 91: bf1de07 = 91: 8950ff3 ci: reinstate Azure Pipelines support

  • 92: 9f2a988 = 92: c6f2362 azure-pipeline: drop the GETTEXT_POISON job

  • 93: 90d5aa1 = 93: 21036e5 azure-pipeline: stop hard-coding apt-get calls

  • 94: 2efc682 = 94: 2ee6500 azure-pipeline: drop the code to write to/read from a file share

  • 95: f02cef7 = 95: de3fc61 azure-pipeline: use partial clone/parallel checkout to initialize minimal-sdk

  • 96: f89636b = 96: c4a2691 azure-pipeline: downcase the job name of the Linux32 job

  • 98: fc4ba85 = 97: e570cb6 bswap.h: add support for built-in bswap functions

  • 97: 4d7fc2f = 98: 1977b0d MinGW: link as terminal server aware

  • 99: e7164df = 99: 398e99b azure-pipeline: run static-analysis on jammy

  • 100: 0d4081b = 100: 793a4aa Fix Windows version resources

  • 118: af7ae49 = 101: d5a0c15 config.mak.uname: add support for clangarm64

  • 101: 8c72ab3 = 102: 456b684 http: optionally load libcurl lazily

  • 119: 2849c15 = 103: 38db021 ci: create clangarm64-build.yml

  • 104: d48d4a1 = 104: 1a15f97 status: fix for old-style submodules with commondir

  • 105: 575360d = 105: a7f5766 windows: skip linking git-<command> for built-ins

  • 106: 758eb76 = 106: a0a0f81 windows: fix Repository>Explore Working Copy

  • 102: 359804e = 107: afdf1c3 http: support lazy-loading libcurl also on Windows

  • 103: df832a2 = 108: db80eab http: when loading libcurl lazily, allow for multiple SSL backends

  • 107: 5f391ca = 109: a6c0451 mingw: do load libcurl dynamically by default

  • 120: a8f4b84 = 110: 653444f Add a GitHub workflow to verify that Git/Scalar work in Nano Server

  • 108: f8c5c67 = 111: 598d670 mingw: suggest windows.appendAtomically in more cases

  • 109: ad1a318 = 112: 87137c3 win32: use native ANSI sequence processing, if possible

  • 110: c6e18ad = 113: 9bd36bc git.rc: include winuser.h

  • 113: 742b547 = 114: 1f57497 build(deps): bump mshick/add-pr-comment from 1 to 2

  • 114: b3ee228 = 115: ec2d8db build(deps): bump actions/setup-go from 2 to 5

  • 239: 49981fa ! 116: 82d6f85 build(deps): bump microsoft/setup-msbuild from 1 to 2

    @@ 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: 4619239 = 117: 1fc651a Win32: make FILETIME conversion functions public

  • 122: b8f812c = 118: 7392f0b Win32: dirent.c: Move opendir down

  • 123: 73027ed = 119: 50ca74a mingw: make the dirent implementation pluggable

  • 124: 32d5356 = 120: 029bfbb Win32: make the lstat implementation pluggable

  • 125: abb83bc = 121: ddad2ed mingw: add infrastructure for read-only file system level caches

  • 126: bc9194e = 122: a708aac mingw: add a cache below mingw's lstat and dirent implementations

  • 127: 2b2895f = 123: b2aa80a fscache: load directories only once

  • 128: 8a0b4db = 124: 78eaedc fscache: add key for GIT_TRACE_FSCACHE

  • 129: d6d8974 = 125: 0fa5fc2 fscache: remember not-found directories

  • 130: 8dbd532 = 126: 843f261 fscache: add a test for the dir-not-found optimization

  • 131: 8650575 = 127: b935fb6 add: use preload-index and fscache for performance

  • 132: ae4b42e = 128: 52e5303 dir.c: make add_excludes aware of fscache during status

  • 133: 6a2343d = 129: 3f51586 fscache: make fscache_enabled() public

  • 134: c1585e2 = 130: c9e4f54 dir.c: regression fix for add_excludes with fscache

  • 135: 717aa9a = 131: d7a8910 fetch-pack.c: enable fscache for stats under .git/objects

  • 136: 058b1ac = 132: c28e607 checkout.c: enable fscache for checkout again

  • 137: 556779e = 133: bbd50d0 Enable the filesystem cache (fscache) in refresh_index().

  • 138: 8985e6d = 134: c177751 fscache: use FindFirstFileExW to avoid retrieving the short name

  • 139: c0e9478 = 135: 56b5f03 status: disable and free fscache at the end of the status command

  • 140: 0f9047d = 136: 56d493e fscache: add GIT_TEST_FSCACHE support

  • 141: 601a472 = 137: 6453004 fscache: add fscache hit statistics

  • 142: 5242cc1 = 138: f66b44d mem_pool: add GIT_TRACE_MEMPOOL support

  • 143: 217332c = 139: 3f6d11b fscache: fscache takes an initial size

  • 144: 87a49f2 = 140: e4fa72c fscache: update fscache to be thread specific instead of global

  • 145: d2d53d5 = 141: aa996e0 fscache: teach fscache to use mempool

  • 146: 80126ad = 142: 049d093 fscache: make fscache_enable() thread safe

  • 147: ae387da = 143: 6e11a86 fscache: teach fscache to use NtQueryDirectoryFile

  • 148: 4d2d6ae = 144: 487504c unpack-trees: enable fscache for sparse-checkout

  • 149: a1ff8e8 = 145: 4cb1b2b fscache: remember the reparse tag for each entry

  • 150: 7f6d364 = 146: 565c51c fscache: implement an FSCache-aware is_mount_point()

  • 156: c377509 = 147: 02af368 clean: make use of FSCache

  • 151: 4b1b1b2 = 148: 1e5089b git-gui: provide question helper for retry fallback on Windows

  • 152: 78e1b53 = 149: b6bd666 git gui: set GIT_ASKPASS=git-gui--askpass if not set yet

  • 153: b15d3d9 = 150: 3c2ef68 git-gui--askyesno: fix funny text wrapping

  • 154: aedb111 = 151: 4515dcd git-gui--askyesno: allow overriding the window title

  • 157: b78ed88 = 152: 081cd82 gitk: Unicode file name support

  • 155: 35800e6 = 153: d812052 git-gui--askyesno (mingw): use Git for Windows' icon, if available

  • 158: 0fac83d = 154: 08088d4 gitk: Use an external icon file on Windows

  • 159: c93db98 = 155: 631e5e1 gitk: fix arrow keys in input fields with Tcl/Tk >= 8.6

  • 160: f74888f = 156: 67f2b2a gitk: make the "list references" default window width wider

  • 161: e9683b8 = 157: 2d3e5bd pack-objects (mingw): demonstrate a segmentation fault with large deltas

  • 162: c4f7e1e = 158: 3d97521 mingw: support long paths

  • 163: 32624bb = 159: 2938bf5 Win32: fix 'lstat("dir/")' with long paths

  • 164: 1b6d157 = 160: 835aab1 win32(long path support): leave drive-less absolute paths intact

  • 167: 7b3ecaa = 161: d3f9f35 mingw: Support git_terminal_prompt with more terminals

  • 165: c020f14 = 162: 7a2bc38 compat/fsmonitor/fsm-*-win32: support long paths

  • 166: 9c161b1 = 163: 91db5cd clean: suggest using core.longPaths if paths are too long to remove

  • 168: d4a2b56 = 164: 88898ca compat/terminal.c: only use the Windows console if bash 'read -r' fails

  • 169: 83d310a = 165: fae9178 mingw (git_terminal_prompt): do fall back to CONIN$/CONOUT$ method

  • 170: fede48b = 166: e19ba9b Unbreak interactive GPG prompt upon signing

  • 171: 34a933a = 167: 64f1993 strbuf_readlink: don't call readlink twice if hint is the exact link size

  • 172: 42cf85d = 168: ff3bcfe strbuf_readlink: support link targets that exceed PATH_MAX

  • 173: fa1bf38 = 169: 9eedc45 lockfile.c: use is_dir_sep() instead of hardcoded '/' checks

  • 174: 6f1a739 = 170: 02fcad4 Win32: don't call GetFileAttributes twice in mingw_lstat()

  • 175: dada6d0 = 171: 9a0406c Win32: implement stat() with symlink support

  • 176: 2a2665c = 172: ebb4cbd Win32: remove separate do_lstat() function

  • 177: 996eb09 = 173: ca4eb31 Win32: let mingw_lstat() error early upon problems with reparse points

  • 178: 185b204 = 174: 1f0dd07 mingw: teach fscache and dirent about symlinks

  • 179: 113ca09 = 175: 293d18a Win32: lstat(): return adequate stat.st_size for symlinks

  • 180: 534a752 = 176: d9a2b0c Win32: factor out retry logic

  • 181: 179020e = 177: a0ded62 Win32: change default of 'core.symlinks' to false

  • 182: 1d95e40 = 178: 81dd006 Win32: add symlink-specific error codes

  • 183: 3148b50 = 179: 2d56f47 Win32: mingw_unlink: support symlinks to directories

  • 184: 4491333 = 180: 3495257 Win32: mingw_rename: support renaming symlinks

  • 185: 2a19c8e = 181: 0f4229a Win32: mingw_chdir: change to symlink-resolved directory

  • 186: 977b781 = 182: 83b9eea Win32: implement readlink()

  • 187: fccf215 = 183: 41f21df mingw: lstat: compute correct size for symlinks

  • 188: 18ca6d4 = 184: 8a9711d Win32: implement basic symlink() functionality (file symlinks only)

  • 189: aceda06 = 185: a57efa6 Win32: symlink: add support for symlinks to directories

  • 190: a6b014c = 186: 4a23132 mingw: try to create symlinks without elevated permissions

  • 191: 1dc87ff = 187: a02e6a7 mingw: emulate stat() a little more faithfully

  • 192: b24bb5c = 188: 80afdbd mingw: special-case index entries for symlinks with buggy size

  • 193: 8f4dae0 = 189: be19594 mingw: introduce code to detect whether we're inside a Windows container

  • 194: b13757e = 190: 33d504e mingw: when running in a Windows container, try to rename() harder

  • 196: 2852c4e = 191: cf77157 mingw: move the file_attr_to_st_mode() function definition

  • 195: 7c0eb61 = 192: d954fc6 Win32: symlink: move phantom symlink creation to a separate function

  • 197: c6fd0ea = 193: 1882c46 Introduce helper to create symlinks that knows about index_state

  • 199: 3b56754 = 194: a28a0f8 mingw: allow to specify the symlink type in .gitattributes

  • 198: 3d21db0 = 195: b0068a2 mingw: Windows Docker volumes are not symbolic links

  • 201: 4a500ff = 196: 2648083 Win32: symlink: add test for symlink attribute

  • 200: 8732850 = 197: 1309f48 mingw: work around rename() failing on a read-only file

  • 202: 3f4790b = 198: 64c8e89 mingw: explicitly specify with which cmd to prefix the cmdline

  • 203: ab039e9 = 199: d183f32 mingw: when path_lookup() failed, try BusyBox

  • 204: 35e7204 = 200: e046af6 test-lib: avoid unnecessary Perl invocation

  • 205: 9dd0520 = 201: c13d5f0 test-tool: learn to act as a drop-in replacement for iconv

  • 206: ee66969 = 202: 8d6a91e tests(mingw): if iconv is unavailable, use test-helper --iconv

  • 207: 6cfa349 = 203: 39deb53 gitattributes: mark .png files as binary

  • 208: f941f55 = 204: 1b12d2e tests: move test PNGs into t/lib-diff/

  • 209: 6bf2469 = 205: f69fa03 tests: only override sort & find if there are usable ones in /usr/bin/

  • 210: 4a15dc6 = 206: c619329 tests: use the correct path separator with BusyBox

  • 211: 9b21147 = 207: 1f509e7 mingw: only use Bash-ism builtin pwd -W when available

  • 212: 1432f3b = 208: 67acbe8 tests (mingw): remove Bash-specific pwd option

  • 213: ee9645f = 209: a18a0f8 test-lib: add BUSYBOX prerequisite

  • 214: 32f116d = 210: 6b2142b t5003: use binary file from t/lib-diff/

  • 215: 27e1ff9 = 211: 6e490c1 t5532: workaround for BusyBox on Windows

  • 216: 388ddea = 212: d4287d2 t5605: special-case hardlink test for BusyBox-w32

  • 217: 4135380 = 213: 15b88e7 t5813: allow for $PWD to be a Windows path

  • 218: 4e1c3ca = 214: 891b29f t9200: skip tests when $PWD contains a colon

  • 219: 58dfc2b = 215: f8c17f3 mingw: add a Makefile target to copy test artifacts

  • 220: 8a79bc2 = 216: 4a2ec98 mingw: kill child processes in a gentler way

  • 221: b29a9ac = 217: d5e2881 mingw: optionally enable wsl compability file mode bits

  • 222: 57cc6f2 = 218: 5aa9ec7 mingw: really handle SIGINT

  • 223: f95abb6 = 219: 875251f mingw: do not call xutftowcs_path in mingw_mktemp

  • 224: 1606d61 = 220: fe47e09 Partially un-revert "editor: save and reset terminal after calling EDITOR"

  • 225: 052add7 = 221: 576d1c3 reset: reinstate support for the deprecated --stdin option

  • 226: 6fc41b6 = 222: 315f0ea fsmonitor: reintroduce core.useBuiltinFSMonitor

  • 227: 7db097f = 223: b0702ab Describe Git for Windows' architecture [no ci]

  • 229: 666c595 = 224: 04e2a52 Modify the Code of Conduct for Git for Windows

  • 230: 8d8b80e = 225: 213f046 CONTRIBUTING.md: add guide for first-time contributors

  • 231: 80818bc = 226: 2bc7f44 README.md: Add a Windows-specific preamble

  • 232: 2be1a7b = 227: 76c1e92 Add an issue template

  • 228: 7a503f1 = 228: 2cec329 Add a GitHub workflow to monitor component updates

  • 233: 08ec415 ! 229: c3d7282 Modify the GitHub Pull Request template (to reflect Git for Windows)

    @@ .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: dc95f4d = 230: 9e7f27a dependabot: help keeping GitHub Actions versions up to date

  • 112: 9471bc6 < -: ------------ build(deps): bump actions/cache from 3 to 4

  • 115: ac09146 < -: ------------ build(deps): bump actions/download-artifact from 3 to 4

  • 116: 8d2729e (upstream: 820a340) < -: ------------ ci: bump actions/upload-artifact to v4

  • 117: dd75561 (upstream: e94dec0) < -: ------------ build(deps): bump actions/checkout from 3 to 4

  • 234: f9944c3 = 231: e01cfab .github: Add configuration for the Sentiment Bot

  • 235: 4d421e5 = 232: 4ac6362 Document how $HOME is set on Windows

  • 236: a5db93a = 233: 3fb190d SECURITY.md: document Git for Windows' policies

  • 237: ffbfa3b < -: ------------ build(deps): bump actions/checkout from 1 to 4

  • 238: 50bb273 (upstream: c4ddbe0) < -: ------------ build(deps): bump actions/github-script from 6 to 7

PhilipOakley and others added 30 commits February 14, 2024 22:34
Just like the `hash-object --literally` code path, the `--stdin` code
path also needs to use `size_t` instead of `unsigned long` to represent
memory sizes, otherwise it would cause problems on platforms using the
LLP64 data model (such as Windows).

To limit the scope of the test case, the object is explicitly not
written to the object store, nor are any filters applied.

The `big` file from the previous test case is reused to save setup time;
To avoid relying on that side effect, it is generated if it does not
exist (e.g. when running via `sh t1007-*.sh --long --run=1,41`).

Signed-off-by: Philip Oakley <philipoakley@iee.email>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
To complement the `--stdin` and `--literally` test cases that verify
that we can hash files larger than 4GB on 64-bit platforms using the
LLP64 data model, here is a test case that exercises `hash-object`
_without_ any options.

Just as before, we use the `big` file from the previous test case if it
exists to save on setup time, otherwise generate it.

Signed-off-by: Philip Oakley <philipoakley@iee.email>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Derrick Stolee <derrickstolee@github.com>
To verify that the `clean` side of the `clean`/`smudge` filter code is
correct with regards to LLP64 (read: to ensure that `size_t` is used
instead of `unsigned long`), here is a test case using a trivial filter,
specifically _not_ writing anything to the object store to limit the
scope of the test case.

As in previous commits, the `big` file from previous test cases is
reused if available, to save setup time, otherwise re-generated.

Signed-off-by: Philip Oakley <philipoakley@iee.email>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
In the case of Git for Windows (say, in a Git Bash window) running in a
Windows Subsystem for Linux (WSL) directory, the GetNamedSecurityInfoW()
call in is_path_owned_By_current_side() returns an error code other than
ERROR_SUCCESS. This is consistent behavior across this boundary.

In these cases, the owner would always be different because the WSL
owner is a different entity than the Windows user.

The change here is to suppress the error message that looks like this:

  error: failed to get owner for '//wsl.localhost/...' (1)

Before this change, this warning happens for every Git command,
regardless of whether the directory is marked with safe.directory.

Signed-off-by: Derrick Stolee <derrickstolee@github.com>
For Windows builds >= 15063 set $env:TERM to "xterm-256color" instead of
"cygwin" because they have a more capable console system that supports
this. Also set $env:COLORTERM="truecolor" if unset.

$env:TERM is initialized so that ANSI colors in color.c work, see
29a3963 (Win32: patch Windows environment on startup, 2012-01-15).

See git-for-windows#3629 regarding problems caused by always setting
$env:TERM="cygwin".

This is the same heuristic used by the Cygwin runtime.

Signed-off-by: Rafael Kitover <rkitover@gmail.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
NtQueryObject under Wine can return a success but fill out no name.
In those situations, Wine will set Buffer to NULL, and set result to
the sizeof(OBJECT_NAME_INFORMATION).

Running a command such as

echo "$(git.exe --version 2>/dev/null)"

will crash due to a NULL pointer dereference when the code attempts to
null terminate the buffer, although, weirdly, removing the subshell or
redirecting stdout to a file will not trigger the crash.

Code has been added to also check Buffer and Length to ensure the check
is as robust as possible due to the current behavior being fragile at
best, and could potentially change in the future

This code is based on the behavior of NtQueryObject under wine and
reactos.

Signed-off-by: Christopher Degawa <ccom@randomderp.com>
Atomic append on windows is only supported on local disk files, and it may
cause errors in other situations, e.g. network file system. If that is the
case, this config option should be used to turn atomic append off.

Co-Authored-By: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: 孙卓识 <sunzhuoshi@gmail.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
From the documentation of said setting:

	This boolean will enable fsync() when writing object files.

	This is a total waste of time and effort on a filesystem that
	orders data writes properly, but can be useful for filesystems
	that do not use journalling (traditional UNIX filesystems) or
	that only journal metadata and not file contents (OS X’s HFS+,
	or Linux ext3 with "data=writeback").

The most common file system on Windows (NTFS) does not guarantee that
order, therefore a sudden loss of power (or any other event causing an
unclean shutdown) would cause corrupt files (i.e. files filled with
NULs). Therefore we need to change the default.

Note that the documentation makes it sound as if this causes really bad
performance. In reality, writing loose objects is something that is done
only rarely, and only a handful of files at a time.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This is another fall-out of the recent refactoring flurry.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This fixes the build after 7bc341e (git-compat-util: add a test
balloon for C99 support, 2021-12-01).

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This is now passed by default, ever since 6a8cbc4 (developer: enable
pedantic by default, 2021-09-03).

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Since ef8a6c6 (reftable: utility functions, 2021-10-07) we not only
have a libreftable, but also a libreftable_test.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Visual Studio 2022 does not like that at all.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
These refactorings are really gifts that keep on giving.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
It is not useful because we do not have any persisted directory anymore,
not since dropping our Travis CI support.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
... so that we can test a MinGit backport in a private repository (with
GitHub Actions, minutes and parallel jobs are limited way more than with
Azure Pipelines in private repositories).

In this commit, we reinstate the exact version of `azure-pipelines.yml`
as 6081d38 (ci: retire the Azure Pipelines definition, 2020-04-11)
deleted.

Naturally, many adjustments are required to make it work again. Some of
the changes are actually outside of that file (such as the
`runs_on_pool` changes that are needed in the Azure Pipelines part of
`ci/lib.sh`) and they were made in the commits leading up to this here
commit.

However, other adjustments are required in the `azure-pipelines.yml`
file itself, and for ease of review (read: to build confidence in those
changes) they will be made in subsequent, individual commits that
explain the intent, context, implementation and justification like every
good commit message should do.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This is a follow-up to 6c280b4 (ci: remove GETTEXT_POISON jobs,
2021-01-20) after reinstating the Azure Pipeline.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
We have `ci/install-dependencies.sh` for that. Incidentally, this avoids
the following error in the linux-* jobs:

    The following packages have unmet dependencies:
    git-email : Depends: git (< 1:2.25.1-.) but 1:2.35.1-0ppa1~ubuntu20.04.1 is to be installed
	  Recommends: libemail-valid-perl but it is not going to be installed

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
We haven't used this feature in ages, we don't actually need to.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
…imal-sdk

The Azure Pipeline `git-sdk-64-minimal` was retired...

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
These many refactorings in Git sure are gifts that keep on giving.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This is inspired by d051ed7 (.github/workflows/main.yml: run
static-analysis on bionic, 2021-02-08) and by ef46584 (ci: update
'static-analysis' to Ubuntu 22.04, 2022-08-23), adapted to the Azure
Pipeline.

When Azure Pipelines' build agents transitioned 'ubuntu-latest' from
18.04 to 20.04, it broke our `static-analysis` job, since Coccinelle
was not madeavailable on Ubuntu focal (it is only available in the
universe suite).

This is not an issue with Ubuntu 22.04, but we will only know whether it
is an issue with 24.04 when _that_ comes out. So let's play it safe and
pin the `static_analysis` job to the latest Ubuntu version that we know
to offer a working Coccinelle package.

Signed-off-by: Taylor Blau <me@ttaylorr.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Whith Windows 2000, Microsoft introduced a flag to the PE header to mark executables as
"terminal server aware". Windows terminal servers provide a redirected Windows directory and
redirected registry hives when launching legacy applications without this flag set. Since we
do not use any INI files in the Windows directory and don't write to the registry, we don't
need  this additional preparation. Telling the OS that we don't need this should provide
slightly improved startup times in terminal server environments.

When building for supported Windows Versions with MSVC the /TSAWARE linker flag is
automatically set, but MinGW requires us to set the --tsaware flag manually.

This partially addresses git-for-windows#3935.

Signed-off-by: Matthias Aßhauer <mha1993@live.de>
Add FileVersion, which is a required field
As not all required fields were present, none were being included
Fixes git-for-windows#4090

Signed-off-by: Kiel Hurley <kielhurley@gmail.com>
Newer compiler versions, like GCC 10 and Clang 12, have built-in
functions for bswap32 and bswap64. This comes in handy, for example,
when targeting CLANGARM64 on Windows, which would not be supported
without this logic.

Signed-off-by: Dennis Ameling <dennis@dennisameling.com>
CLANGARM64 is a relatively new MSYSTEM added by the MSYS2 team. In order
to have Git build correctly for this platform, let's add some
configuration for it to config.mak.uname.

Signed-off-by: Dennis Ameling <dennis@dennisameling.com>
This compile-time option allows to ask Git to load libcurl dynamically
at runtime.

Together with a follow-up patch that optionally overrides the file name
depending on the `http.sslBackend` setting, this kicks open the door for
installing multiple libcurl flavors side by side, and load the one
corresponding to the (runtime-)configured SSL/TLS backend.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
No GitHub-hosted ARM64 runners are available at the moment of writing,
but folks can leverage self-hosted runners of this architecture. This CI
pipeline comes in handy for forks of the git-for-windows/git project
that have such runners available. The pipeline can be kicked off
manually through a workflow_dispatch.

Signed-off-by: Dennis Ameling <dennis@dennisameling.com>
Philip Oakley and others added 23 commits February 14, 2024 22:52
Git for Windows accepts pull requests; Core Git does not. Therefore we
need to adjust the template (because it only matches core Git's
project management style, not ours).

Also: direct Git for Windows enhancements to their contributions page,
space out the text for easy reading, and clarify that the mailing list
is plain text, not HTML.

Signed-off-by: Philip Oakley <philipoakley@iee.org>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
The sentiment bot will help detect when things get too heated.
Hopefully.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Git documentation refers to $HOME and $XDG_CONFIG_HOME often, but does not specify how or where these values come from on Windows where neither is set by default. The new documentation reflects the behavior of setup_windows_environment() in compat/mingw.c.

Signed-off-by: Alejandro Barreto <alejandro.barreto@ni.com>
These are Git for Windows' Git GUI and gitk patches. We will have to
decide at some point what to do about them, but that's a little lower
priority (as Git GUI seems to be unmaintained for the time being, and
the gitk maintainer keeps a very low profile on the Git mailing list,
too).

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This is the recommended way on GitHub to describe policies revolving around
security issues and about supported versions.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
…dvice

clean: suggest using `core.longPaths` if paths are too long to remove
This was pull request git-for-windows#1645 from ZCube/master

Support windows container.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
…ws#4527)

With this patch, Git for Windows works as intended on mounted APFS
volumes (where renaming read-only files would fail).

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This patch introduces support to set special NTFS attributes that are
interpreted by the Windows Subsystem for Linux as file mode bits, UID
and GID.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Handle Ctrl+C in Git Bash nicely

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
A fix for calling `vim` in Windows Terminal caused a regression and was
reverted. We partially un-revert this, to get the fix again.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This topic branch re-adds the deprecated --stdin/-z options to `git
reset`. Those patches were overridden by a different set of options in
the upstream Git project before we could propose `--stdin`.

We offered this in MinGit to applications that wanted a safer way to
pass lots of pathspecs to Git, and these applications will need to be
adjusted.

Instead of `--stdin`, `--pathspec-from-file=-` should be used, and
instead of `-z`, `--pathspec-file-nul`.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Originally introduced as `core.useBuiltinFSMonitor` in Git for Windows
and developed, improved and stabilized there, the built-in FSMonitor
only made it into upstream Git (after unnecessarily long hemming and
hawing and throwing overly perfectionist style review sticks into the
spokes) as `core.fsmonitor = true`.

In Git for Windows, with this topic branch, we re-introduce the
now-obsolete config setting, with warnings suggesting to existing users
how to switch to the new config setting, with the intention to
ultimately drop the patch at some stage.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
…updates

Start monitoring updates of Git for Windows' component in the open
Add a README.md for GitHub goodness.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
@dscho dscho added this to the v2.44.0 milestone Feb 14, 2024
@dscho dscho self-assigned this Feb 14, 2024
@dscho dscho linked an issue Feb 14, 2024 that may be closed by this pull request
@dscho
Copy link
Member Author

dscho commented Feb 14, 2024

/git-artifacts

The tag-git workflow run was started

The git-artifacts-x86_64 workflow run was started.
The git-artifacts-i686 workflow run was started.

@dscho
Copy link
Member Author

dscho commented Feb 14, 2024

/release

The release-git workflow run was started

@dscho dscho merged commit e74f1e0 into git-for-windows:main Feb 14, 2024
34 checks passed
@dscho dscho deleted the rebase-to-v2.44.0-rc1 branch February 14, 2024 22:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[New git version] v2.44.0-rc1