msys2 / MINGW-packages

Package scripts for MinGW-w64 targets to build under MSYS2.
https://packages.msys2.org
BSD 3-Clause "New" or "Revised" License
2.28k stars 1.22k forks source link

git difftool -- . using MELD failed #17776

Open Skips75 opened 1 year ago

Skips75 commented 1 year ago

Description / Steps to reproduce the issue

MSYS2 version 2023-05-26 is installed on a Win10 64-bit Professional edition computer by means of scoop installer. In MSYS2 console installed via pacman the latest UCRT64 meld program. Output of git config --local --list (omitted other settings that are not concerned with meld):

diff.tool=meld diff.guitool=meld difftool.prompt=false difftool.tool=meld difftool.guitool=meld difftool.path=/ucrt64/bin/meld difftool.cmd=meld "$LOCAL" "$REMOTE" difftool.meld.path=/ucrt64/bin/meld difftool.meld.cmd=/ucrt64/bin/meld $LOCAL $REMOTE merge.tool=meld merge.guitool=meld mergetool.meld.path=D:/scoopapp/apps/msys2/current/ucrt64/bin/meld mergetool.meld.cmd="D:/scoopapp/apps/msys2/current/ucrt64/bin/meld" "$LOCAL" "$BASE" "$REMOTE" --output "$MERGED"

Expected behavior

When I throw a git difftool -- . to view my local changes not yet committed I would expect to see meld graphic tool opens.

Actual behavior

Instead what I see are the following error printouts:

Traceback (most recent call last): File "D:\scoopapp\apps\msys2\2023-05-26\ucrt64\bin\meld", line 463, in <module> sys.exit(main()) File "D:\scoopapp\apps\msys2\2023-05-26\ucrt64\bin\meld", line 453, in main setup_logging() File "D:\scoopapp\apps\msys2\2023-05-26\ucrt64\bin\meld", line 333, in setup_logging handler = logging.FileHandler(log_path) File "D:/scoopapp/apps/msys2/2023-05-26/ucrt64/lib/python3.10/logging/__init__.py", line 1169, in __init__ StreamHandler.__init__(self, self._open()) File "D:/scoopapp/apps/msys2/2023-05-26/ucrt64/lib/python3.10/logging/__init__.py", line 1201, in _open return open_func(self.baseFilename, self.mode, OSError: [Errno 22] Invalid argument: 'D:/scoopapp/apps/msys2/2023-05-26/mingw64/share/;D:/scoopapp/apps/msys2/2023-05-26/usr/local/share/;D:/scoopapp/apps/msys2/2023-05-26/usr/share/meld.log'

for every changed file.

Verification

Windows Version

MINGW64_NT-10.0-19045

MINGW environments affected

Are you willing to submit a PR?

No response

Biswa96 commented 1 year ago

I can not reproduce the issue. It's working in my system. I have added the following two options only.

git config --local diff.tool meld
git config --local difftool.prompt false

It seems some path issues in your case. Try to use the msys2 installer from here https://www.msys2.org/

Skips75 commented 1 year ago

Here other info that could be useful to analyze the problem:

I also installed (always via scoop package management) meld outside the MSYS2/UCRT64_ environment (via scoop install meld command) and it perfectly works.

Biswa96 commented 1 year ago

What is the output of this command? cygpath -w $(which meld)

Skips75 commented 1 year ago

cygpath -w $(which meld) outputs:

D:\scoopapp\apps\msys2\2023-05-26\ucrt64\bin\meld

revelator commented 1 year ago

path to long maybe ?

Skips75 commented 1 year ago

@revelator Path to long?! Its size it's only 50 characters.. I don't think...

BTW, if could be useful to someone here are the packages installed on the machine where I have the problem, retrieved via the pacman -Qne command:

autoconf-wrapper 20221207-1 autoconf2.69 2.69-3 automake-wrapper 20221207-1 automake1.15 1.15.1-4 autotools 2022.01.16-2 base 2022.06-1 base-devel 2022.12-2 cmatrix 2.0-1 filesystem 2023.02.07-1 git 2.42.0-2 git-flow 1.12.3-1 libiconv-devel 1.17-1 man-db 2.11.2-1 mingw-w64-ucrt-x86_64-arm-none-eabi-gcc 12.2.0-1 mingw-w64-ucrt-x86_64-arm-none-eabi-gdb 9.2-8 mingw-w64-ucrt-x86_64-binutils 2.41-2 mingw-w64-ucrt-x86_64-ca-certificates 20230311-1 mingw-w64-ucrt-x86_64-cmake 3.27.4-2 mingw-w64-ucrt-x86_64-cppcheck 2.11.1-1 mingw-w64-ucrt-x86_64-crt-git 11.0.0.r159.g0605217f5-1 mingw-w64-ucrt-x86_64-fzf 0.42.0-1 mingw-w64-ucrt-x86_64-gcc 13.2.0-2 mingw-w64-ucrt-x86_64-gcc-ada 13.2.0-2 mingw-w64-ucrt-x86_64-gcc-fortran 13.2.0-2 mingw-w64-ucrt-x86_64-gcc-libgfortran 13.2.0-2 mingw-w64-ucrt-x86_64-gcc-objc 13.2.0-2 mingw-w64-ucrt-x86_64-gdb 13.2-3 mingw-w64-ucrt-x86_64-gdb-multiarch 13.2-3 mingw-w64-ucrt-x86_64-github-cli 2.34.0-1 mingw-w64-ucrt-x86_64-headers-git 11.0.0.r159.g0605217f5-1 mingw-w64-ucrt-x86_64-libgccjit 13.2.0-2 mingw-w64-ucrt-x86_64-libmangle-git 11.0.0.r159.g0605217f5-1 mingw-w64-ucrt-x86_64-make 4.4-2 mingw-w64-ucrt-x86_64-meld3 3.22.0-2 mingw-w64-ucrt-x86_64-oh-my-posh 18.7.0-1 mingw-w64-ucrt-x86_64-pkgconf 1~2.0.3-1 mingw-w64-ucrt-x86_64-putty 0.79-1 mingw-w64-ucrt-x86_64-ruby 3.1.3-2 mingw-w64-ucrt-x86_64-tools-git 11.0.0.r159.g0605217f5-1 mingw-w64-ucrt-x86_64-universal-ctags 6.0.0-1 mingw-w64-ucrt-x86_64-winpthreads-git 11.0.0.r159.g0605217f5-1 mingw-w64-ucrt-x86_64-winstorecompat-git 11.0.0.r159.g0605217f5-1 msys2-runtime 3.4.9-1 procps-ng 3.3.17-1 python 3.11.5-1 ruby 3.2.2-1 tcl 8.6.12-3 tig 2.5.8-1 tmux 3.3.a-1 unzip 6.0-2 vifm 0.12.1-1 vim 9.0.1403-2 vimpager 2.06-1 zip 3.0-3

Also the problems arise simply launching meld:

Traceback (most recent call last): File "D:/scoopapp/apps/msys2/2023-05-26/ucrt64/bin/meld", line 463, in <module> sys.exit(main()) ^^^^^ File "D:/scoopapp/apps/msys2/2023-05-26/ucrt64/bin/meld", line 453, in main setup_logging() File "D:/scoopapp/apps/msys2/2023-05-26/ucrt64/bin/meld", line 333, in setup_logging handler = logging.FileHandler(log_path) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:/scoopapp/apps/msys2/2023-05-26/ucrt64/lib/python3.11/logging/__init__.py", line 1181, in __init__ StreamHandler.__init__(self, self._open()) ^^^^^^^^^^^^ File "D:/scoopapp/apps/msys2/2023-05-26/ucrt64/lib/python3.11/logging/__init__.py", line 1213, in _open return open_func(self.baseFilename, self.mode, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ OSError: [Errno 22] Invalid argument: 'D:/scoopapp/apps/msys2/2023-05-26/mingw64/share/;D:/scoopapp/apps/msys2/2023-05-26/usr/local/share/;D:/scoopapp/apps/msys2/2023-05-26/usr/share/meld.log'