125 votes

Pourquoi devrais-je utiliser le contrôle de version ?

Je lisais un blog dont l'auteur disait ceci .

"Le code n'existe pas tant qu'il n'est pas enregistré dans un système de contrôle de version. Utilisez le contrôle de version pour tout ce que vous faites. N'importe quel contrôle de version, SVN, Git, même CVS, maîtrisez-le et utilisez-le."

Je n'ai jamais utilisé de contrôle de version et je ne le trouve pas si génial. J'ai fait des recherches sur Google et j'ai déjà examiné la question, mais j'ai besoin d'une explication en termes simples pour les enfants, si vous voulez bien.

D'après ce que je comprends actuellement, les choses comme le SVN servent à stocker votre code en ligne pour qu'un groupe d'utilisateurs ou d'autres développeurs puissent avoir accès au même code. Lorsque vous mettez à jour un code, vous pouvez soumettre la nouvelle version et le SVN conservera des copies de l'ancien code ainsi que des nouveaux codes que vous mettez à jour.

Est-ce l'idée de base ou est-ce que je me trompe complètement ?

Si j'ai raison, alors ça ne sera pas très utile si je.. :

  • Ne faites pas travailler d'autres personnes sur le code.
  • Ne prévoyez pas de laisser les autres avoir le code.

4 votes

Tu veux dire que tu lisais "coding horror"...

3 votes

@jason, non je lisais un post sur reinholdweber.com

54 votes

C'est un phénomène étrange que de nombreux développeurs (généralement au début de leur carrière) aient ce point de vue, et ce n'est que lorsque vous les obligez à utiliser le contrôle de la source que les avantages commencent à s'effilocher dans leur tête.

270voto

Si. Points 10543

Avez-vous déjà :

  • Vous avez modifié un code, vous avez réalisé que c'était une erreur et vous voulez revenir en arrière ?
  • Vous avez perdu le code ou avez une sauvegarde trop ancienne ?
  • Vous avez dû maintenir plusieurs versions d'un produit ?
  • Vous voulez voir la différence entre deux (ou plusieurs) versions de votre code ?
  • Vous voulez prouver qu'un changement particulier a cassé ou corrigé un morceau de code ?
  • Vous voulez revoir l'historique d'un code ?
  • Vous voulez soumettre une modification au code de quelqu'un d'autre ?
  • Vous souhaitez partager votre code, ou laisser d'autres personnes travailler sur votre code ?
  • Vous voulez savoir combien de travaux sont effectués, où, quand et par qui ?
  • Vous souhaitez expérimenter une nouvelle fonctionnalité sans interférer avec le code en cours ?

Dans ces cas, et sans doute d'autres, un système de contrôle de version devrait vous faciliter la vie.

Pour mal citer un ami : Un outil civilisé pour un âge civilisé.

20 votes

Ce type a tout compris. Même lorsque je travaille seul sur des projets, je préfère avoir un contrôle de version en cours d'exécution. La démo entièrement fonctionnelle de Perforce pour 2 utilisateurs est idéale pour cela.

3 votes

Ça semble utile jusqu'à ce que je doive l'apprendre et le maîtriser. heh

7 votes

De bons points. Cependant, notez que le contrôle de version n'est pas une sauvegarde ! Une sauvegarde est stockée sur un système/média distinct et conserve les anciennes sauvegardes pendant un certain temps (juste au cas où votre référentiel serait endommagé).

58voto

Même si vous travaillez seul, vous pouvez bénéficier du contrôle de la source. Entre autres, pour les raisons suivantes :

  • Tu ne perds rien. Je n'ai plus jamais commenté de code. Je le supprime simplement. Il n'encombre pas mon écran, et il n'est pas perdu. Je peux le récupérer en vérifiant un ancien commit.

  • Vous pouvez expérimenter à volonté. Si cela ne résout pas le problème, revenez en arrière.

  • Vous pouvez consulter les versions précédentes du code pour savoir quand et où les bogues ont été introduits. git bisect est excellent à cet égard.

  • Des fonctions plus "avancées" comme le branchement et la fusion vous permettent d'avoir plusieurs lignes de développement parallèles. Vous pouvez travailler sur deux fonctionnalités simultanées sans interférence et passer de l'une à l'autre sans trop de problèmes.

  • Vous pouvez voir "ce qui a changé". Cela peut sembler basique, mais c'est quelque chose que je me surprends à vérifier souvent. Je commence très souvent mon flux de travail individuel par : qu'est-ce que j'ai fait hier ?

Allez-y et essayez. Commencez lentement par les fonctions de base et apprenez-en d'autres au fur et à mesure. Vous vous rendrez vite compte que vous ne voudrez plus jamais revenir à "l'âge sombre" de l'absence de VCS.

Si vous voulez un VCS local, vous pouvez installer votre propre serveur de subversion (ce que j'ai fait dans le passé), mais aujourd'hui je recommanderais l'utilisation de git . Beaucoup plus simple. Tout simplement cd dans votre répertoire de code et exécutez-le :

git init

Bienvenue au club.

0 votes

C'est une bonne idée, donc il peut être local et ne doit pas être sur le web pour que tout le monde puisse le voir ? J'utilise php designer, je l'adore et il a une intégration pour Tortoise SVN, je ne suis pas sûr que ce soit un bon outil.

1 votes

Utilisez n'importe quoi pour commencer - puis, au bout d'un certain temps, lorsque vous en savez un peu plus, lisez les alternatives et essayez-en une, puis une autre, etc.

5 votes

+1 pour la balle sur le fait de ne jamais commenter le code.

18voto

Robert Venables Points 4599

Le contrôle de version est un outil rare qui, selon moi, est absolument nécessaire, même si vous ne l'utilisez qu'en tant que développeur solo. Certains disent que c'est un outil qui vous fait vivre et mourir, je suis d'accord avec cette affirmation.

Vous utilisez probablement le contrôle de version en ce moment, même si vous ne le savez pas. Avez-vous des dossiers portant la mention "XXX Php Code (December)" ou "XXX.php.bak.2" ? Ces sont déjà des formes de contrôle de version. Un bon système de contrôle de version s'en chargera automatiquement pour vous. Vous pourrez revenir en arrière à n'importe quel moment (où vous avez enregistré des données) et voir une copie exacte de ces données.

En outre, si vous adoptez un système comme subversion et utilisez un dépôt distant (par exemple sur un serveur qui vous appartient), vous disposerez d'un endroit où conserver l'ensemble de votre code. Vous avez besoin d'une copie de votre code ailleurs ? Aucun problème, il suffit de la consulter. Panne de disque dur à la maison ? Pas de problème (du moins avec votre code source).

Même si vous n'utilisez pas le contrôle de version pour l'instant, il est probable que vous l'utiliserez à un moment ou à un autre de votre carrière et vous avez tout intérêt à vous familiariser avec les principes dès maintenant.

16 votes

...ou "Copie de Copie de Copie de MonTravail"

1 votes

@spender : Exactement, c'est ce dont je me souviens des jours sombres avant que je ne commence à utiliser le contrôle de version :-)

0 votes

Cela semble très utile et mon projet actuel est assez grand, au moins 150-200 fichiers, comment cela fonctionne-t-il, j'entends "version", cela signifie-t-il comme la version 1 et la version 2, si le nombre s'incrémente, que se passe-t-il si je modifie 1 fichier et pas le reste, aurai-je 200 copies du code non modifié ou seulement des copies du fichier qui sont modifiées ?

14voto

Ed Schembor Points 2945

Même en travaillant seul, cela est-il déjà arrivé ? Vous lancez votre application, quelque chose ne fonctionne pas et vous vous dites "ça marchait hier, et je vous jure que je n'ai pas touché à cette classe/méthode". Si vous vérifiez régulièrement le code, un rapide diff de version montrerait exactement ce qui a changé au cours de la dernière journée.

0 votes

Ou bien, je tire la dernière version de mes sauvegardes qui sont créées chaque fois que j'enregistre un fichier.

0 votes

@TimEckel et d'autres personnes ont juste rétabli leurs changements :)

10voto

gbc Points 4019

Même en tant que développeur unique, le contrôle des sources offre un grand avantage. Il vous permet de stocker l'historique de votre code et de revenir à tout moment aux versions précédentes de votre logiciel. Vous pouvez ainsi expérimenter sans crainte, car vous pouvez toujours revenir à une autre version de votre code source qui fonctionnait.

C'est comme si vous disposiez d'un bouton "annuler" géant qui vous ramène à votre première ligne de code.

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