Doublons Possibles:
Pour les projets d'accueil, peuvent Mercurial ou Git (ou d'autres DVCS) fournir plus d'avantages par rapport à la Subversion?
Quelles sont les forces et les faiblesses de Git, Mercurial, et le Bazar?Quelles sont les différences entre ces système de contrôle de source? Qui est le meilleur pour un petit 2 personnes projet?
Réponses
Trop de publicités?SVN est différent de Git et Mercurial, qu'il est un référentiel unique que tous les utilisateurs de le tirer et de s'engager.
Git et Mercurial avoir un modèle distribué. Cela signifie qu'il ya un espace de stockage sur chaque ordinateur et qui leur est généralement un "Officiel" référentiel que les gens vont choisir de livrer leurs changements et de tirer parti de.
Git et Mercurial sont très similaires. Je préfère Mercurial parce que je l'ai trouvé beaucoup plus facile à utiliser. Pour 2 personne de l'équipe, je recommanderais Mercurial, mais c'est juste mon avis. Si vous n'êtes pas familier avec le contrôle de version, alors vous êtes toujours va être obligé de 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 tout ce que vous avez à faire est d'ouvrir un shell et cd dans le répertoire que vous voulez avoir le contrôle de version dans et tapez hg init
. Qui crée le référentiel. Pour ajouter tous les éléments dans le dossier pour le dépôt, tapez hg add .
. Voici quelques autres commandes diverses:
- De commettre les changements locaux:
hg commit -m "Descriptions of changes"
- À tirer vers la dernière version du serveur:
hg pull
- Pour pousser les variations locales:
hg push
Pour commencer, il y a la langue qu'ils sont écrits dans. Mon expérience avec Git et Mercurial ont été très similaires, mais je sais que si je veux tordre Mercurial, je peux le faire, parce que c'est écrit en Python. Git est au moins un peu en C, je ne suis pas familier avec.
Git et Mercurial sont ce qu'on appelle distribués. Chaque exemplaire est pas créés égaux, et ils peuvent pousser-tirer (à l'aide de la terminologie) les changements les uns des autres sur une base ad-hoc. Subversion, d'autre part, se compose d'un unique référentiel central, et chaque copie de travail est un esclave que le serveur central, en poussant et en tirant (validation et la mise à jour, dans ce cas), des changements d'elle et elle seule.
L'installation de Git ou Mercurial pour un couple de personnes consiste à avoir un accès SSH au serveur et l'installation d'un couple de paquets. Alors que pour SVN, comme je sais que vous avez besoin pour configurer et exécuter un serveur d'application sous Apache, puis le désordre avec un certificat SSL et .htaccess, etc. pour le fixer.
Pour tous mes projets personnels, je aller avec Mercurial ou Git. Si je travaillais avec une grande équipe, je serais probablement aller à la Subversion parce que vous obtenez la centralisation de l'authentification et de l'hébergement. Mais pour deux personnes, je choisirais l'un des distribué, car alors vous n'avez pas de gâchis avec la centralisation de l'authentification et de l'hébergement. :-)
Git et Mercurial sont assez similaires (mais suffisamment différents pour justifier la prudence). SVN sur l'autre main est tout à fait différent: les deux premiers sont distribués Vcs, de sorte qu'ils ne nécessitent pas de serveur central, tandis que SVN n'. En général, de nombreux projets sont en mouvement 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 je suis beaucoup plus familier avec elle). Vous n'avez pas besoin de configurer un serveur à tous: vous pouvez pousser/tirer des modifications via SSH ou même envoyer des patchs pour les uns les autres (ce qui peut être fait directement à partir de la VCS, mais 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 accueillir votre projet (si vous allez avec Git, je ne sais pas Mercurial).