Question

Je suis sur le point de démarrer un projet et je pense à l'aide de Google Code pour l'héberger. Il donne la possibilité d'utiliser Mercurial ou SVN pour le contrôle de version. Je n'ai jamais utilisé un VCS, et je voudrais savoir que l'on est plus facile de travailler avec.

Le projet comprend deux principaux programmeurs, mais quelques autres pourraient ajouter de petites quantités. Il est la plupart du temps en python et nous utilisons Emacs comme éditeur principal. Nous utilisons à la fois le système d'exploitation Windows.

Était-ce utile?

La solution

Mercurial.

Les deux systèmes seront faciles, mais Mercurial seront rapide . Vous voulez comparer les différences entre ce que quelqu'un d'autre a fait hier soir et ce que vous avez fait hier soir? Avec SVN qui va prendre quelques secondes par fichier alors qu'il parle aux serveurs de Google. Avec Mercurial, il sera à peu près instantanée.

Un couple de secondes par diff pourrait ne pas sembler beaucoup, mais les avantages d'une interface Snappy, réactif deviendra évident une fois que vous utilisez un système qui élimine (plus) de ces pauses.

Oh, et les gens peuvent bifurquer votre projet sans étant une énorme douleur dans le cul. C'est assez cool aussi.

EDIT: Mercurial ne se sent pas aussi la nécessité de frapper un dossier .svn dans chaque dossier unique dans votre projet. Ces choses sont moches (et non cachés par défaut sur Windows, comme ils seraient sur système * nix). Il y aura juste un dossier .hg à la racine de votre projet, ce qui est beaucoup plus propre.

EDIT: Une raison de plus d'utiliser Mercurial: hg bisect . Traquer un bug en 10 minutes au lieu de 2 heures parce que vous étiez en mesure de trouver la révision exacte qui a causé est génial . On dirait qu'il ya un Perl svn-bisect outil mais pas dans le noyau, et la lenteur de la mise à jour SVN entre révisions fera un processus beaucoup plus long.

Autres conseils

Si vous ne l'avez jamais utilisé un VCS avant, choisir. Les deux sera plus que suffisant pour vos besoins, et vous devrez apprendre soit à partir de zéro.

Mercurial est décentralisé comme git, mais je ne vous inquiétez pas à ce sujet trop pour une équipe de 2 programmeur, qui n'ont jamais été exposés au contrôle de source.

Choisissez soit et de l'oublier.

La réponse simple est SVN - feu TortoiseSVN et TortoiseHg et vous verrez que le premier est une certaine distance avant de celle-ci en termes d'esthétique et de la facilité d'utilisation mais je ne pense pas que la réponse simple est assez bon dans ce cas.

Si vous allez commencer à utiliser pour suggérer que Mercurial est la meilleure façon d'aller le contrôle de version pour la première fois que je serais tenté (pour tout ce que je suis actuellement beaucoup plus à l'aise avec SVN que Hg). Contrôle de version distribuée (DVCS) offre actuellement plus de flexibilité que Subversion avec sa dépendance à un référentiel central. En particulier votre capacité à commettre le code local qui est pas terminée avant de pousser les changements terminés à vos collègues. Mercurial a un « livre » de sorte que vous avez un ensemble de lignes directrices pour travailler à partir et il a généralement accepté comme un outil si le soutien par les pairs est disponible.

Ma principale préoccupation est DVCS que je considère le contrôle de version comme étant incomplète sans un serveur distinct (ou au moins sans un dépôt non sur votre boîte de dev) pour diverses raisons. Cependant, dans ce cas, vous disposez d'un référentiel central ... si cet argument est moins valide.

J'ai une question secondaire que je pense que l'on devrait viser à introduire un serveur d'intégration continue (construire et tester) dans ses projets le plus tôt possible mais encore une fois c'est quelque chose qui peut être fait avec DVCS étant donné le référentiel central partagé / .

Je pense toujours que SVN a une beaucoup à féliciter, notre référentiel de travail est et restera SVN dans un avenir prévisible (notez que je suis celui qui va décider!), Mais de même, je fais mes affaires personnelles avec Mercurial et l'apprentissage que je vais.

Si vous ne l'avez jamais utilisé un VCS, vous aurez probablement du mal / facile avec un ou l'autre. Je ne pense pas qu'il y ait des différences de principe dans ce. Une différence importante entre ces deux, cependant, est que SVN est centralisé et décentralisé Mercurial est.

Si vous travaillez où vous n'avez pas accès au réseau (avions, trains, etc.), un VCS décentralisé vous permettra de livrer vos changements au niveau local avant de vous lancer sur de nouveaux changements. Plus tard, vous synchronisez avec le référentiel central. Cela peut être pratique.

Un VCS centralisé ne permet pas. Vous pouvez, bien sûr, travailler toujours sur votre code, mais puisque vous ne pouvez pas vérifier entre les changements, vous devrez valider les modifications accumulées à la fois lorsque vous êtes de retour d'avoir accès au dépôt.

Eh bien, je pense que vous devriez utiliser SubVersion. Non pas parce que SVN est en quelque sorte mieux que Mercurial en termes fonctionnels, mais parce que SVN est très populaire et il y a beaucoup de documentation pour elle (par exemple un livre électronique gratuit), ainsi que de très bons plugins gratuits (AnkhSVN pour VS, TortoiseSVN pour l'Explorateur Windows ). Je pense que la documentation va rapidement vous lever et courir, si vous ne l'avez jamais utilisé un VCS avant ...

HTH!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top