Ai-je vraiment besoin du contrôle de version?

J’ai lu sur Internet (divers sites et blogs) sur le contrôle de version. Que c’est génial et comment tous les développeurs ont besoin de l’utiliser parce que c’est très utile.

Voici la question: est-ce que j’en ai vraiment besoin? Je suis un développeur front-end (généralement juste HTML / CSS / JavaScript) et je n’ai JAMAIS eu de problème comme “Wow, mes fichiers d’hier!”. J’ai essayé de l’utiliser, installé Subversion et TortoiseSVN , je comprends le concept du contrôle de version mais … je ne peux pas l’utiliser (bizarre pour moi).

OK, alors … Est-ce que c’est mauvais? Je travaille habituellement seul (pigiste) et je n’avais aucun client qui m’a demandé d’utiliser Subversion (mais il n’est jamais trop tard pour cela, non?). Alors, devrais-je commencer et avoir du mal à apprendre à utiliser Subversion (ou quelque chose de similaire?) Ou est-ce juste une perte de temps?


Question connexe: Bonnes excuses pour ne pas utiliser le contrôle de version .

Voici un scénario qui peut illustrer l’utilité du contrôle de source même si vous travaillez seul.

Votre client vous demande de mettre en œuvre une modification ambitieuse du site Web. Cela vous prendra quelques semaines et impliquera des modifications sur de nombreuses pages. Vous arrivez au travail.

Vous avez terminé cette tâche à 50% lorsque le client appelle et vous demande de supprimer ce que vous faites pour apporter une modification urgente mais plus mineure au site. Vous n’avez pas fini avec la tâche plus importante, elle n’est donc pas prête à être mise en service et le client ne peut pas attendre le moindre changement. Mais il souhaite également que le changement mineur soit intégré à votre travail pour le plus grand changement.

Peut-être travaillez-vous sur une tâche importante dans un dossier séparé contenant une copie du site Web. Maintenant, vous devez déterminer comment effectuer les modifications mineures de manière à pouvoir les déployer rapidement. Vous travaillez avec acharnement et vous le faites. Le client rappelle les demandes de raffinement supplémentaires. Vous faites cela aussi et vous le déployez. Tout est bien.

Maintenant, vous devez le fusionner dans le travail en cours pour le changement majeur. Qu’avez-vous changé pour le travail urgent? Vous travailliez trop vite pour garder des notes. Et vous ne pouvez pas simplement différencier facilement les deux répertoires maintenant que les deux ont des modifications par rapport à la ligne de base à partir de laquelle vous avez démarré.

Le scénario ci-dessus montre que le contrôle de source peut être un excellent outil, même si vous travaillez en solo.

  • Vous pouvez utiliser des twigs pour travailler sur des tâches à plus long terme, puis fusionner la twig dans la ligne principale lorsqu’elle est terminée.
  • Vous pouvez comparer des ensembles de fichiers entiers à d’autres twigs ou à des révisions antérieures pour voir ce qui est différent.
  • Vous pouvez suivre le travail au fil du temps (ce qui est excellent pour la génération de rapports et la facturation au passage).
  • Vous pouvez récupérer toute révision d’un fichier en fonction de la date ou d’un jalon que vous avez défini.

Pour un travail en solo, Subversion ou Git est recommandé. N’importe qui est libre de préférer l’un ou l’autre, mais l’un ou l’autre est clairement meilleur que ne pas utiliser de contrôle de version. Les bons livres sont ” Pragmatic Version Control utilisant Subversion, 2nd Edition ” par Mike Mason ou ” Pragmatic Version Control Using Git ” par Travis Swicegood.

Il y a beaucoup d’avantages, oui vous en avez besoin.

  • Quels outils / techniques peuvent bénéficier à un développeur solo?
  • Meilleur contrôle de version pour développeur seul

Vous n’avez pas besoin de contrôle de version, pas plus qu’un artiste trapézoïdal n’a besoin d’un filet de sécurité. C’est comme sauvegarder votre disque dur – la plupart du temps, cela semble redondant car rien ne se passe, mais ce sera finalement nécessaire. Il n’y a pas de maybes ici. Ça va arriver. Et vous ne pouvez jamais prévoir quand et le passé est un mauvais indicateur quant à la date à laquelle cela se produira. Cela ne se produira qu’une seule fois dans le futur, mais même si vous savez que cela se produira une fois que vous ne saurez pas à quel point ce sera grave.

Oui!

Fais le. Ça ne te fera pas de mal ..

Je passe habituellement de Laptop à PC et il est absolument génial d’avoir votre code quelque part dans un repository central.

Parfois, il est bon de revenir à la dernière révision, car vous avez foiré quelque chose qui serait trop difficile à corriger.

Le plus gros avantage qui manque est la possibilité de reproduire le code source qui a généré une ancienne version.

Au moment de la construction, vous marquez le contrôle de source avec ‘Build 4.26’. Le lendemain, vous commencez à coder la version 4.27. Trois mois plus tard, lorsqu’un client déclare: “J’utilise Build 4.26, et il y a un bogue dans la fonctionnalité Frickershaw. Je ne peux pas passer à une autre version en raison de certaines modifications apscopes aux formats de fichiers de la version 4.27. Y at-il tout ce que vous pouvez faire pour moi? Je suis prêt à payer. ”

Ensuite, vous pouvez extraire une twig du code source 4.26 … corriger la fonctionnalité Frickershaw, puis reconstruire le paquet pour l’utilisateur en une heure ou deux environ. Ensuite, vous pouvez revenir à la version 4.39 et continuer à travailler.

Dans le même ordre d’idées, vous pouvez retrouver le point exact auquel un bogue a été ajouté. Testez les versions 4.25 pour le bogue, puis 4.20, puis 4.10 et finalement trouvez que le bogue a été introduit dans la version 4.12. Ensuite, vous recherchez toutes les modifications apscopes entre Build 4.11 et Build 4.12, puis vous concentrez sur la fonctionnalité Frickershaw. Vous pouvez rapidement trouver le code source du bogue sans jamais le déboguer.

Le twigment ne vous semble pas utile? Avez-vous jamais voulu essayer quelque chose pour voir si cela fonctionnerait? Je fais beaucoup de vieux trucs html / css aussi, et je trouve cela inestimable. Il n’y a littéralement aucun danger à twigr pour tester quelque chose, voir si cela fonctionne, et décider “meh” et puis simplement revenir en arrière.

Je n’ai jamais eu besoin de faire une sauvegarde (bash du bois), mais je trouve que la fonctionnalité de retour en arrière est inestimable.

Quelques avantages en tant que pigiste:

  • Sachez exactement ce que vous avez changé dans chaque fichier et quand (tant que vous vous enregistrez souvent)
  • Retour à n’importe quelle version de votre passé. Surprenant combien de fois cela est précieux.
  • Suivre un ensemble de modifications sous forme de “version”. De cette façon, vous savez ce que chaque client utilise actuellement et ce qui est en développement.
  • Sauvegarde
  • La possibilité de partager facilement un projet si vous n’êtes soudainement pas en solo

Essayez un DVCS comme Git ou Bazaar . Ils sont incroyablement faciles à configurer, faciles à utiliser et offrent toutes les fonctionnalités importantes de Subversion, CVS, etc.

La clé est que vous pouvez revenir à une version de travail lorsque vous cassez quelque chose, ce qui est souvent beaucoup plus rapide que la suppression manuelle des modifications.

Je n’embaucherais pas un entrepreneur sans qu’ils s’intègrent à nos processus. Ils auraient à accéder au code via notre SVN, et il est peu probable qu’ils soient payés sans satisfaire aux exigences des tests d’unité et de révision du code.

En cas de sous-traitance, je ferais une solide expérience des modèles VSS (check-in / out) et CVS (fusion et conflit).

Travailler seul, vous avez une grande opportunité de jouer et d’apprendre au plus tard – je vais essayer Git.

En tant que développeur indépendant, vous pouvez considérer le contrôle de code source comme une annulation illimitée, qui fonctionne sur plusieurs sessions et redémarre.

Un avantage mineur du contrôle de code source est que je travaille sur plusieurs ordinateurs de développement. Il est facile de déplacer mon travail entre les machines.

Le plus grand avantage à mon avis a déjà été répertorié. Cela me permet de dormir la nuit en sachant que si nous devons revenir sur un changement, ce sera assez facile.

Je pense que le principal avantage de passer d’un système de fichiers “garder toutes les versions” à un système de contrôle de code source réside dans le fait que sccs ajoute une structure à toutes les versions que vous avez gardées de tous ces fichiers et vous fournit des enregistrements de “Quel était l’état cohérent de l’ ensemble du système de fichiers au point X”.

En d’autres termes, “quelle version du fichier A va avec quelles versions de B, C, D, …”.

Et une reflection après coup (¡!): L’acte spécial consistant à commettre ou à vérifier vous fait penser à «qu’est-ce que c’est?», Et le message de journal qui en résulte peut, espérons-le, servir de mémoire …

La réponse littérale à cette question est non, vous n’avez pas besoin du contrôle de version.

Vous faites, cependant, VOULEZ le contrôle de version, même si vous ne le savez pas.


Cela dit, de nombreux outils SCM peuvent être mystérieux ou carrément désagréables à utiliser jusqu’à ce que vous traversiez la barrière Grok, alors revenons un peu en arrière:

“Cependant, vous voulez un contrôle de version EASY-TO-USE.” Et c’est parti … téléchargez une bande de clients visuels recommandés et donnez-leur un tourbillon, puis essayez les cartes les mieux adaptées à votre façon de penser.

Ce qui conduit à la question que vous vouliez poser:

Pourquoi est -ce que je veux utiliser le contrôle de version? ”

Réponse: le contrôle de version vous permet d’être SANS FEAR!

Oui vous en avez besoin

À tout le moins, pour une boutique de développeur unique, vous devez déplacer le code dans un répertoire ProjectName-Date-Time plusieurs fois par jour.

Autrement dit, écrivez un script qui sauvegardera automatiquement votre répertoire de travail au déjeuner et au moment de quitter, sans écraser les autres sauvegardes.

Cela peut évoluer assez rapidement, si bien que vous souhaiterez éventuellement ne sauvegarder que les différences entre les fichiers, ce que fait une application VC.

Puisque vous travaillez habituellement seul, je dirais que c’est une bonne idée d’utiliser le contrôle de version. L’un des principaux avantages que j’ai trouvé en utilisant le contrôle de version (Subversion dans mon cas), c’est que lorsque je travaille seul, cela me donne plus confiance pour essayer une nouvelle approche du problème. Vous pouvez toujours accéder à une nouvelle méthode ou à un nouveau cadre pour résoudre le problème et voir si vous l’aimez mieux. S’il s’avère que cette twig ne fonctionne pas, vous pouvez simplement l’abandonner et revenir à l’ancienne méthode. Cela facilite également l’essai des différentes solutions côte à côte.

Donc, si vous avez déjà vu une approche différente pour résoudre un problème et que vous vouliez l’essayer, j’utiliserais certainement le contrôle de version comme un outil pour faciliter cela.

Si vous travaillez seul et effectuez des sauvegardes régulièrement, VC peut ne pas être nécessaire (à moins que vous ne comptabilisiez vos sauvegardes en tant qu’historique de version). Dès que vous commencez à travailler avec un autre développeur, vous devez obtenir le contrôle de version afin de ne pas écraser le travail de l’autre.

Même si vous n’en avez pas besoin pour le moment, vous en aurez besoin chaque fois que vous travaillerez en équipe.

Un historique des modifications apscopes à votre code HTML / CSS / JavaScript peut être une aubaine. Le fait de pouvoir comparer votre interface avec le code un mois ou plusieurs mois auparavant peut vraiment vous aider à comprendre pourquoi le modèle est soudainement déformé.

De plus, si vous souhaitez ou avez besoin d’aide sur votre ou vos projets, vous disposerez d’un système simple pour dissortingbuer, suivre et déployer le contenu mis à jour.

Certainement le faire, vous vous remercierez une fois que vous vous y habituerez.

Vérification (une seule fois) Mise à jour (début de la journée) Validation (fin de la tâche / modification après le test)

C’est tout ce qu’on peut en dire. Ne commettez pas CHAQUE modification unique que vous actualisez dans le navigateur, juste celle que vous souhaitez mettre en ligne.

Pensez si cela ressemble à une sauvegarde. C’est un peu irritant jusqu’au jour où vous en avez besoin. Ensuite, la quantité de travail que vous perdez est directement proportionnelle à la fréquence de vos sauvegardes.

Un autre avantage est de pouvoir observer les anciennes méthodes que vous avez utilisées pour des choses devenues obsolètes à un certain endroit, mais qui pourraient être utiles dans d’autres. Il suffit de couper et coller l’ancien code que vous avez obtenu lors d’une comparaison.

C’est à moins que vous n’ayez envie de réinventer la roue que vous avez déjà réinventée …

Quand les choses peuvent mal tourner, elles le feront. Il est très agréable d’avoir la possibilité de faire référence à du code que vous avez peut-être supprimé il ya un mois, ou de récupérer le projet entier après une panne matérielle ou une mise à niveau.

Il peut également y avoir un point dans le futur lorsque le projet est travaillé par plus que vous. La possibilité d’empêcher (ou de contrôler) la création de twigs et la gestion des versions est indispensable dans un environnement comme celui-ci.

Doit doit doit le doit doit obligatoirement devoir. Vous devez utiliser le contrôle de version.

C’est de la plus grande importance.

Si vous ne comprenez pas pourquoi maintenant, vous le ferez un jour.

Lorsque votre client téléphone dans un état de panique parce que quelque chose est cassé sur le site en direct et qu’il s’agit d’une régression, vous serez content de pouvoir ouvrir TortoiseSVN et voir ce que vous avez fait mardi dernier à l’origine de la rupture.

C’est vraiment étrange. Depuis que j’ai commencé à utiliser le contrôle de version, j’ai parfois eu besoin de rechercher d’anciennes copies de mon code et de les utiliser. Je n’ai jamais eu besoin de le faire avant … probablement parce que l’idée de faire ne collait pas vraiment. Il est facile de ne pas remarquer les moments où vous auriez pu trouver le contrôle de version utile.

Rechercher dans un code entier. C’est une fonction géniale, principalement parce que la recherche est exécutée sur une autre machine pour que vous puissiez continuer votre travail sans être dérangé.

Ce qui est d’ailleurs la raison pour laquelle nous n’avons pas changé pour SourceGear Vault. Ça ne peut pas faire ça. Nous cherchons toujours un remplacement compatible avec SourceSafe pour … eh bien, SourceSafe. Malgré ce que tout le monde dit, cela ne nous a pas encore déçus *

* Cela peut être juste une question de temps.

Je pense que vous avez pris la bonne décision pour utiliser une sorte de contrôle de version. Pour simplifier, j’irais avec SVN (ignorez CVS car SVN est fondamentalement un “meilleur” CVS)

SVN peut travailler avec des référentiels “locaux” directement sur le système de fichiers et sur de nombreuses plates-formes, vous n’avez donc pas besoin de trop mordre dans l’infrastructure (serveurs, réseaux, etc.)

Excellente ressource pour SVN: http://svnbook.red-bean.com

Je ne connais pas grand chose au sujet de GIT, mais le fait qu’il soit open source et qu’il suscite beaucoup de partage d’idées a probablement des avantages similaires!

Emprunter une citation de quelque part: Vous n’en avez peut-être pas besoin maintenant, mais quand vous le ferez, vous serez heureux de l’avoir fait.

Bonne versioning!

Bien que vieux et brut, nous avons trouvé Microsoft Visual SourceSafe pour fonctionner. Cela fonctionne très bien pour garder l’historique des versions. Si vous ne vous souciez pas de la création de succursales, ce qui pourrait bien ne pas être le cas pour le développeur en solo, cela pourrait tout à fait convenir.

En ce qui concerne l’archivage, trouver un bon sharepoint contrôle peut être un défi, mais vérifier chaque sauvegarde ne rendra que le suivi des versions difficile.

“Ai-je vraiment besoin du contrôle de version?”

Oui. Sauf si vous écrivez un code parfait qui n’a jamais besoin d’être changé.

Un exemple: j’avais un besoin. J’ai construit une page Web, passé une journée ou deux sur la page, sa compatibilité avec la Section 508 (il y a environ 6 à 7 ans) et téléchargée sur le site Web. Ensuite, l’exigence a été radicalement modifiée. Je passe une autre journée à travailler sur la page (et les fichiers Excel Hayuge ne sont pas convertis facilement en HTML accessible). Environ une semaine plus tard, les commutateurs clients nous demandent de revenir à la version A. Le contrôle de la source aurait fait cela en 10 minutes environ. En fait, je devais souffler un autre jour% $ # ^^ & $ # sur la tâche.

Oui, vous avez besoin du contrôle de version à des fins de développement ou simplement pour stocker vos documents. De cette façon, vous pouvez revenir en arrière si vous devez le faire pour annuler les modifications ou les erreurs commises sur un code ou des documents.

Une fois que vous commencerez à travailler sur une équipe qui fait toujours référence à la mise à niveau de “composants” à partir de plusieurs appelants / applications, le contrôle de version sera absolument indispensable. Dans cet environnement, vous ne pouvez pas suivre toutes les modifications possibles.

Vous avez besoin du contrôle de version, tout comme vous avez besoin d’une assurance vie.

Vous avez besoin du contrôle de version pour gérer différentes versions de fichiers. Avec cela, vous pouvez obtenir et travailler sur les fichiers de différents endroits et cela facilite la collaboration des membres de l’équipe sur le même projet.