2016-10-26 22 views
20

Aby móc uruchomić skrypty testowe dla mojej wieloplatformowej aplikacji, także w systemie Windows, zainstalowałem MSYS2 i użyłem pacmana do zainstalowania pakietów, na których polegają moje skrypty testowe.Jakie są różnice między msys/git i git-for-windows/mingw-w64-x86_64-git?

Ponieważ MSYS2 dostarcza port git (msys/git), myślę, że nie ma potrzeby instalowania Git dla Windows. Ale jakie są różnice między wersją git podaną w repozytorium MSYS2 a wersją dostarczoną przez Git dla Windows?

zauważyłem te różnice dotąd:

  1. Msys/git nie powiedzie się, gdy uruchomiony pip freeze na virtualenv gdzie pakiet Python z klonu git jest zainstalowana w trybie opracowania:

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

    git-for-windows/mingw-w64-x86_64-git nie zawiedzie, więc istnieją co najmniej pewne różnice w odniesieniu do obsługi ścieżek.

  2. Git dla systemu Windows gitk i git gui działają po wyjęciu z pudełka. Nie ma potrzeby ustawiania zmiennej środowiskowej GIT_GUI_LIB_DIRas described here.

Wygląda na to, że git z repozytorium Git for Windows oferuje najlepsze wrażenia w tym momencie.

P.S. Możesz zainstalować Git dla gify Windowsa w MSYS2, dodając następujące pozycje do /etc/pacman.conf, above z wpisów [mingw32], [mingw64] i 2. Ale może lepiej zainstalować Git for Windows SDK, czyli basically a special edition of MSYS2, w tym Git dla Windows. W przeciwnym razie poniższa procedura (i więcej) jest również 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 

Po tym (a może pacman -Sy), można zainstalować Git do git windows:

pacman -S mingw-w64-x86_64-git 

Przypuszczam, że nie ma powodu, aby nie instalować Git dla git Windowsa w MSYS2?

EDIT Instalator Git dla systemu Windows (od) pozostawiony pod C:\ProgramData\Git\config. Ten punkt git w złym miejscu dla certyfikatów SSL. Możesz usunąć C:\ProgramData\Git\config, aby to naprawić.

+0

miałem problemy z używaniem git MSYS2 w np QtCreator, w którym interakcja między git i IDE poszło nie tak, ale Git For Windows działał dobrze. To było jednak jakiś czas temu. – rubenvb

+0

Byłoby miło, gdyby odpowiedź mogła również wyszczególnić różnicę między MSYS2 + git i git dla Windows. O ile widzę, zaletą genu MSYS2 + jest to, że posiadasz cały ekosystem MSYS2 (w tym pacman), a zaletą Git dla Windows jest to, że dostajesz rozszerzenie powłoki i narzędzia graficzne. Czy istnieje możliwość połączenia tych zalet? –

+1

@FlorianKusche zarówno pakiety msys/git, jak i git-for-windows/mingw-w64-x86_64-git zawierają narzędzia graficzne (gitk i git gui). Są one łamane po uruchomieniu w msys/git, jak wspomniano w pytaniu. –

Odpowiedz

2

Msys/git jest związany przeciwko biblioteki dynamicznej dostarczonych przez MSYS2 dostarczenie POSIX do systemu Windows zgodności (emulacja POSIX) w sposób podobny do tego, jak Cygwin robi (MSYS2 jest rozwidlony z Cygwin), dlatego wymaga Środowisko MSYS2 do uruchomienia.

git-for-windows/MinGW-W64-x86_64-git z drugiej strony, jest skompilowany przy użyciu kompilatora MinGW, która wykonuje tłumaczenia z natywnym Windows wywołuje w czasie kompilacji, co powoduje znacznie szybsze binarny w porównaniu do podejścia emulacyjnego i wymaga jedynie uruchomienia rodzimych bibliotek Windows.

Z The difference between MSYS2 and MinGW:

POSIX warstwa emulacji binariach MSYS2 jest wygodny, ale wiąże się z kosztami: Zwykle programy MSYS2 jest zauważalnie mniejsza, niż ich odpowiedniki Mingw (jeśli takie istnieją odpowiedniki). W związku z tym projekt Git for Windows próbuje dostarczyć jak najwięcej komponentów, jak pliki binarne MinGW.

Patrz także: How does MSYS2 differ from Cygwin?