Git vs Mercurial vs SVN [dupliquer]

duplicata possibles:

pour les projets home, Mercurial ou Git (ou D'autres DVCS) peuvent-ils fournir plus d'avantages que Subversion?

quelles sont les forces et les faiblesses relatives de Git, Mercurial et Bazaar?

quelles sont les différences entre ces systèmes de contrôle à la source? Qui est le meilleur pour un petit projet de 2 personnes?

41
demandé sur Community 2010-07-06 05:54:21

3 réponses

SVN est différent de Git et Mercurial, en ce sens qu'il s'agit d'un dépôt unique que tous les utilisateurs doivent extraire et auquel ils doivent s'engager.

Git et Mercurial ont un modèle distribué. Cela signifie qu'il y a un dépôt sur chaque ordinateur et qu'il y a habituellement un dépôt "officiel" dans lequel les gens choisiront de propager leurs changements et d'en tirer parti.

Git et Mercurial sont extrêmement similaires. Je préfère le mercuriel parce que je l'ai trouvé beaucoup plus facile à utiliser. Pour une équipe de 2 personnes, je recommande Mercurial, mais ce n'est que mon avis. Si vous n'êtes pas familier avec le contrôle de version, alors vous allez encore passer votre temps à apprendre à utiliser l'une des options, mais Mercurial semblait le plus facile pour moi.

pour démarrer un dépôt Mercurial, il suffit d'ouvrir un shell et un cd dans le répertoire que vous voulez contrôler, et de taper hg init . Qui crée le référentiel. Pour tout ajouter dans le dossier dépôt, tapez hg add . . Voici quelques autres commandes diverses:

  • Pour commettre les changements locaux: hg commit -m "Descriptions of changes"
  • pour tirer à la dernière version du serveur: hg pull
  • pour pousser les changements locaux: hg push
49
répondu Conceited Code 2017-10-03 15:52:11

pour commencer, il y a la langue dans laquelle ils sont écrits. Mes expériences avec Git et Mercurial ont été très similaires, mais je sais que si je veux modifier Mercurial, je peux le faire, parce que c'est écrit en Python. Git est au moins un peu en C, ce que je ne connais pas.

Git et Mercurial sont ce qu'on appelle distribués. Chaque copie est créée égale, et ils peuvent pousser et tirer (en utilisant cette terminologie) des changements les uns des autres sur une base ad hoc. Subversion, d'autre part, se compose d'un seul dépôt central, et chaque copie de travail est un esclave de ce serveur central, poussant et tirant (commettant et mettant à jour, dans ce cas) les changements à partir de lui et lui seul.

installer Git ou Mercurial pour un couple de personnes consiste à obtenir l'accès SSH au même serveur et installer un couple de paquets. Alors que pour SVN, pour autant que je sache, vous devez configurer et exécuter une application serveur réelle sous Apache, et ensuite un certificat SSL et .htaccess, etc. pour le fixer.

pour tous mes projets personnels, je vais avec Mercurial ou Git. Si je travaillais avec une grande équipe, J'irais probablement vers Subversion parce que vous avez une authentification et un hébergement centralisés. Mais pour deux personnes, je choisirais l'une des distributions, parce qu'alors vous n'avez pas à vous mêler de l'authentification et de l'hébergement centralisés. :- )

16
répondu jacobbaer 2010-07-06 02:02:46

Git et Mercurial sont assez semblables (mais assez différents pour justifier la prudence). SVN, par contre, est très différent: les deux premiers sont des VCSs distribués, donc ils n'ont pas besoin d'un serveur central, contrairement à SVN. En général, de nombreux projets se dirigent vers des systèmes distribués.

pour votre petit projet, vous êtes probablement mieux avec Git ou Mercurial. Celui que vous choisissez est essentiellement une question de goût, bien que je préfère Git moi-même (et est beaucoup plus familier avec elle). Vous n'avez pas besoin de configurer un serveur du tout: vous pouvez pousser/tirer des changements à travers SSH ou même envoyer des correctifs les uns aux autres (cela peut être fait directement à partir du VCS, mais c'est une sorte de tracas). Vous pouvez configurer un serveur central à tout moment, et toutes les modifications seront là. Vous pouvez utiliser par exemple GitHub ou Gitorious pour héberger votre projet (si vous allez avec Git, Je ne sais pas à propos de Mercurial).

6
répondu goffrie 2010-07-06 02:06:46