Quelle est la valeur de l'utilisation du contrôle de version?

19

Je suis nouveau dans le contrôle de version (actuellement en utilisant SVN), mais je ne comprends pas comment cela aide les développeurs. Que fait le contrôle de version qui le rend utile dans un environnement de développement?

John Ryan
la source
4
Il suffit de lire l'excellente série de HOWTO sur le contrôle des sources d'Eric Sink: ericsink.com/scm/source_control.html . Pour le reste, il n'y a pas grand-chose à répondre ici ou à discuter.
Deckard
4
Le contrôle des sources est l'une de ces choses qui semble inutile tant que vous n'en avez pas besoin. Ensuite, vous réalisez que vous ne pouvez pas vous en passer. Malheureusement, il est alors trop tard. Un peu comme une assurance contre les inondations, sauf que je trouve que le contrôle des sources est beaucoup plus utile.
Rein Henrichs
2
@rahmanisback vous le voulez juste après avoir fait File | New Project ... vous en avez besoin dès que vous avez> 1 développeur sur le projet (ma ligne standard est> 0 développeur - et je crois que c'est plus vrai que jamais)
Murph
8
Travailler sans contrôle de version est un peu comme supprimer la commande "Annuler" du traitement de texte que vous utilisez pour taper votre essai, ou supprimer tous les gommes et les fluides de correction de votre bureau.
rwong
2
@rahmanisback Dès que vous supprimez accidentellement un fichier ou perdez des données, par exemple. @rwong belle analogie.
Rein Henrichs

Réponses:

21

VisualSVN et TortoiseSVN ne sont que des clients UI pour le serveur SVN. Le serveur SVN est un système de contrôle de source / version. Le système de contrôle de version est un atout clé pour tout développement réel car il stocke les versions de vous vos codes sources. Lorsque vous utilisez le système de contrôle de version, vous ne conservez qu'une copie locale des codes source. La copie principale est stockée sur le système de contrôle de version et vous validez les modifications apportées au système.

SVN permet:

  • partage facile des codes source entre toute l'équipe via le référentiel central
  • sauvegarde de vos codes source et autres fichiers de ressources liés au projet
  • garder l'histoire comment les codes source ont changé
  • vous pouvez revenir à n'importe quelle version conservée dans l'historique
  • vous pouvez comparer les changements entre les versions
  • vous pouvez voir qui a apporté des modifications
  • vous pouvez verrouiller le fichier pour un accès exclusif afin que personne d'autre ne puisse travailler sur le fichier
  • vous pouvez voir qui travaille sur un fichier de code source ou qui a verrouillé le fichier
  • vous pouvez fusionner les modifications en cas de travail parallèle sur le même fichier
  • vous pouvez voir les commentaires associés aux modifications validées
  • avec des outils supplémentaires, vous pouvez associer des modifications validées à des tâches
  • vous pouvez étiqueter / étiqueter la version pour trouver facilement par exemple des versions de production
  • vous pouvez créer du code source de branche - créer des versions parallèles où une branche peut être considérée comme la principale et une autre peut être utilisée pour tester une fonctionnalité spéciale ou pour continuer le développement de la nouvelle version du produit tandis que les correctifs de la version de production actuelle sont fixés dans le principal branche
  • vous pouvez fusionner les modifications entre les branches
  • etc.

VisualSVN est une extension de Visual Studio qui vous permet d'utiliser le référentiel SVN directement à partir de l'interface utilisateur de Visual Studio. TortoiseSVN est une extension de l'Explorateur Windows qui vous permet d'utiliser le référentiel SVN directement lorsque vous parcourez des dossiers et des fichiers.

Ladislav Mrnka
la source
+1. Haaa .. après avoir utilisé VCS pendant plus d'une décennie, il est vraiment difficile de répondre «pourquoi». Je veux dire, c'est tellement évident - mais vraiment difficile à articuler vraiment «pourquoi» la façon dont vous l'avez fait! Très bonne réponse.
Dipan Mehta
Je crois qu'AnkhhSVN fait également un travail de tueur en intégrant SVN dans Visual Studio.
Saul Delgado
6

Le contrôle de version offre un certain nombre de choses:

  • Archivez votre logiciel pour voir son état antérieur. Très utile pour trouver où un bug a été introduit.
  • Permettez à plusieurs développeurs sur le même projet de partager et de coordonner leur travail tout en évitant d'écraser les travaux des autres.
  • Soutenez la continuité individuelle et commerciale en particulier via un serveur central protégé et sauvegardé.

C'est un minimum pour tout travail de développement logiciel au-delà du simple bricolage pour voir ce qui se passe.

Je préviens toujours quiconque travaille avec un système de contrôle de version pour la première fois que l'éviter ne fait qu'engendrer des ennuis. Ils VONT courir un problème que quand ils regardent en arrière , ils VONT se rendre compte qu'il ne serait pas arrivé s'ils ont utilisé le système.

marque
la source
0

Le développeur le plus productif est seul. Un développeur solitaire n'a jamais à se soucier de la coordination avec quelqu'un d'autre. Mais dès que le projet passe au pluriel, il y a des frais généraux. Et pour chaque développeur ajouté à l'équipe, les frais généraux s'aggravent. C'est le travail du VCS d'aider à gérer cette surcharge et de minimiser les effets.

http://www.ericsink.com/vcbe/html/dvcs_private_workspace.html

Jace Browning
la source
8
Même un développeur isolé a besoin d'un contrôle de version. Le VCS ne se contente pas de "gérer les frais généraux" comme l'indique cette citation.
alroc
5
Même un développeur isolé peut se rendre compte qu'il a fait quelque chose de mal il y a une semaine et vouloir récupérer l'ancien code. Même un développeur isolé peut vouloir essayer un ensemble de refacteurs important et complexe sans risquer la base de code d'origine.
Gort the Robot
Je pense que les aspects «sauvegarde» et «restauration» du contrôle de version sont évidents pour la plupart, mais ce n'est que lorsque vous réalisez comment le contrôle de version aide à réduire les frais généraux de collaboration que quelqu'un comprend vraiment sa valeur.
Jace Browning