web-dev-qa-db-fra.com

Des raisons spécifiques pour toujours utiliser Subversion?

Je veux choisir un système de contrôle de version pour ma société. Jusqu'à présent, je sais que j'ai git, subversion et mercuriel.

Ces jours-ci, je vois que Git est le plus utilisé, alors je me suis laissé de me demander: il y aurait une raison particulière de toujours utiliser Subversion ou devrais-je aller directement à Git?

22
user1179459

Svn n'est pas mort du tout. C'est toujours en très large utilisation, et ça ne va nulle part à mite. SVN est beaucoup plus simple à utiliser que le contrôle de la version distribuée, surtout si vous n'exécutez pas de projet distribué qui besoins Contrôle de la version distribuée.

Si vous n'avez qu'un seul référentiel central (ce qui est tout ce que votre entreprise aura besoin s'il est toujours assez petit pour obtenir sans contrôle de source jusqu'à présent), il est beaucoup plus simple d'utiliser SVN pour interagir avec elle. Par exemple, avec SVN, vous pouvez extraire des changements du référentiel ou engager vos modifications locales, avec une seule opération, alors que HG et Git nécessitent deux ou trois étapes pour faire le travail équivalent.

Et avec les récentes révisions, SVN a fixé de nombreux problèmes de performance qui ont permis aux gens de préférer HG et Git. C'est nettement plus rapide maintenant que ce fut il y a quelques années, et à ce stade, il n'y a vraiment aucune bonne raison de regarder HG ou GIT pour votre projet, à moins que vous n'ayez réellement besoin des fonctionnalités avancées du contrôle de la version distribuée.

46
Mason Wheeler

Outillage client n'a pas encore été mentionné. Vous pouvez certainement tout faire avec un script de ligne de commande, mais que l'intégration de l'interface graphique peut être une véritable productivité.

Nous travaillons principalement avec Visual Studio; L'intégration dans le IDE est définitivement meilleure avec SVN qu'avec GIT en ce moment. Cela peut changer à l'avenir, mais je l'aborderais certainement dans votre décision autant que les fonctions de contrôle de la version.

Tout comme tout le reste, un système de contrôle de version n'est pas un objectif en soi, juste un outil pour vous aider où vous allez. Choisissez celui qui va vous rendre là-bas le plus rapidement basé sur votre situation.

19
njr101

Je suis un fan git. Récemment, je devais admettre que l'un des inconvénients de GIT est qu'il identifie les versions avec des hachages, comme dans l'opposé des numéros de libération de SVN. Le numéro de libération peut être facilement transmis par téléphone ou quelque chose comme ça.

Et c'est le seul pro je peux imaginer. Si vous voulez vraiment compter sur cette fonctionnalité, vous pouvez l'avoir dans une VCS distribuée et/ou centralisée Bazar . En git, il y a des balises pouvant servir le but.

Quoi qu'il en soit, je ne pouvais tout simplement pas imaginer se développer sans commutation rapide de la branche et se bloquer. Ces deux fonctionnalités ont battu Svn, où je me souviens aussi loin que la même tâche nécessitait la création et la vérification d'un arbre entier dans des répertoires distincts pour atteindre le même objectif.

Celles-ci appelées "fonctionnalités avancées du contrôle de la version distribuée" viennent avec l'heure et vous n'avez pas à les apprendre au tout début. N'ayez pas peur d'eux. Ils sont là pour vous aider, non pas pour vous mettre en chemin. Et il n'y a aucun problème à mettre en place un référentiel central pour un DVCS.

15
Rajish

"Si vous avez une tâche pouvant être effectuée sur six heures, il est préférable d'écrire un outil qui le fait dans 20 minutes, même lorsque la création de l'outil prend six heures?"

La version distribuée de la version est une bête différente pour s'attaquer. Cela nécessite un apprentissage substantiel pour chaque développeur. Si vous avez le tampon pour accueillir le processus d'apprentissage pour chaque développeur, vous devez passer à un bon système de contrôle de version distribuée. Une fois que la phase d'apprentissage est sur le contrôle de la version distribuée est beaucoup mieux que le contrôle de la version centralisée.

Le contrôle de la version distribuée semble être une éventualité. Il est là pour rester très longtemps, il est préférable que nous nous adaptions plus tôt que plus tard. Je me souviens de la même discussion lorsque SVN était nouveau et que les personnes étaient habituées à CVS, de nombreux arguments ont été donnés pour ne pas utiliser SVN, mais finalement, SVN est devenu le système de contrôle de version le plus populaire.

Si la société est bien établie avec beaucoup de code source dans le système de contrôle de la version existant, vous pouvez passer à un nouveau système, mais si la société est petite ou démarrage, le déplacement d'une nouvelle version de la version est très facile. Mais si vous vous en tenez à une version plus ancienne (dans une nouvelle configuration), vous toucherez le goulot d'étranglement quelque part à l'avenir où vous devrez éventuellement planifier une migration de contrôle de version de toute façon.

J'ai vu beaucoup de commentaires Pro Svn, mais tous ont tendance à être de la nature "SVN n'est pas mauvais" plutôt que "SVN mieux c'est mieux". Je vous recommande donc vivement de choisir une version distribuée de la version (telle que GIT) pour votre projet.

[~ # ~] Modifier [~ # ~] Avantages de Git sur SVN

  1. Aucun serveur dédié requis En fait, les deux peuvent être utilisés avec un serveur.
  2. Peut poursuivre le développement même sans connexion réseau.
  3. La gestion des succursales est beaucoup plus facile.
  4. Meilleur soutien des outils CI tels que le bambou

Quelqu'un a mentionné l'outillage (pour Visual Studio) comme une raison de s'en tenir à SVN. http://gitscc.codeplex.com/ Fournit une prise en charge GIT pour Visual Studio.

2
Apeirogon Prime

Avec SVN, vous pouvez facilement commander des parties d'un référentiel jusqu'au niveau du dossier, alors qu'avec GIT, vous obtenez tout le référentiel, y compris toute l'historique.

En fonction de la situation, cela peut avoir des avantages pour SVN

(Cela dispose également de certains grands inconvénients tels que la poubelle cachée ".svn" tout en place de votre arbre de dossier).

2
Richard Nichols

serait-il une raison spécifique d'utiliser subversion ces jours-ci?

En dehors de la prise en charge de l'outillage dans les IDes (que je n'utilise pas) - pas vraiment, non. Bien sûr, SVN peut être plus familier mais c'est à peu près la seule raison, et j'ai trouvé à la fois hg et git très facile (et très rapide) d'apprendre.

Oui, il y a tous ces guides complexes là-bas qui décrivent comment Git est trivial une fois que vous comprenez que les succursales ne sont que des endofuncteurs homéomorphiques de cartographie des sous-performances d'un espace Hilbert.1

Je ne comprends pas ça. Mais tu sais quoi? Peu importe. Vous n'avez pas besoin de savoir de ce genre de choses à utiliser Git.

Pour la plupart, GIT et HG sont faciles à utiliser et ont des avantages définitifs sur SVN. L'éléphant dans la chambre est bien sûr branchissant: les branches travaillent juste dans GIT et HG. En revanche, dans SVN, ils sont douloureux au mieux et brisés au pire (fusionnant plusieurs têtes).

Bien sûr, vous CAN toujours utiliser svn. Vous pouvez également utiliser Windows XP. Cependant, la majorité des utilisateurs qui ont essayé les deux conviennent que l'une des alternatives est considérablement supérieure.


1 Oui, je reçois que c'est une blague. Je pense.

1
Konrad Rudolph