2016-10-26 2 views
20

Чтобы иметь возможность запускать тестовые скрипты для моего кросс-платформенного приложения также в Windows, я установил MSYS2 и использовал pacman для установки любых пакетов, на которые полагаются мои тестовые сценарии.В чем разница между msys/git и git-for-windows/mingw-w64-x86_64-git?

Поскольку MSYS2 предоставляет порт git (msys/git), я думаю, что нет необходимости устанавливать Git для Windows. Но каковы различия между версией git, представленной в репозитории MSYS2, и тем, что предоставляется Git для Windows?

я заметил эти различия до сих пор:

  1. MSYS/мерзавец произойдет сбой при запуске pip freeze на virtualenv, где пакет Python от мерзавца клона установлен в режиме разработки:

    FileNotFoundError: [WinError 3] The system cannot find the path specified: '/c/users/user/documents/project/.git\\..' 
    

    git-for-windows/mingw-w64-x86_64-git не прерывается, поэтому есть некоторые отличия в отношении обработки пути.

  2. Git для Windows gitk и git gui работают из коробки. Нет необходимости устанавливать переменную окружения GIT_GUI_LIB_DIRas described here.

Кажется, git из хранилища Git для Windows предлагает лучший опыт на этом этапе.

P.S. Вы можете установить Git для Windows git в MSYS2, добавив следующие данные: /etc/pacman.conf, above[mingw32], [mingw64] и [msys] записей. Но лучше было бы установить Git для Windows SDK, а именно basically a special edition of MSYS2, включая Git для Windows. В противном случае процедура ниже (и более) также является described here.

[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 

После этого (и возможно, pacman -Sy), вы можете установить Git для мерзавца ОС Windows на:

pacman -S mingw-w64-x86_64-git 

Я полагаю, что нет никаких причин, чтобы не установить Git для мерзавца ОС Windows на в MSYS2?

EDIT Установщик Git for Windows (un) оставил C:\ProgramData\Git\config. Это указывает на неправильное расположение сертификатов SSL. Вы можете удалить C:\ProgramData\Git\config, чтобы исправить это.

+0

У меня были проблемы с использованием мерзавца MSYS2 в, например, QtCreator, где взаимодействие между git и IDE пошло не так, но Git For Windows работала нормально. Это было какое-то время назад. – rubenvb

+0

Было бы неплохо, если бы ответ также мог детализировать разницу между MSYS2 + git и git для окон. Насколько я понимаю, преимущество MSYS2 + git состоит в том, что у вас есть вся экосистема MSYS2 (включая pacman), а преимущество Git для Windows заключается в том, что вы получаете расширение оболочки и графические инструменты. Есть ли возможность объединить эти преимущества? –

+1

@FlorianKusche как пакеты msys/git, так и git-for-windows/mingw-w64-x86_64-git включают графические инструменты (gitk и git gui). Они разбиты из коробки в msys/git, хотя, как упоминалось в вопросе. –

ответ

2

MSYS/мерзавец связан с динамической библиотеки, представленной MSYS2, чтобы обеспечить POSIX-к-совместимости Windows (эмуляции POSIX) аналогично тому, как Cygwin делает (MSYS2 раздвоен от Cygwin), таким образом, оно требует MSYS2 для работы.

ГИТ-для-окон/MinGW-w64-x86_64-ГИТ с другой стороны, скомпилирован с помощью компилятора MinGW, который выполняет перевод на родной Windows, вызывает во время компиляции, что приводит к гораздо быстрее бинарная по сравнению с подходом эмуляции, и требует выполнения только собственных библиотек Windows.

The difference between MSYS2 and MinGW От:

эмуляции слой POSIX из MSYS2 двоичных файлов удобно, но поставляется по цене: Как правило, программы MSYS2 являются заметно медленнее, чем их коллеги MinGW (если есть такие аналоги). Как следствие, проект Git для Windows пытается обеспечить как можно больше компонентов, как двоичные файлы MinGW.

Смотрите также: How does MSYS2 differ from Cygwin?

Смежные вопросы