Quelle est l'approche canonique de l'utilisation d'un VCS dès le début d'un projet?

9

Contexte

J'ai utilisé VCS (principalement git) dans le passé pour gérer de nombreux projets existants et cela fonctionne très bien. Généralement, avec un projet existant, je vérifiais chaque modification que j'apporte au code qui optimise ou modifie la fonctionnalité globale (vous savez ce que je veux dire, dans les étapes appropriées, pas toutes les lignes que je change).

Problème

Une chose à laquelle je n'ai pas eu beaucoup de pratique est de créer de nouveaux projets. Je suis en train de démarrer un nouveau projet qui va probablement grandir, mais je trouve qu'il y a beaucoup à faire et beaucoup de changements dans les premiers jours / heures / semaines / la période suivante jusqu'à ce que le produit fonctionne réellement sous sa forme la plus élémentaire.

Est-il utile que je vérifie chaque étape du processus comme je le ferais avec un projet existant? Je ne casse pas le projet avec les changements que j'apporte car il ne fonctionne pas encore. Pour le moment, j'utilise simplement VCS comme sauvegarde à la fin de chaque journée, lorsque je quitte l'ordinateur.

Mes premières validations étaient des choses comme "Structure de répertoire de base en place" et "Tables de base de données créées". Comment dois-je utiliser un VCS lors du démarrage d'un nouveau projet?

Anonyme
la source
Votre titre peut être ponctué d'une question ET de sa réponse: "Quelle est l'approche canonique de l'utilisation d'un VCS? Dès la petite enfance d'un projet" ou bien "Quelle est l'approche canonique de l'utilisation d'un droit VCS? De la petite enfance d'un projet"
AakashM
1
Le titre a été modifié depuis le début de la question. Bien que je puisse voir ce que vous dites, ce n'est pas vraiment la question ni la réponse à la question que je posais - ou du moins pas dans cette interprétation.
Anonyme
@ Anonymous-: J'ai réécrit votre titre car il était sous la forme d'une question jugée non constructive. J'espère que cela ne vous dérange pas, je l'ai fait dans le but d'empêcher sa fermeture anticipée. Désolé si cela vous a dérouté.
haylem
@haylem - Ce n'est pas un problème, je suis entièrement d'accord avec vous! J'apprécie que vous essayiez de garder ma question ouverte - à laquelle nous avons maintenant une réponse définitive. :)
Anonyme
Un (très!) Rapide tutoriel sur Git -> try.github.com/levels/1/challenges/1
MathAttack

Réponses:

13

Commencez simple

git init

Enregistrement tôt, enregistrement souvent

Faites simplement ce que vous faites normalement avec n'importe quel projet: «archivez» pour chaque ensemble de modifications qui se rapporte à une tâche ou à un groupe d'actions particulier. Si vous utilisez un outil de suivi des problèmes, validez les modifications qui se rapportent à une tâche chaque fois qu'elle est dans un état stable (voir cette question SO sur la fréquence de validation ). Il peut ne pas être en état d'achèvement, juste stable, dans lequel le logiciel ne s'exécute pas ou le site ne s'affiche pas. Comme le dit Jeff Atwood dans son article:

Si le code n'est pas archivé dans le contrôle de code source, il n'existe pas. [...]

Je ne propose pas aux développeurs de vérifier le code cassé - mais je soutiens également qu'il y a une grande différence entre le code cassé et le code incomplet.

Engagez-vous souvent, perfectionnez plus tard, publiez une fois

Si le produit n'est même pas proche d'un état fonctionnel, continuez simplement à vérifier les modifications comme bon vous semble, en faisant preuve de bon sens et de bon sens pour les regrouper. Vous n'avez pas besoin de valider le changement de ligne de chaque fichier un par un, mais tout valider en tant que gros morceau rendra plus difficile la restauration si nécessaire.

Au final, votre VCS est là pour vous aider . Alors aidez votre VCS à vous aider !!

Ne le pensez pas

Vos premiers commits étaient bien. Ne réfléchissez pas trop. Le plus important est qu'ils soient enregistrés. Si vous regardez tous les projets open source existants en ligne qui ont commencé à partir de zéro et non à partir d'une base de code existante, ils ont comme première révision quelque chose qui ressemble à:

créé la structure du répertoire (yay!)

Faites-en une habitude

À la fin de chaque journée, essayez de générer un journal de ce que vous avez fait en fonction de vos journaux de validation. Si les résultats que vous obtenez git shortloget git logne semblent PAS satisfaisants et utiles , mais que vous avez déployé beaucoup d'efforts dans le projet pendant la journée et vérifié ces changements, alors vous ne l'avez probablement pas fait correctement .

  • git shortlogdevrait se lire comme un large aperçu de ce que vous avez fait.
  • git logdevrait se lire comme l' histoire ET l' histoire de votre projet.
haylem
la source
Ce sont de bonnes lignes directrices, et j'insisterais sur «Ne vous en faites pas» (bien sûr, cela s'applique aussi aux lignes directrices suivantes ... :) - sortir et le faire est la meilleure façon d'apprendre, et les gens vont bientôt une bonne idée du style d'utilisation qui convient le mieux à eux et à leur projet.
snogglethorpe
3

Ce que vous faites, c'est la bonne approche.

Vous utilisez le contrôle de code source dès le premier jour - cela garantira que vous avez tout ce dont vous avez besoin dans le contrôle de code source et il n'y a aucun moment où vous pouvez dire:

Je devrais utiliser le contrôle de code source mais cela va prendre trop de temps pour vérifier tout cela pour la première fois.

C'est un obstacle majeur pour les personnes qui arrivent en retard au contrôle des sources car elles pensent alors que c'est "trop ​​difficile" à utiliser. En commençant tôt et en effectuant souvent des changements, vous avez réduit cet obstacle à un petit pas et toute autre personne qui vous rejoindra sur le projet pourra se mettre au travail immédiatement.

ChrisF
la source