2009-09-07 10 views
2

Je travaille sur la prochaine tâche et je comprends tout à coup que j'ai besoin de discuter de certains détails avec mon chef pour continuer. Je vais en discuter dans quelques jours quand j'ai nommé mon chef. Jusque-là, je dois travailler sur une autre tâche.Système de contrôle de version -> question de branche

Quelle est la bonne façon de faire?

Je vois 2 options:

1) Copie révision de la tête du référentiel vers une nouvelle succursale et commencer une autre tâche là. Après je l'ai fini - fusionnez-le au coffre. Ou peut-être devrais-je d'abord fusionner du tronc à la branche, puis me replacer sur le tronc?

2) Copier de la copie de travail vers une nouvelle succursale. Rétablissez la dernière révision (avant de commencer la tâche dont j'ai besoin), passez au tronc et travaillez sur une autre tâche, puis terminez ma tâche actuelle dans la branche et fusionnez.

S'il vous plaît, expliquez le bon sens dans les détails, car je ne suis pas un utilisateur VCS expérimenté. Merci d'avance.

+0

Quel système de contrôle de version utilisez-vous? Les balises indiquent à la fois "svn" et "cvs". –

+1

Je pense que cela n'a pas d'importance, parce que la question est générale, mais j'utilise SVN – nightcoder

+0

Si cela n'a pas d'importance, alors utilisez 'git stash' :) http://www.kernel.org/pub/software/scm /git/docs/git-stash.html Sérieusement, vous pouvez en fait utiliser Git en tant que client Subversion avec 'git svn' et avoir toutes les fonctionnalités de gestion des branches légères Git disponibles. Je fais cela tout le temps et je ne voudrais pas l'abandonner. –

Répondre

3

Le problème que vous rencontrez est que vous avez commencé les modifications sur le tronc mais que vous voulez le commettre ailleurs. La plupart des systèmes de contrôle de version n'ont pas de comportement intégré pour cela, ce qui est regrettable. Dans SVN, votre meilleur pari est le suivant:

  1. Créer une nouvelle branche de tronc
  2. Faites un SVN commutateur pour activer votre copie de travail en cours à cette branche
  3. Vous devriez maintenant vos changements locaux et pouvoir les engager sur la nouvelle branche
  4. une fois que vous les engagez à la branche, faire un autre rebasculer sur le tronc
  5. les travaux sur la nouvelle fonctionnalité sur le tronc
  6. Après avoir discuter des détails avec votre chef, les fusionner de la branche retour à tru nk

espoir qui aide

+0

Dois-je créer une nouvelle branche à partir de la révision de la tête ou d'une copie de travail? – nightcoder

+0

Branche de HEAD, passer (à branche), mettre à jour, valider. – jeroenh

-1

Nous branche basée sur la libération tâche non. Donc maintenant tout ce que nous sommes prêts à sortir dans quelques semaines est dans la branche 5.1.1. Les modifications sont fusionnées au tronc lorsqu'elles sont publiées en production.

+0

Nous faisons cela aussi ... Ho la douleur et la souffrance cela nous cause. Régressions par la pelle complète (parce que le correctif de bogue a été fait dans la branche de production pour le client mais pas fusionné dans le tronc). Relâchez les cycles qui s'étendent dans l'éternité parce que l'ensemble des fonctionnalités ne peut pas être terminé dans le temps, mais a déjà été engagé en partie dans le même groupe ... à partir de ce point pas le choix ... terminer ce qui a commencé dans une grande course, 3 mois de stabilisation et d'incendie de la direction pour une libération tardive et instable ... vue – Newtopian

+0

Nous avons eu les mêmes problèmes, c'est pourquoi nous avons construit l'outil de gestionnaire de version, http://www.releasemanager.com/ maintenant il est facile de tirer une fonctionnalité et de contrôler ce qui est dans une version. – JBrooks

0

Vraiment les deux choix vont travailler pour vous et aucun n'est plus correct que l'autre; ce qui déterminera la ligne de conduite la plus facile est la difficulté requise pour fusionner les changements. En général, svn vous voulez éviter de fusionner, si possible.

Habituellement, ce type de décision dépend de la culture de votre équipe; Si vos collègues ne souhaitent généralement pas de modifications inachevées/non approuvées dans le coffre, il est judicieux de déplacer vos modifications dans la branche et de fusionner après que votre chef a approuvé votre code. Bien sûr, si vous travaillez seul, tout dépend de vous.

Vous avez vraiment une troisième option qui peut ou peut ne pas fonctionner en fonction de votre situation, qui consiste simplement à travailler sur deux tâches dans le tronc en même temps, et valider les modifications individuelles séparément.

0

Je ferai la première option parce que je peux garder mon coffre propre (travailler en tout temps). Puisque la fonctionnalité dont vous parlez doit encore être confirmée par votre patron. Si la fonctionnalité finit par être jetée, votre tronc ne sera pas affecté et les autres membres de votre équipe ne seront pas confondus avec ces changements.

Questions connexes