10
votes

À quelle fréquence un programmeur devrait-il s'engager envers SVN?

Quelle est la règle générale? Quand vous valez-vous?

svn

7 commentaires

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).


12 Réponses :


22
votes

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.


1 commentaires

Lorsque vous pensez que vous vous engagez souvent, faites-le plus souvent!



19
votes

J'essaie de commettre chaque fois que je complète une "pièce" de travail - tant que le code compile, bien sûr.


2 commentaires

Ou dire cela un peu différemment, avant de commencer 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é.



6
votes

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.


2 commentaires

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 ".



10
votes

Ceci est couvert (et bien couvert) dans un article plus ancien sur les meilleures pratiques.

SVN Meilleures pratiques - Travailler dans une équipe

Je recommande de vérifier ce post car il couvre beaucoup de bonnes idées, pas juste à quelle fréquence commettre.


0 commentaires

0
votes

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?


0 commentaires

1
votes

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.


0 commentaires

2
votes

Cela dépend vraiment de la situation.

  • Si vous travaillez au sein de votre propre succursale ou que vous utilisez GIT, FIRE AWAY
  • S'il existe un processus de construction automatisé ou une intégration continue, vous voudrez soumettre des améliorations granulaires
  • Si vous travaillez simultanément avec d'autres personnes sur une succursale, vous voudrez soumettre lorsque vous avez des améliorations granulaires solides, mais sur une base de «jalon».

    Généralement, lorsque je travaille, il est dans ma propre branche, alors je suive 2 lignes directrices

    • s'engager si quelque chose est "complet". Ceci est souvent utilisé de manière lâche - cela peut être une fonction, une classe, une page, quelque chose qui est suffisamment complet pour pouvoir rester seul
    • s'engage si c'est un "cela fonctionne, mais c'est la nature" situation. L'engagement ici agit comme une retombe lorsque je reviens et révise mes solutions laides dans quelque chose de plus élégant. Pire affaire, je retourne à la solution de travail, même laide.

0 commentaires

4
votes

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.

  • test d'écriture
  • Assurez-vous que le test échoue (sinon, le test n'est pas efficace ou non)
  • Ecrire un nouveau code pour ce test
  • Confirmez que tous les tests automatisés passent
  • enregistrement
  • refactorez votre travail de sorte que toute duplication que vous avez introduite n'est plus là-bas
  • Confirmez que tous les tests automatisés passent toujours
  • enregistrement
  • aller à la première étape.

0 commentaires

0
votes

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é.

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.


0 commentaires

0
votes

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.

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.


7 commentaires

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 pense que cela commettre doit être fait sur des morceaux de code liés logiquement liés à la logique, mais je m'attends à penser que peu importe le système que vous utilisiez. Sinon, comment pourrais-je lire votre message de journal et obtenir facilement votre correctif pour votre bogue, mais pas votre mise à jour sur la fonctionnalité B?


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.



0
votes

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.


1 commentaires

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.



0
votes

règle générale:

  • Après avoir fait un changement atomique qui a du sens.

    Un changement atomique: est une modification "logique", que vous vous sentez facile de l'écrire dans le commentaire de commettre.

    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.

    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.

    Certaines bonnes pratiques peuvent être trouvées ici: http: // Ducquoc.wordpress.com/2011/06/09/SVN-Best-Pratég/


0 commentaires