Wrap: Use git instead of patch by default
This solves problems with Strawberry Perl providing patch.exe on Windows with an unconsistent line ending support. Fixes: #12092
This commit is contained in:
parent
22da2c3c2d
commit
718c86a7d5
|
@ -801,15 +801,17 @@ class Resolver:
|
|||
if not path.exists():
|
||||
raise WrapException(f'Diff file "{path}" does not exist')
|
||||
relpath = os.path.relpath(str(path), self.dirname)
|
||||
if PATCH:
|
||||
# Always pass a POSIX path to patch, because on Windows it's MSYS
|
||||
cmd = [PATCH, '-f', '-p1', '-i', str(Path(relpath).as_posix())]
|
||||
elif GIT:
|
||||
# If the `patch` command is not available, fall back to `git
|
||||
# apply`. The `--work-tree` is necessary in case we're inside a
|
||||
if GIT:
|
||||
# Git is more likely to be available on Windows and more likely
|
||||
# to apply correctly assuming patches are often generated by git.
|
||||
# See https://github.com/mesonbuild/meson/issues/12092.
|
||||
# The `--work-tree` is necessary in case we're inside a
|
||||
# Git repository: by default, Git will try to apply the patch to
|
||||
# the repository root.
|
||||
cmd = [GIT, '--work-tree', '.', 'apply', '-p1', relpath]
|
||||
elif PATCH:
|
||||
# Always pass a POSIX path to patch, because on Windows it's MSYS
|
||||
cmd = [PATCH, '-f', '-p1', '-i', str(Path(relpath).as_posix())]
|
||||
else:
|
||||
raise WrapException('Missing "patch" or "git" commands to apply diff files')
|
||||
|
||||
|
|
Loading…
Reference in New Issue