You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
v0.5.6: The `patch` a machine happens to have is now checked for being new enough, not just for being GNU
An old patch on PATH aborted on every repair inside a package, and
nothing said why. GNU patch 2.5.9 fails an internal assertion when a hunk
writes into a subdirectory, which is what a package-seeded implementation is
made of. It is from 2002, and Strawberry Perl, the usual Perl distribution
for Windows, installs it ahead of Git's copy on PATH. The existing guard
only asks whether a patch is GNU, which this one is: it takes --fuzz and --dry-run without complaint and then dies with a dialog naming a line in
patch's own C source, so a Windows user saw every FIX fail for a reason no
message connected to the binary they never chose. qikly now asks each
candidate for its version and steps over anything below 2.7, which finds the
current GNU patch that Git for Windows ships under usr\bin even when
another one comes first. A patch whose version cannot be read is still
used, so nothing that works today stops working. The version is a
preference rather than a veto: where no candidate is new enough, the first
is still used, because an older patch refuses these flags outright and
says so, and on macOS without gpatch that is Apple's own. The one refusal
is a patch between 2.5 and 2.7, which accepts the flags and then aborts;
there the error names each binary, its version, and the fix for the
platform, since nothing else would connect the crash to the cause. Found on
GitHub's own Windows runners, which preinstall Strawberry Perl.