В чем разница между msys/git и git -for-windows/mingw-w64-x86_64- git?
Чтобы иметь возможность запускать тестовые скрипты для моего кросс-платформенного приложения также в Windows, я установил MSYS2 и использовал pacman для установки любых пакетов, на которые полагаются мои тестовые сценарии.
Так как MSYS2 предоставляет порт git (msys/git), я думаю, что нет необходимости устанавливать git для Windows. Но каковы различия между версией git, предоставленной в репозитории MSYS2, и тем, который предоставляется git для Windows?
Я заметил эти различия:
-
msys/git завершится сбой при запуске pip freeze
на виртуальном сервере, где в режиме разработки установлен пакет Python из git клона:
FileNotFoundError: [WinError 3] The system cannot find the path specified: '/c/users/user/documents/project/.git\\..'
git -for-windows/mingw-w64-x86_64- git не прерывается, поэтому существуют некоторые различия в отношении обработки пути.
-
Git для Windows gitk и git gui работают из коробки. Нет необходимости устанавливать переменную среды GIT_GUI_LIB_DIR
как описано здесь.
Кажется, что git из репозитория git для Windows предлагает лучший опыт на этом этапе.
P.S. Вы можете установить git для Windows git в MSYS2, добавив следующее в /etc/pacman.conf
, выше записи [mingw32]
, [mingw64]
и [msys]
. Но лучше было бы установить git для Windows SDK, который в основном специальный выпуск MSYS2, включая git для Windows. В противном случае процедура ниже (и более) также описана здесь.
[git-for-windows]
Server = https://dl.bintray.com/$repo/pacman/$arch
[git-for-windows-mingw32]
Server = https://dl.bintray.com/git-for-windows/pacman/i686
После этого (и, возможно, a pacman -Sy
) вы можете установить git для Windows git:
pacman -S mingw-w64-x86_64-git
Я полагаю, нет причин не устанавливать git для Windows git в MSYS2?
EDIT Установщик git для Windows (un) оставил C:\ProgramData\Git\config
. Это указывает на git в неправильном месте для сертификатов SSL. Вы можете удалить C:\ProgramData\Git\config
, чтобы исправить это.
Ответы
Ответ 1
msys/ git связан с динамической библиотекой, предоставляемой MSYS2, для обеспечения совместимости с POSIX-Windows (эмуляция POSIX) способом, подобным тому, как работает cygwin (MSYS2 разветвляется с cygwin), поэтому для работы требуется среда MSYS2.
git -for-windows/mingw-w64-x86_64- git, скомпилируется с использованием компилятора MinGW, который выполняет перевод на собственные вызовы Windows во время компиляции, что приводит к значительно более быстрому двоичному алгоритму по сравнению с подходом эмуляции и требует выполнения только собственных библиотек Windows.
От Разница между MSYS2 и MinGW:
Уровень эмуляции POSIX двоичных файлов MSYS2 удобен, но стоит дорого: обычно программы MSYS2 заметно медленнее, чем их аналоги MinGW (если есть такие аналоги). Как следствие, проект Git для Windows пытается обеспечить как можно больше компонентов в качестве MinGW двоичных файлов.
Смотрите также: Как отличается MSYS2 от Cygwin?