Pourquoi devrais-je utiliser le contrôle de version?
Je lisais un blog où l'auteur dit ce
"Code n'existe pas, sauf si elle est cochée, dans un système de contrôle de version. Utiliser le contrôle de version pour tout ce que vous faites. Tout contrôle de version, SVN, Git, CVS même, de la maîtriser et l'utiliser."
Je n'ai jamais utilisé toute sorte de contrôle de version et je ne trouve pas ça super. J'ai googlé et la regarda avant, mais j'ai juste besoin de le mettre dans l'enfance termes, si vous s'il vous plaît.
Comme je le comprends aujourd'hui, les choses comme SVN sont pour stocker votre code en ligne pour un groupe d'utilisateurs ou à d'autres développeurs d'avoir accès à la même base de code. Une fois que vous mettez à jour du code, vous pouvez soumettre la nouvelle version et la SVN vous conservez des copies de l'ancien code, ainsi que les nouvelles mise à jour.
Est-ce l'idée de base de ou suis-je complètement tort?
Si j'ai raison, alors il pourrait ne pas être beaucoup si j':
- N'ont pas d'autres personnes à travailler sur le code.
- Prévoyez de ne pas laisser les autres avoir le code.
- vous voulez dire que vous étiez en train de lire "le codage de l'horreur"...
- non, je lisais un post sur reinholdweber.com
- C'est un phénomène étrange que de nombreux développeurs (généralement au début de leur carrière) sont de cet avis, et c'est seulement lorsque vous forcer à utiliser la source de contrôle que les avantages de commencer à démêler dans leurs têtes.
- J'ai honte de penser comme ca il y a quelques années (lycée). Je pouvais-je faire quelque chose de nouveau est toujours un mystère pour moi.
- s/je pourrais/Comment pourrait
- J'utilise phpdesigner pour un IDE et il a un support pour 1 intitulé Tortoise SVN, je vais très certainement se pencher sur ces, il ne sonne comme quelque chose que je ne pourrai pas vivre avec après j'apprends à l'utiliser.
- Les mains qui ne partage pas Martinho honte. 🙂
- Je suppose que tu veux dire "sans"
- J'ai été à la programmation pour les 35 ans et n'ont jamais eu besoin de la version de contrôle la plupart sont en train de parler. Mes sauvegardes sont basés sur le cloud et 100% automatisé et synchronisés sur l'ensemble de mes systèmes de développement. Je n'ai jamais de commettre quoi que ce soit. Chaque fois que j'enregistre un fichier, il crée automatiquement une version qui est sauvegardé dans le nuage. Il est beaucoup plus facile et plus rapide de le faire de cette façon il n'y a pas une autre couche de la manière qui me ralentit vers le bas et j'ai toujours le risque de perdre de code entre les commet. Sans un système de contrôle de version, je n'ai jamais eu ce problème et n'ont jamais perdu le code.
- Vous n'avez jamais besoin de branche ou de fusion? Jamais eu besoin de revenir un groupe de modifications? N'a jamais voulu balise d'une libération? N'a jamais travaillé avec un autre développeur? Vous avez été de synchronisation vers le cloud il y a 35 ans, bien avant il y avait un nuage? Les sauvegardes et le contrôle de version résoudre les différents problèmes. Il n'y a aucune raison que vous ne pouvez pas sauvegarder votre code de travail avec Google Drive ainsi que de la stocker dans un dépôt Git.
- Ne même pas savoir ce qu'est une succursale ou de la fusion. J'écris du code lignes pures, il n'y a qu'en avant, pas sur le côté. Pour revenir je annuler ou de charger une sauvegarde (ce qui arrive presque jamais). Aucune idée de ce qu'est une balise d'une version ou pourquoi je voudrais l'utiliser. D'autres développeurs seulement gâcher mon code, je le fais de moi-même. Si quelqu'un a une idée, qu'ils peuvent le faire et je vais envisager de mettre en œuvre. Maintenant, je synchroniser dans le cloud, avant je faisais lecteur USB sauvegardes ou de lecteur de disquette avant que. Je vois simplement pas besoin d'une couche qui vient ralentit les choses.
- Quelqu'un spectacle de @TimEckel une bissection, où le contrôle de version comme par magie points vous à un de trois, changement de gamme d'il y a trois mois et dit "le bug a été introduit ici." Esprit=soufflé.
- vous êtes toujours à l'aide d'un contrôle de version, un autre type avec moins de fonctionnalités.
- Vous avez une très étroite d'esprit à la compréhension du développement de logiciel. Le contrôle de Version est de loin le plus stimuler la productivité de l'outil dans le logiciel. Il vous donne la responsabilité, la capacité de se rappeler des changements passés et, en général, quelques bonnes options de sauvegarde. L'enfer c'est même génial si vous la seule personne à travailler sur le code, vous pouvez revenir quand vous tirez vous-même sur le pied. Grandir et apprendre au moins un.
Vous devez vous connecter pour publier un commentaire.
Avez-vous déjà:
Dans ces cas, et sans doute d'autres, un système de contrôle de version devrait rendre votre vie plus facile.
Pour paraphraser un ami: Un exemple d'outil pour une civilisation de l'âge.
diff
de vérifier les changements.Même si vous travaillez seul, vous pouvez bénéficier de la source de contrôle. Entre autres, pour ces raisons:
Vous n'avez pas de perdre quoi que ce soit. Je n'ai jamais encore été commenté code. J'ai simplement le supprimer. Il n'a pas l'encombrement de mon écran, et il n'est pas perdu. Je peux le récupérer par la récupération d'un ancien commit.
Vous pouvez expérimenter à volonté. Si ça ne résout pas le problème, de revenir.
Vous pouvez regarder les versions précédentes du code pour savoir quand et où les bugs ont été introduits.
git coupent
est grande à cet égard.Plus de fonctionnalités "avancées" comme les branches et la fusion laissez vous disposez de plusieurs lignes parallèles de développement. Vous pouvez travailler dans deux simultanée des caractéristiques sans interférence et de passer de l'un à l'autre sans trop de tracas.
Vous pouvez voir "ce qui a changé". Cela peut sembler basique, mais c'est quelque chose que je trouve moi-même la vérification de beaucoup. J'ai très souvent de commencer mon one-man-flux de travail avec: qu'ai-je fait hier?
Simplement aller de l'avant et de l'essayer. Commencez lentement avec les fonctions de base et en apprendre d'autres, comme vous allez. Vous trouverez bientôt que vous n'aurez plus jamais envie de revenir à "l'âge des ténèbres" de pas de VCS.
Si vous voulez un local VCS vous pouvez configurer votre propre serveur subversion (ce que j'ai fait dans le passé), mais aujourd'hui, je vous conseille d'utiliser
git
. Beaucoup plus simple. Simplementcd
à votre répertoire de code et l'exécuter:Bienvenue au club.
De contrôle de Version est l'un des rares outil que je voudrais dire, c'est absolument nécessaire, même si vous êtes seulement en l'utilisant comme un solo de développeur. Certaines personnes disent que c'est un outil qui vous fait vivre et mourir par l', je suis d'accord avec cette affirmation.
Vous avez probablement utiliser le contrôle de version dès maintenant, même si vous ne le connaissez pas. Vous disposez de tous les dossiers qui disent "XXX Code Php (décembre)" ou "XXX.php.bak.2"? Ces sont formes de contrôle de version déjà. Un bon système de contrôle de version prendra soin de cela pour vous automatiquement. Vous serez en mesure de revenir à n'importe quel point dans le temps (que vous avez données archivés) et être en mesure de voir une copie exacte des données.
En outre, si vous adopter un système comme subversion, et l'utilisation d'un dépôt distant (comme celui sur un serveur que vous possédez), vous aurez un endroit pour garder tout votre code. Besoin d'une copie de votre code quelque part d'autre? Pas de problème, il suffit de le vérifier. Panne de disque dur à la maison? Pas un problème (au moins avec votre code source).
Même si vous n'utilisez pas de contrôle de version maintenant, vous serez susceptibles de l'utiliser à un moment plus tard dans votre carrière et vous pourriez bénéficier de devenir plus à l'aise avec les principes de maintenant.
Même en travaillant seul, a ce jamais arrivé? Vous exécutez votre application, et quelque chose ne fonctionne pas et vous dire "qui a fonctionné hier, et je jure que je ne touche pas que la classe/méthode." Si vous êtes à la vérification dans le code régulièrement, une version rapide diff permettrait de voir exactement ce qui a changé dans la dernière journée.
Voici un scénario qui peut illustrer l'utilité du contrôle de code source, même si vous travaillez seul.
Le scénario ci-dessus montre que le contrôle de la source peut être un bon outil, même si vous travaillez en solo.
Pour le travail en solo, de Subversion ou Git est recommandé. Chacun est libre de préférer l'un ou l'autre, mais l'un des deux est clairement mieux que de ne pas utiliser du tout de contrôle de version. Les bons livres sont "Pragmatique de Contrôle de Version à l'aide de la Subversion, 2e Édition" par Mike Mason ou "Pragmatique De Contrôle De Version Avec Git" par Travis Swicegood.
Auteur Original: Le Projet De Loi Karwin
Même comme un seul développeur de contrôle de la source offre un grand avantage. Il vous permet de stocker votre code d'histoire et de revenir à des versions précédentes de votre logiciel à tout moment. Cela vous permet intrépide souplesse d'expérimenter parce que vous pouvez toujours restaurer une autre version de votre code source a été de travail.
C'est comme avoir un géant de bouton "annuler" tout le chemin du retour à votre première ligne de code.
De contrôle de Version est presque impossible de vivre sans, après vous commencez à l'utiliser. Il est indispensable si plusieurs développeurs travaillent sur la même base de code...mais aussi très utile pour un seul développeur.
Il assure le suivi des changements dans votre code et vous permet de restaurer les versions précédentes. Il vous permet d'expérimenter avec la connaissance que si quelque chose se brise, vous pouvez annuler vos modifications.
Vous gagnez de sécurité (dans le sens d'avoir un back-up de votre code) et la gestion des versions de votre code (en supposant que vous obtenez dans une habitude de commettre votre change souvent). Les deux sont de très bonnes choses, même si personne d'autre ne finit jamais de travail sur le code avec vous...
De contrôle de Version est idéal pour vérifier les versions précédentes, même si vous travaillez seul. Par exemple, si vous supprimez accidentellement un code ou un fichier, vous pouvez le récupérer; ou vous pouvez comparer les versions précédentes de voir pourquoi un nouveau bug s'est glissé dans. Il est également bon si vous êtes une personne qui travaille dans de multiples endroits.
Mon préféré est git.
Il y a un certain nombre de raisons pour utiliser le contrôle de version, même si vous êtes la seule personne qui ne sera jamais toucher au code.
Si vous conservez votre code sous contrôle de version, alors il est vraiment facile de voir les fichiers que vous avez modifié (ou qui l'ont oublié à ajouter à la ligne de base).
Quelque chose que personne d'autre ne semble avoir explicitement mentionné, c'est le marquage ou de l'étiquetage, de communiqués de presse. Si vous avez un client à l'aide de la version 1 de votre logiciel, et vous êtes occupé à travailler sur la version 2 que voulez-vous faire lorsque le client signale un bug et vous avez besoin pour construire la version 1.1?
Un système de contrôle de source vous permettra de l'étiquette de chaque nouvelle version, vous faites de sorte que vous pouvez revenir plus tard, de faire le point (et le fusionner corrigé dans la nouvelle version 2 du code) et de faire une nouvelle version, sans se soucier de ce que vous pourriez accidentellement livrer quelque chose qui n'est pas prêt.
Source de contrôle est un élément essentiel de développement moderne. Si vous ne l'utilisez pas (même pour les projets personnels comme le plus d'expérience que vous avez, le mieux), vous êtes en train de faire quelque chose de mal.
Généralement l'une des premières questions que j'ai poser lors de l'être interviewé pour un emploi est "Qu'utilisez-vous pour le contrôle de la source?" Jusqu'ici, un seul lieu a dit "Rien", mais ils avaient l'intention de le corriger "Réel dès maintenant..."
Le fait que d'autres développeurs de participer ou non est totalement orthogonal à la nécessité d'un système de contrôle de version.
Vous pouvez être le seul développeur, mais encore profiter des avantages suivants:
Maintenant, si vous avez un groupe qui se développe sur la même base de code de contrôle de version est encore plus nécessaire pour
Quand il n'y a plus de gens impliqués, il est plus important de savoir quel outil de contrôle de version que vous choisissez, en fonction du style de développement.
Il est aussi sur la sauvegarde de l'ancien fichier que pourquoi il est appelé "Subversion". Ainsi, vous pouvez gérer plusieurs versions de votre travail dans lequel vous pouvez revenir en arrière (revenir) et de gérer la mise en œuvre différente de celui-ci (ramification).
Vous pouvez trouver que vous avez eu une version de travail de votre programme.
Vous décidez d'ajouter quelques nouvelles fonctionnalités sur une période de temps et vous libérer que.
Vous commencez à obtenir des rapports de bogue affectant certains code que vous avez pensé que vous n'y touchez pas.
En utilisant SVN, par exemple, vous pouvez revenir à une version antérieure, et vérifier pour voir si le nouveau bogue. Une fois que vous trouver une version qui a introduit le bug, il sera plus facile de le fixer comme vous pouvez le comparer à la version qui a travaillé à ce qui n'a pas de travail et voir ce qui a changé, alors il va affiner la recherche.
De contrôle de la Source a de nombreuses utilisations, même si vous êtes le seul développeur.
Dirait que vous cherchez quelque chose d'un peu plus de lumière-poids. Découvrez Mercurial (impressionnant ouvrage de référence). Je l'utilise pour tout, à partir du code source de la correspondance personnelle.
Certains avantages:
Même si vous n'avez pas été dans une situation où vous avez besoin d'une ancienne version de votre programme, d'avoir une source de contrôle vous donne plus de confiance pour faire de changements majeurs.
Je me suis fait plus agressif refactoring après l'aide de la source de contrôle parce que j'ai toujours su qu'une version de travail peut être facilement restauré.
J'ai aussi commencé que récemment à s'intéresser dans le contrôle de version. Dans les systèmes de contrôle de version, vous avez la notion de référentiel pour votre code. Une multitude de nouvelles commandes shell obtenir appris très rapidement, de sorte que vous pouvez interagir avec ce référentiel.
Une fois que vous enregistrez votre code dans un fichier, vous pouvez alors commettre à votre projet de référentiel. Comme vous développer votre code et validez vos modifications du référentiel développe une série de révisions. Vous pouvez accéder à l'un de ces par vérifier une révision. Si vous travaillez seul, il est peu probable que vous allez faire beaucoup de la vérification, à moins que vous perdez vos fichiers de code ou de vouloir travailler sur une machine différente. Dans ces cas, vous aurez généralement découvrez la dernière révision de tous les fichiers.
Pour ma part, je n'ai plus de garder les fichiers ou les dossiers nommés "project_old" quand je décide de revoir quelque chose. Toutes les modifications que je fais sont stockés de manière incrémentale et je vais toujours être en mesure de revenir en arrière à un projet qui a travaillé comme un tout. J'ai rarement utiliser FTP pour déployer maintenant parce que je viens de caisse mon code via ssh. Seulement les fichiers que j'ai modifiés sont téléchargés et si j'ai besoin de les charger sur le serveur, le terminal est déjà là.
J'ai trouvé cette discussion sur GIT pour être vraiment instructif; http://www.youtube.com/watch?v=4XpnKHJAok8
C'est un google talk où Linus Torvalds a fait un argument pour l'utilisation d'un système de contrôle de version sur l'autre. En agissant de la sorte, il explique comment ils fonctionnent à l'aide de concepts et compare ensuite les différentes façons de les mettre en œuvre.
Vous voudrez probablement quelque chose comme subversion, même si vous travaillez par vous-même de sorte que vous avez un historique de toutes vos modifications. Vous voulez peut être voir ce qu'un morceau de code a regardé comme il était une fois un temps pour se rappeler pourquoi vous avez fait un changement.
Avoir la source de contrôle est également utile lorsque vous vérifiez dans souvent. Si vous signez souvent, vous aurez toujours être en état de revenir trop souvent. De nombreuses fois, vous pourriez commencer à aller vers le bas un chemin pour résoudre un problème et ensuite de réaliser que c'était le mauvais chemin à parcourir. De nombreuses fois, vous pouvez simplement garder à aboyer dans le mauvais chemin et à la fin de la construction d'une terrible solution uniquement parce que vous ne voulez pas perdre tout votre travail. En signant souvent, le dernier point de "bonheur" n'est pas loin, donc même si vous allez dans le mauvais chemin, vous pouvez toujours revenir et d'essayer à nouveau et de le rendre plus élégant et simple de la solution. Qui est toujours une bonne chose de sorte que vous pouvez comprendre et à maintenir ce que vous avez écrit dans l'avenir.
Ça dépend de la taille du projet et combien de fois vous changez d'avis à propos de certaines de ses parties. Pour les petits projets où vous êtes quelque chose de fait dans un mode linéaire, le contrôle de version est probablement ne va pas être d'une grande aide (si vous avez accidentellement supprimé ou corrompu un fichier sans le contrôle de version, vous serez en pleurant).
Mais il y a quelques semaines, j'ai rencontré un ami qui a écrit un énorme projet de loisirs sur son propre. Il y a dix ou vingt exemplaires de son code, avec des suffixes comme "X1", "X2", "test", "plus vite" et ainsi de suite.
Si vous avez pris plus de deux copies de votre code, vous besoin de contrôle de version. Un bon système de contrôle de version permet d'annuler une modification que vous avez fait il ya un moment sans défaire les trucs que vous avez fait après avoir fait ce changement. Il vous permet de voir quand certaines modifications ont été apportées. Il vous permet de diviser votre code en deux "chemins" (par exemple un pour tester une nouvelle idée, l'autre pour garder votre "essayés et approuvés par le" code de sécurité jusqu'à ce que vous avez terminé de tester) et puis les fusionner ensemble.