La règle générale est de limiter les enregistrements et les enregistrements fréquents. Mais parfois, la tâche nécessite des modifications importantes du cadre sous-jacent. Ensuite, l'archivage avant la fin de la tâche interrompra le projet jusqu'à ce que vous archiviez le travail terminé.
Alors, quelles stratégies les gens utilisent-ils pour réduire le risque de perdre du travail ou de décider que quelque chose que vous faites est la mauvaise approche, puis changer d'avis après avoir supprimé le code et essayé une autre approche?
Lorsque je le pourrai, j'enregistrerai le travail à moitié terminé commenté, ou s'il compile et que rien n'utilise de nouveaux fichiers, je les archiverai. quand j'ai tout recommencé. Une autre option si le système de contrôle de source le permet est les ensembles d'étagères, qui sont essentiellement de petites branches. Donc, quand j'aurai fini la journée ou arriverai à un point de décision, je mettrai de côté mes changements, puis si quelque chose de catastrophique se produit, ou si je veux revenir sur ce point, je le peux.
la source
Réponses:
J'utilise git, donc ma réponse est "branche". Branche-toi et engage-toi à la pièce pendant que tu termines les différents morceaux.
Poussez vos commits en amont lorsque vous êtes satisfait, afin que vos collègues puissent examiner les modifications sans perturber le tronc.
Lorsque tout le monde est satisfait du code, fusionnez et vous avez terminé!
(Ce que j'ai tendance à faire pour les branches relativement longues est de fusionner périodiquement le tronc (maître, en terminologie git) dans ma branche, afin que les deux branches ne divergent pas trop radicalement.)
la source
Je pense que la réponse va varier en fonction du type de système de contrôle de version que vous utilisez: centralisé (par exemple, subversion) ou distribué (par exemple, git). Je n'ai aucune expérience du monde réel avec l'utilisation d'un système de contrôle de source distribué, donc ma réponse est basée sur ce que nous faisons avec la subversion.
S'il y a un grand changement en cours qui cassera notre construction de tronc sur une période de temps, ou qui perturbera vraiment le reste de l'équipe d'une autre manière, alors nous créerons une branche. Je dirais cependant que vous devriez faire tout ce que vous pouvez pour éviter d'avoir à le faire - la plupart des changements peuvent être côte à côte avec le reste du code avec peu d'effort. Par exemple, vous pouvez déclencher des chemins de code dans le nouveau code (avec des instructions if simples ou vous pouvez injecter les nouvelles versions basées sur les paramètres de configuration si vous utilisez un framework DI). Ensuite, lorsque vous avez terminé, modifiez simplement la configuration à la nouvelle version, testez tout, supprimez le code inutilisé, testez à nouveau et supprimez enfin le paramètre de configuration. Vous ne pouvez pas toujours le faire, mais en raison des frais généraux liés au maintien d'une succursale, je pense que vous devriez toujours vérifier si cela est possible.
Si vous faites une succursale, je pense que l'erreur que je vois souvent faire n'est pas de garder sa succursale à jour avec le coffre. Vous devez constamment fusionner les modifications du tronc dans votre branche pendant qu'elle existe, de sorte que lorsque vous avez terminé, la fusion inverse de tout est à nouveau assez banale.
la source
Dans notre équipe, nous utilisons la subversion, et nous validons normalement de petits changements directement dans le tronc. Pour les tâches plus importantes, le développeur qui y travaille crée généralement une branche privée, qui est fusionnée dans le tronc une fois l'opération terminée. Ensuite, la branche privée est supprimée. Naturellement, bien que la branche privée existe, son propriétaire doit y vérifier souvent.
Nous essayons d'éviter d'avoir des succursales de longue durée et des fusions de tronc à branche, car cela nécessite une comptabilité rigoureuse. Au lieu de cela, nous avons des branches à durée de vie relativement courte qui ne sont fusionnées que dans le tronc une fois et sont supprimées peu de temps après.
Et nous avons une règle selon laquelle rien ne peut être validé ou fusionné dans le coffre jusqu'à ce qu'au moins une autre personne examine les modifications et les approuve.
la source
Tout comme le commentaire habituel des gens du serveur SQL "ça dépend"
Si vous le pouvez, je vous suggère de créer une branche sur le code afin que vous puissiez continuer à appliquer de petits enregistrements de votre travail. Une fois terminé, effectuez une fusion dans le coffre principal.
Oui, il y a une chance de redoubler d'efforts pour ce faire. mais au moins vous maintiendrez une piste de travail, vous pouvez la faire reculer, elle se révèle être une impasse.
la source