web-dev-qa-db-fra.com

Quelles sont les différences entre msys / git et git-for-windows / mingw-w64-x86_64-git?

Pour pouvoir exécuter les scripts de test de mon application multiplateforme également sur Windows, j'ai installé MSYS2 et utilisé pacman pour installer tous les packages sur lesquels mes scripts de test s'appuient.

Puisque MSYS2 fournit un port de git (msys/git), je pense qu'il n'est pas nécessaire d'installer Git pour Windows également. Mais quelles sont les différences entre la version git fournie dans le référentiel MSYS2 et celle fournie par Git pour Windows?

J'ai remarqué ces différences jusqu'à présent:

  1. msys/git échouera lors de l'exécution de pip freeze sur un virtualenv où un package Python d'un clone git est installé en mode développement:

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

    git-for-windows/mingw-w64-x86_64-git n'échoue pas, il y a donc au moins quelques différences en ce qui concerne la gestion des chemins.

  2. Git pour Windows gitk et git gui fonctionnent prêts à l'emploi. Il n'est pas nécessaire de définir le GIT_GUI_LIB_DIR variable d'environnement comme décrit ici .

Il semble que git du référentiel Git pour Windows offre la meilleure expérience à ce stade.

P.S. Vous pouvez installer Git pour Windows git dans MSYS2 en ajoutant ce qui suit à /etc/pacman.conf, ci-dessus le [mingw32], [mingw64] et [msys] entrées. Mais il serait peut-être préférable d'installer le SDK Git pour Windows à la place, qui est essentiellement une édition spéciale de MSYS2 y compris Git pour Windows. Sinon, la procédure ci-dessous (et plus) est également décrite ici .

[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

Après cela (et peut-être un pacman -Sy), vous pouvez installer le git de Git pour Windows:

pacman -S mingw-w64-x86_64-git

Je suppose qu'il n'y a aucune raison de ne pas installer Git pour Windows dans MSYS2?

[~ # ~] modifier [~ # ~] Le programme d'installation de Git pour Windows (dé) laissé derrière C:\ProgramData\Git\config. Cela pointe git au mauvais endroit pour les certificats SSL. Vous pouvez supprimer C:\ProgramData\Git\config pour résoudre ce problème.

34
Brecht Machiels

msys/git est lié à une bibliothèque dynamique fournie par MSYS2 pour fournir la compatibilité POSIX-à-Windows (émulation POSIX) d'une manière similaire à la façon dont cygwin le fait (MSYS2 est dérivé de cygwin), il nécessite donc que l'environnement MSYS2 soit présent pour fonctionner.

git-for-windows/mingw-w64-x86_64-git d'autre part, est compilé à l'aide du compilateur MinGW, qui effectue la traduction vers Windows natif appels au moment de la compilation, ce qui se traduit par un binaire beaucoup plus rapide par rapport à l'approche d'émulation, et ne nécessite que des bibliothèques Windows natives pour s'exécuter.

De La différence entre MSYS2 et MinGW :

La couche d'émulation POSIX des binaires MSYS2 est pratique, mais a un prix: En règle générale, les programmes MSYS2 sont sensiblement plus lents que leurs homologues MinGW (s'il existe de tels homologues). Par conséquent, le projet Git pour Windows essaie de fournir autant de composants que possible de binaires MinGW.

Voir aussi: En quoi MSYS2 diffère-t-il de Cygwin?

6
Niklas Holm