30 votes

Options de contrôle de source distribuées

Je me suis intéressé à Git, mais la dernière fois que j'ai regardé, le support Windows était essentiellement "run Linux".

Existe-t-il des outils de contrôle de source distribués qui fonctionnent correctement sous Windows?

31voto

Benjamin Pollack Points 10458

Mercurial fonctionne très bien sous Windows--le facteur majeur qui nous a encouragés à adopter à l'endroit où je travaille. La meilleure façon d'installer et à utiliser, il est TortoiseHg, ce qui assure l'intégration avec l'Explorateur et des dialogues ouvrir/enregistrer. Le paquet vient avec la plus récente version de ligne de commande de la Mercurial, plus beaucoup de cloches et de sifflets, comme les bons outils graphiques pour la visualisation et la recherche de votre référentiel histoire, les extensions tierce partie ne sont généralement pas inclus, et des moyens faciles à configurer votre Mercurial installation. Si vous interagissez avec souvent des développeurs Unix, vous devriez également prendre un coup d'oeil à la win32text extension, qui va prendre soin de la ligne de fin de questions.

Aussi loin que git sur Windows va: je n'ai pas trouve personnellement l'exécution d'un programme dans Cygwin sous Windows compte comme un natif de Windows solution, pas plus que l'exécution de quelque chose compilé contre winelib fait un natif de Linux programme. Vous aurez toujours à faire face à rendement relativement faible (git lui-même est rapide, mais effectue de nombreux Unix décisions qui font mal sur Windows), un tout autre ligne de commande de jeu de ne pas s'intégrer avec le reste de votre chaîne d'outil, et une toute nouvelle classe de ligne-mettre fin à des questions que certains Unix et des Fenêtres centrées sur les outils de marcher au-dessus de vos fichiers texte.

15voto

David Cournapeau Points 21956

Il me semble que les trois grands open source les joueurs sont bzr, git et hg (je jeter non open source, car je n'ai jamais utilisé, mais qui peut être une option valable, spécialement sur windows).

Comme certains ont mentionné, git fonctionne en mode natif (par exemple, sans cygwin) sur windows. Git est le plus puissant, et a beaucoup de traction. Il (elle ne l'est déjà) un joueur clé, car il est utilisé par plusieurs projets open-source (linux, Xorg, beaucoup de freedesktop trucs, RoR, et plus à venir pour être sûr).

bzr est celui que je connais le plus, et qui fonctionne raisonnablement bien. Les commandes de base sont les mêmes que pour subversion (commit, journal, le blâme, etc....). Bzr semble plus solide sur windows grâce au support de l'unicode qui semble de plus en plus intégrée dans bzr (chaque chemin est traité comme de l'unicode en interne). J'utilise bzr tout le temps à partager entre ma machine principale sur linux et windows VM. Aussi, bzr en charge de nombreux protocoles de réseau (muet http, ftp, sftp, etc...).

Hg est implémenté en python, comme bzr, c'est à dire pratiquement plus portable que git (qui est C + scripts shell). Hg ressemble à bzr, mais a plus de cas de coin et un peu plus fragile wrt erreurs (pas de corruption ou de quoi que ce soit, mais par exemple, par défaut, hg besoin de quelques variables d'environnement définies sur mac os X, des choses comme ça).

Concernant la branche de modèle: hg et git suivre le modèle de beaucoup de branches dans un référentiel, une branche à la fois. Par cela, je veux dire que dans un référentiel, à tout moment, vous n'avez qu'un arbre de travail correspondant à une branche. Cela signifie que la commutation entre les branches est facile et rapide, et le partage de données de référentiel est plus facile.

bzr suit un modèle différent de hg et de git, c'est que vous avez un répertoire par branche (si vous avez une branche b1 et une branche b2, les deux branches seront deux répertoires différents, un peu comme quand vous commander à partir de svn). Cela signifie qu'il est plus facile d'utiliser des outils externes (un arbre de travail par branche), mais à mon humble avis, il est moins puissant que hg/git modèle, parce que, au moins dans git cas, vous pouvez le faire très avancé entre les branches, et je crois que c'est parce que d'avoir le même référentiel entre les deux branches(comme l'enregistrement seulement les commits de branch1 qui ne sont pas (sesc) 2; bzr peut le faire aussi, mais si chaque branche a son propre référentiel, Je suppose que cela peut avoir un impact sur les performances).

Une autre différence est que dans bzr, la canalisation principale est considéré comme spécial. Vous pouvez changer la branche est de la ligne principale à tout moment (il n'est pas moins de répartie que git ou hg à cet égard), mais il a des conséquences sur la façon dont le journal est affiché, et dans le numéro de révision au niveau de l'INTERFACE utilisateur. En outre revid qui sont uniques pour toute révision, bzr plupart du temps l'utilisation revno, qui sont simples entier comme pour subversion. Bien sûr, ces chiffres ne sont pas distribués (si vous changez de direction, le revno changement), mais cela signifie qu'il a l'air plus facilement.

Je suis un grand utilisateur de bzr, je l'ai utilisé pendant plus de deux ans pour chaque projet de la mine. Mais plus récemment, j'ai été en utilisant git (pour svn projets par le biais de git-svn), et j'aime de plus en plus. La direction générale du modèle de git est plus puissant que mon humble avis. Je trouve le bzr revno de la confusion, car lors de la fusion des branches, vos chiffres ne sont pas vraiment plus aucun sens, vous avez 172 venir après 174.1 ou des choses comme ça. Aussi, bzr est lent par rapport à hg, et douloureusement lent par rapport à git (au moins sous linux). Nous parlons d'un ordre de grandeur. Les deux domaines où bzr est vraiment lent sont de grandes histoires (une dizaine de milliers de commits) et du réseau; bzr échelles ok pour les gros travail d'arbres. Otoh, que, bzr a launchpad pour le suivi des anomalies, et bien que launchpad a ses (nombreux) de verrues, il est de mieux en mieux et mieux; vous n'avez pas beaucoup d'options gratuites pour git ou hg si vous voulez de suivi des bogues. Aussi, je trouve bzr celui qui a le plus d'erreur système: lorsqu'il échoue, vous avez presque toujours savoir pourquoi; git message d'erreur peut être cryptique.

Les outils d'interface graphique sous windows sont assez mauvais pour tous. TortoiseHG est une blague.

Pour résumer:

  • git: plus rapide, plus puissante, beaucoup de développeurs/utilisateurs derrière elle
  • bzr: facile à utiliser, plus de soutien pour le développement centralisé, peut-être moins compliqué pour les utilisateurs svn/cvs, lent, un bon support sur windows.
  • hg: un peu de milieu entre git et bzr.
  • tous les sucer à outils d'interface graphique sur windows

9voto

engtech Points 1594

Git est de plus en plus d'Apple/de support de Windows maintenant que les Rails et github sont autour.

Avez-vous vu http://github.com/?

Vous devriez être en mesure d'exécuter Git sur Windows sans Cygwin en utilisant msysGit. http://code.google.com/p/msysgit/

Comme @rictic mentionné, ce guide est bonne: http://kylecordes.com/2008/04/30/git-windows-go/

8voto

Michael Stum Points 72046

Découvrez Mercurial . Je ne l'ai pas utilisé moi-même, mais il contient des paquets Windows officiels .

7voto

Peter Burns Points 17420

Cela semble être un guide assez raisonnable pour exécuter git sur Windows: http://kylecordes.com/2008/04/30/git-windows-go/

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