40 votes

msysgit sur Windows - Que devrais-je savoir, le cas échéant?

Ceci est lié à une autre question que j'avais posée récemment.

Lors de l'installation de msysgit, le programme d'installation présente 3 options liées au chemin d'accès au système:

  1. Ne jamais changer l'environnement windows. Avec cette option, vous devez utiliser le "bash" coquille à travailler avec git.

  2. Ajouter le git\bin à la variable d'environnement PATH, mais sans écraser certains builtin des outils de windows. Compagnons de stackoverflow-ian Gabe Moothart m'a dit dans un commentaire que cette option va faire quelques git opérations échouent! Quelles sont ces activités? Devrais-je m'en inquiéter?

  3. Comme 2 mais remplacer certains par défaut des outils du système. Quels sont ces outils? Quels sont les composants de windows en dépendent? et ce mal dans la pratique?

Une autre question vient à mon esprit, sans rapport avec le CHEMIN d'accès système.

Que faire si j'ai des liens symboliques et des liens en dur à l'intérieur de mon répertoire de projet? Ne git de savoir comment traiter avec ces? ou bien, il souffre d'une récursion infinie, si par exemple, la structure de répertoire a été telle que certains dossier était en fait un lien symbolique pour l'un de ses parents?

44voto

Jonathan Lonowski Points 45253

Vous obtenez bash quelle que soit l'option que vous choisissez, le dernier la possibilité d'ajouter des méthodes pour l'utilisation de Git en dehors d'elle.

Pour les dernières options, msysgit ajoute Windows versions de Linux courants utilitaires pour PATH. Cela inclut find, kill et sort, ainsi qu' cp, ls, rm, et d'environ 20 à 30 autres.

Le problème avec les 3 premiers (et similaires), c'est qu'ils existent dans les deux systèmes d'exploitation et fonctionnent différemment dans chaque.

Pas une épreuve énorme si vous savez dans lequel vous allez utiliser, mais toutes les applications développées attendais un et d'obtenir les autres vont sûrement jeter un ajustement.


Pour éviter le conflit, tout en ayant Git fonctionne comme prévu, vous pouvez créer un simple script batch qui ajuste PATH seulement pour la session. (par exemple, readygit.bat)

@echo off
setlocal
set PATH=C:\Git\bin;%PATH%
cmd

Ajuster C:\Git\bin en conséquence. Mais, il suffit d'exécuter le présent et l'utilisation de Git au sein de l' cmd.

Avec cela, vous pouvez utiliser l'option d'installation en 3 et en toute sécurité supprimer C:\Git\bin à partir de votre système en PATH, en supprimant toute confusion pour les applications Windows sans les confondre Git.

J'utilise actuellement un script similaire avec GnuWin applications, y compris l' find.

9voto

VonC Points 414372

Vous voudrez peut-être savoir que:

  • Toutes les commandes git ne sont pas encore là. Sur MSysGit1.6.2 début Mars 2009: archimport, cvsexportcommit, cvsimport, cvsserver, filter-branch, instaweb, envoyer e-mail, et de la coquille).

  • Jusqu'À Ce Que MSysGit1.6.2, git-svn était pas là (c'est maintenant).
    Le problème a été git-svn besoin de subversion liaisons perl, et vous ne pouvez construire que les modules chargeables dynamiquement. Et MSysGit avait une version en perl qui n'a pas en charge les modules chargeables dynamiquement.

  • Tous les détails à propos de MSysGit sont mieux expliquées dans leur MSysGitHerald wiki Github

3voto

Arafangion Points 5650

Sur windows (c'est moins un problème sur les autres systèmes, à mon très humble avis...), vous devez être TRÈS conscient de crlf questions, et il faut noter que, Sauf s'ils ont changé cela dans la toute dernière version de Git, qui, je crois, qu'ils peuvent avoir - ou si vous utilisez une très vieille version de Git), autocrlf est activé par défaut, contrairement à tous les autres git installations.

Notez également que si vous utilisez la toute dernière version de msysgit, bientôt cette semaine si je me souviens bien de la liste de diffusion, votre référentiel taille ne peut pas être supérieure à 2 go, total.

En outre, Windows est wierdly insensible à la casse mais /parfois/ cas à préserver - garder à l'esprit! (Ce n'est pas le confondre git impérativement - mais il peut dérouter l'utilisateur de le repo git).

Enfin, git est sensiblement plus lent sur windows que sur linux, même si c'est (dans mon expérience limitée) plus rapidement que les solutions de rechange.

Maintenant, concernant le chemin d'accès...

Si je ne me trompe, vous devriez être en mesure de simplement s'assurer que les principaux git binaire est dans le chemin et que le binaire doit alors prendre soin de référencer les autres git composants... Mais je n'ai pas testé.

2voto

Gabe Moothart Points 12400

Le MSYS Git installateur suggère l'option 2 si vous envisagez sur l'exécution de la commande git à partir d'un cygwin invite. L'environnement cygwin assure que git dépendances sont dans votre CHEMIN. Si vous choisissez cette option, mais ensuite invoquer git à partir d'une invite de commande windows, tous les unix-y utilitaires de ligne de commande git s'appuie sur la ne sera pas trouvé. IIRC, git est lui-même partiellement mis en œuvre comme des scripts bash. Je ne sais pas qui échouera, mais je ne pense pas que git sera utilisable de cette façon.

Je n'ai pas de liste des outils du système que l'option 3 remplace (le programme d'installation mentionne find.exe), mais cela ne vous affecter si vous êtes un lot-script ninja. À la ligne de commande, find font désormais référence à l'utilitaire unix de ce nom, pas le fichier exe qui est livré avec windows. Il n'a pas tort de windows lui-même en quelque sorte.

Seulement courir avec des ciseaux et de choisir l'option 3 :-)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X