Quelle est la règle générale? Quand vous valez-vous? P>
12 Réponses :
s'engager tôt et souvent. Il minimise les étapes de résolution des conflits lorsque vous travaillez dans une équipe. Mais ne commettez rien qui enfreint votre construction. Idéalement, l'intégration continue notifie l'équipe lorsque la construction se casse. P>
Lorsque vous pensez que vous vous engagez souvent, faites-le plus souvent!
J'essaie de commettre chaque fois que je complète une "pièce" de travail - tant que le code compile, bien sûr. P>
Ou dire cela un peu différemment, avant de commencer i> un nouveau travail. +1
Cela donne un sens parfait pour SVN (c'est-à-dire que vous ne voulez pas commettre un code brisé pour d'autres), ce qui souligne clairement pourquoi vous souhaitez utiliser le contrôle de la version distribuée sur votre environnement local, car ce flux de travail est jeté lorsque vous pouvez faire autant de locaux comme nécessaire pour atteindre un objectif final, au lieu de devoir s'étirer pour un endroit qui est un état poli pour un référentiel centralisé.
Si vous travaillez sur le coffre, je vous engage chaque fois que je frappe une étape importante qui n'a pas d'impact sur mes coéquipiers. Lorsque vous travaillez sur une succursale privée, je vous engageons chaque fois que je frappe un jalon, je ne veux pas perdre (je m'en fiche si elle construit même). Pour les projets personnels, j'utilise mercurial et m'engage constamment. Tout dépend de ce qui fonctionne pour vous et votre équipe. P>
Comme l'asaph dit, n'engagez rien qui enfreint la construction! Mais sinon, je suis d'accord avec votre réponse.
@khedron - Stephen vérifie le code de non-bâtiment dans une succursale privée .. Par conséquent, il ne casse pas "la" construction ".
Ceci est couvert (et bien couvert) dans un article plus ancien sur les meilleures pratiques. p>
SVN Meilleures pratiques - Travailler dans une équipe p>
Je recommande de vérifier ce post car il couvre beaucoup de bonnes idées, pas
commit quand vous avez du code que vous ne voulez pas perdre. Cela ne signifie pas que vous vous engagez dans le coffre, si vous développez dans une équipe, vous devriez éviter de casser les choses pour les autres. Combien de code souhaitez-vous retravailler si votre éditeur détruit le fichier? Une heure ou deux? P>
Je vous engage chaque fois que j'ai effectué une unité de travail: corrigé un bug, une fonctionnalité améliorée, une efficacité améliorée, etcetera. Mais j'essaie d'éviter de longues périodes de silence. Le conseil de ne va pas sombre vaut la peine d'être lu. P>
Cela dépend vraiment de la situation. P>
Généralement, lorsque je travaille, il est dans ma propre branche, alors je suive 2 lignes directrices p>
Lorsque vous utilisez le développement dirigé par des tests, je vérifie chaque fois que j'ai écrit un nouveau test de l'unité et je l'ai eu pour passer. P>
SVN nécessitant des engagements à un serveur distant permet de s'engager aussi souvent que vous le devriez, je vous recommande donc d'essayer Mercurial ou GIT afin que vous puissiez faire des engagements locaux à tous les moments où vous voulez, puis envoyez ces engagements à SVN (via Git-SVN ou HG-SVN) après avoir effectué votre propre nettoyage si vous devez utiliser un référentiel SVN centralisé. P>
Le fait même que vous demandez à quelle fréquence faire de commettre implique que la nature centralisée de SVN gêne dans une certaine mesure la voie de votre flux de travail. Vous serez heureux des avantages d'un référentiel de machines local une fois que vous avez dépassé la courbe d'apprentissage. P>
Les programmeurs issus de VC minces / distribués ou ont-ils utilisé avant de s'engageront dans de petits changements ou par des fonctionnalités car la commission locale est très bon marché. Ensuite, ils pousseraient à la représentation centrale une fois qu'ils doivent être synchronisés. Mais comme commettre est très coûteux avec SVN, les programmeurs qui utilisent SVN (généralement) se valent quotidiennement, ce qui peut parfois être dans un très gros morceau et que les commentations pourraient avoir besoin d'être liées par des fonctionnalités. C'est mauvais habbit. p>
J'essaie donc de prendre cette meilleure pratique de la consommation de DVCS dans SVN ASWELL. Par conséquent, je m'engagerais envers SVN par des fonctionnalités, il serait donc plus facile pour moi de rembourser une fois qu'il y a un problème dans les changements. p>
Personnellement, je n'ai jamais attendu la fin de la journée pour commettre un ensemble de modifications liées à un changement de fonctionnalité. Et c'est la première fois que je lis les gens ne commet que quotidiennement parce que les engagements sont chers ... Pouvez-vous élaborer?
"COMMIS, c'est très cher avec svn" ... hein? Je m'engage avec Svn tout le temps et ce n'est pas un problème. Je
L'engagement à la fin de la journée est un problème si quelqu'un brise la construction tout comme il rentre chez lui.
Je ne sais pas s'il y a une "dépense" attachée à s'engager dans SVN. Je pense que c'est plus souvent une question de savoir à quel point il est confiant de son code, à quel point il est testé. Étant donné qu'un commit le rend visible au monde et vous pouvez casser une construction - parfois, les gens hésitent à le faire - un esprit d'esprit qui peut être facilement dissous par des pratiques saines.
La dépense est la bande passante. Si vous travaillez dans une équipe MNC et distribuée que vous ressentirez la différence. C'est la différence entre la commission locale avec les DVC et la validation centrale avec les CVC.
Allez, Subversion envoie DIFF entre un fichier local et la révision la plus récente localement disponible sur commit, ce qui signifie pas beaucoup d'utilisation de la bande passante. Pousser votre changement avec Git à la fin de la journée mangera autant de bande passante. Et si la bande passante est que beaucoup d'un problème, commencez à le sauver en ne surfant pas sur Internet> :)
Droit. Mais avec git, je ne poussez que lorsque j'ai besoin. Comparez-le si vous devez vous engager 20 fois par jour avec SVN et 20 commettre local avec GIT et 1 poussent une journée.
Qu'est-ce que je fais habituellement si je dois ajouter une nouvelle fonctionnalité ou corriger un bogue, consiste à créer une succursale de partout où je dois, faites mon travail là-bas, obtenez le code informatique examiné et de la fusionner. Vous pouvez même Décomposer votre dossier de branches pour chaque utilisateur (peut ne pas avoir de sens si vous avez beaucoup d'utilisateurs) que chaque développeur conserverait leurs modifications. P>
Pour répondre à la question initiale, je peux dire que je peux vous engager aussi souvent que je voudrais sans vous soucier de ne rien préoccuper et de garder mon code sauvegardé dans le référentiel.
règle générale: p>
Un changement atomique: est une modification "logique", que vous vous sentez facile de l'écrire dans le commentaire de commettre. P>
a du sens: il inclut un coffre-fort à mettre à jour - compile et ne pas rompre les fonctionnalités - qui a le changement logique que vous n'avez pas peur de dire dans le commentaire. P>
Quand dois-je commettre: quand j'ai apporté un changement comme mentionné en règle générale, et j'essaie de le faire plus souvent. P>
Certaines bonnes pratiques peuvent être trouvées ici: http: // Ducquoc.wordpress.com/2011/06/09/SVN-Best-Pratég/ P>
Jamais. Le programmeur devrait s'engager à git.
DuPes possibles: Stackoverflow.com/questions/107264 Stackoverflow.com/Questtions/1709676
C'est une bonne question si vous apprenez simplement à utiliser le contrôle de la source. +1.
@ CHSSPLY76 - parlé comme un vrai git.
@ CHSSPLY76 Je n'obtiens pas tout ce bruit sur git. Bien sûr, c'est génial (et je le fais) pour des projets open source et il résout beaucoup de problèmes de VCs centralisés (création facile de branches, de travail déconnecté, etc.). Mais, s'il vous plaît, expliquez-moi ce que DVCS résout les organisations moyennes. Dans mon expérience, dans de tels contextes, les développeurs sont toujours connectés, ne branchez pas parce qu'il les ennui (bien ou faux, ce n'est pas la question), n'aime pas ou ne savez pas simplement utiliser la ligne de commande, Don 't comme le changement, etc. Alors, quel serait le point d'utiliser Git pour eux? Je suis très curieux...
Même si on n'aime pas un outil pour une raison quelconque - cette question peut toujours être répondue comme une question générale pour tout outil donné.
@Pascal - C'était une blague sur la base du fait que OP a dit «s'engager à SVN» plutôt que de «s'engager à maîtriser le contrôle». Je n'ai rien de personnel contre SVN (CVS, Perforce, Git, qu'avez-vous).