30 votes

Pour les projets personnels, Mercurial ou Git (ou d'autres DVCS) peuvent-ils offrir plus d'avantages que Subversion ?

Quel est le système de contrôle du code source libre le plus approprié pour les projets et les documents personnels ?

Je pense utiliser Subversion (qui m'est familier).

Caractéristique du projet de maison :

  1. Il est fort probable qu'une seule personne soit à l'origine des changements. (Il est possible qu'un jour (pas maintenant), je partage un projet avec mon ami qui se trouve dans une autre ville).

  2. Je souhaite stocker d'autres documents (fichiers non liés à la programmation)

Est-ce que Mercurial ou GIT (système de contrôle de version distribué) peuvent me donner plus d'avantages que subversion dans les projets domestiques ?

4voto

Makis Points 3861

Le partage des projets est beaucoup plus facile avec les dvcs car vous n'avez pas besoin de donner aux autres l'accès à votre ordinateur central de dépôt. Vous pouvez lui demander de créer une copie et ne pas l'autoriser à faire des commits où que ce soit si vous le souhaitez. Si vous voulez ses modifications, vous pouvez les extraire de son ordinateur pour les placer où vous le souhaitez plutôt que de l'autoriser à les pousser. De cette façon, vous pouvez, si vous le souhaitez, vérifier les modifications en premier. Vous avez le contrôle total (si vous le souhaitez).

Le principal avantage reste que vous transportez l'ensemble du référentiel dans votre ordinateur portable ! Il vous faudra peut-être un peu de temps pour comprendre ce que cela signifie réellement si vous êtes habitué à des dépôts centraux massifs et à tous les tracas qui en découlent. Bien sûr, dans de nombreuses situations, il est avantageux d'en avoir un, mais encore une fois, vous pouvez contrôler qui y a accès et quel type d'accès. Avec les vcs centralisés, ne pas permettre à quelqu'un de commiter directement dans le dépôt central signifie beaucoup de travail supplémentaire de la part d'un malheureux. Les validations devraient être faites plus ou moins à la main, alors qu'avec les dvcs, la personne responsable de la vérification du code validé peut le faire de la même manière depuis son ordinateur qu'elle le ferait avec son propre code.

Il existe des moyens d'atténuer les problèmes susmentionnés dans les vcs, mais ils nécessitent toujours une maintenance supplémentaire (créer des composants, des vues, etc. dont l'accès est contrôlé et n'autoriser les modifications que dans ces domaines). Dans git/mercurial, il n'y a pas vraiment de surcharge.

Je dirais que plus le travail est effectué en dehors du réseau de l'entreprise, plus les dvcs sont bénéfiques. Si vous avez tous un accès rapide au dépôt central et que l'on peut faire confiance à chacun pour y déposer ses modifications, alors les principaux avantages des dvcs ne sont pas si importants (bien qu'il y en ait toujours, mais pour l'instant ils sont compensés par la médiocrité des interfaces utilisateur disponibles).

3voto

1800 INFORMATION Points 55907

Je ne sais pas ce qu'il en est de mercurial, mais ce que je préfère faire dans git et qui est impossible dans subversion, c'est l'édition de l'historique. Par exemple, vous pouvez :

  1. éditer les commits précédents pour apporter des modifications à la liste des fichiers qui ont été modifiés
  2. changer l'ordre des commits précédents
  3. supprimer les commits de l'historique
  4. fusionner deux ou plusieurs commits ensemble
  5. séparer les commits
  6. ajouter les modifications ultérieures aux commits précédents

En bref, si vous pensez que vous devriez pouvoir le faire, vous le pouvez probablement. C'est très puissant, une fois que vous avez pris conscience de cette capacité, et c'est probablement plus important à bien des égards que le simple avantage distribué.

2voto

larsm Points 5337

Je tiens à souligner que Mercurial et GIT vous permettent de démarrer avec le contrôle des sources. sans avoir besoin d'un serveur et le rend facile à déplacer votre référentiel sur un autre serveur si nécessaire.

D'autres avantages ont été abordés dans les autres réponses.

2voto

akauppi Points 3125

J'avais l'habitude d'avoir un serveur subversion pour la synchronisation à domicile. Pendant quelques années, j'ai utilisé git, mais je passe maintenant à hg. La raison est principalement la simplicité. Je devrais pouvoir "maîtriser" git, mais ce n'est pas le cas.

Voici une excellent tutoriel de Joel (l'un des cerveaux de StackOverflow) sur hg.

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