Je commence à faire une petite quantité de développement au sein de ma société. J'ai l'intention d'utiliser GIT pour le contrôle de la version, et je suis intéressé de voir quelles directives ou quels normes utilisent autour de la version dans leurs groupes, similaires aux normes de codage sont souvent écrites au sein du groupe pour le groupe. P>
Je suppose qu'il y aura des choses comme; p>
Évidemment, beaucoup de cela dépendra de ce que vous utilisez VCS et comment vous l'avez structuré. P>
Questions similaires;
Direction GIT Nommant les meilleures pratiques
Existe-t-il une convention de dénomination standard pour les étiquettes GIT? p>
5 Réponses :
Un seul standard: p>
Lol j'ajouterais 'Les check-ins à 17h30 entraîneront une perforation faciale obligatoire à 9h la journée suivante'
Dans l'endroit actuel, je travaille, le système de contrôle de la version est l'un des plus avancés et mûri. C'est comme ça que nous faisons. P>
Nous avons quelque chose d'appelé une branche "principale" qui est la base de code qui sera en production. Remarque, la base de code dans une seule grande structure de gargantune. Dites si un nouveau projet vient, nous devrons faire une portée pour cela et réaliserons une semaine de publication. Maintenant, nous devons commencer à travailler dessus. Donc, nous avons coupé une branche de la principale appelée branche de fonctionnalité. L'équipe ou le groupe de développeurs continue de travailler dans cette succursale particulière. NOTE Il y aura beaucoup de branche de fonctionnalité simultanément de la branche principale. P>
Maintenant, une fois que le développement est sur son coutume de fusionner le code à la main. Nous ne le ferons pas directement car cela pourrait causer des ravages en raison de problèmes de criticité évidents. Nous avons donc une nouvelle branche de plus de principale appelée pré-libération. Nous fusionnons tout notre code à cette base de libération. Et faire une construction sur la base de code complète. La construction devrait passer. Quand cela le fait, nous extrayons un horodatage vert (dernière construction passée). Une fois que le tampon vert est obtenu, le code sera fusionné à partir de la branche de pré-libération à la main et de la libération est finalisée. P>
Une fois le code mis en production et dire si nous sommes confrontés à des insectes, nous avons coupé une branche de la principale appelée Bug-Fix Branch. Faire tous les changements. Et la fusionner à la main; Suit toujours le processus d'horodatage pré-libéré / vert. Son inévitable. p>
re-base. OK, j'ai autrement dit que nous aurions comptabilisé lorsque notre branche de fonctionnalité doit être complétée. Pendant cette période, il y aura beaucoup de mise à jour du code aurait eu lieu sur la principale. Donc, il est donc très nécessaire que vous continuiez à mettre à jour votre branche de fonctionnalité actuelle pour être synchronisée avec le principal. Pour cela, un processus appelé Rebase est fait. C'est comme obtenir le dernier code de Main afin que vous ne travailliez pas dans une succursale tellement obsolète. Dans mon org actuel, une Rebase sera déclenchée toutes les 2-3 semaines, bien que les politiques recommandent une semaine. P>
Caractéristiques plus intéressantes: disons que je travaille actuellement sur une succursale appelée fonctionnelle et je souhaite obtenir du code de l'une des autres équipes qui travaillent également dans leur propre branche de fonctionnalité (ce scénario bien que semble rare qui arrive fréquemment). Pour cela, nous modifierons notre spécification de configuration (ClearCase est notre système de contrôle de version), pour pointer vers ces fichiers requis de l'autre projet. Dernier d'être utilisé ou un horodatage peut être spécifié pour extraire ces fichiers provenant de la branche de fonctionnalité. P>
Après une bonne quantité de temps après la vente du projet, la branche de fonctionnalité que nous coupons est à peu près nécessaire. Il peut être résilié à partir du système, après une année, l'espace devrait être une contrainte. P>
Mes «CVS» sont TFS alors prenez-le pour ce que ça vaut. P>
Si quelqu'un brise la construction, la règle de beignet s'applique (apporte une boîte de beignet le lendemain) p>
Vous avez mentionné commettant souvent, sur la base de la journée, de la semaine ou de la réunion. Ce système ne présenterait-il pas de code incomplet? Il pourrait être plus stable de commettre l'examen après le code. P>
Configuration des tests d'unité serait une bonne pratique pour commencer, car c'est comme avoir une deuxième équipe d'assurance qualité qui fonctionne pendant la nuit (lorsque ces tests d'unité fonctionnent dans le cadre de la construction de la nuit). P>
Quant à avoir une branche par caractéristique, ce n'est pas quelque chose que j'ai utilisé, mais quelque chose dont nous avons parlé lorsque quelqu'un cassait la construction, car si une équipe a brisé une caractéristique, le reste du contenu est toujours construit. Pour que cela fonctionne, votre programme d'installation doit être suffisamment souple pour créer et pouvoir déployer même si des fonctionnalités facultatives sont manquantes. p>
Bâtiment par caractéristique Comme cela peut augmenter la productivité depuis que la QA peut commencer à tester le jour même le jour même au lieu d'être bloqué par une construction cassée jusqu'à ce qu'il soit réparé plus tard dans l'après-midi ou même repoussé le prochain problème seulement pour voir un autre problème similaire. < / p>
CVS est bien connu, mais si je démarrerais une équipe / projet de développement, je pourrais envisager de regarder Jira Studio P>
http://www.youtube.com/watch?v=2w2un3c8pfa http://www.youtube.com/watch?v=c9pm_r8vswm&feature=Related p>
La récompense pour casser la construction consiste à apporter de la nourriture malsaine pour vos collègues? Si vous le cassez 2 jours de suite, pouvez-vous apporter de l'héroïne? :-)
L'équipe de Paddy brisant la construction deux jours d'affilée signifie probablement que vous ne pouvez pas marcher, peut-être qu'il y a un moyen heureux?
Je crois maintenant que j'ai le travail de programmation cushieux dans le monde. Quand je casse la construction, si je ne suis pas le premier à remarquer, quelqu'un me demande de le réparer!
Une fois que vous avez votre branche principale, toute tâche ou toute fonctionnalité que vous souhaitez travailler doit être développée dans sa propre branche. Essayez de garder la branche principale stable et la production prête à tout moment. Chaque fois que vous avez une tâche, une branche de fourchette, faites-y votre travail, corrige tous les bugs, puis fusionner avec maître. P>
Pas besoin d'enregistrer par jour (ou une autre unité de temps). Nous faisons toujours nos check-ins en fonction de l'achèvement des fonctionnalités, pas nécessairement un ensemble de fonctionnalités complètes, mais dans de petits morceaux gérables logiques. Cela nous permet de trouver des bugs plus facilement que d'avoir un enregistrement quotidien de tout code s'il est lié ou non. P>
Gardez vos messages de validation clair et au point, cela vous aidera énormément lorsque vous revisitez votre code. P>
Un petit gotcha avec git, lorsque vous fourrez une succursale, elle est fourchue de la succursale que vous êtes actuellement allumé, pas de Maître. Ceci est une chose évidente, mais double vérifier toujours votre branche actuelle avant de préparer une nouvelle branche. P>
Utilisez le fichier .gitignore pour conserver des fichiers que vous ne souhaitez pas suivre la commande de la version au lieu d'encombrer vos messages d'état de git ou écraser un fichier qui ne doit pas être dans la commande de version en première place (DB Config et telle). p>
Seulement vérifier (ou promouvoir, en fonction de votre outil) Code de travail sur la branche / flux / dépôt / dépôt / dépôt / dépôt / dépôt (choisissez votre propre définition de "Main"). Cette branche "principale" devrait rester compilable et testable à tout moment. p>
Oui, tu as raison - tu ne détestes pas ceux qui révèlent vraiment des erreurs de débute!
Cela devrait être un wiki communautaire car il n'y a pas de bonne réponse.
Voir aussi Stackoverflow.com/questions/1049917/...