8
votes

Contrôle de la version: Supprimer des succursales après la fusion?

Lorsque vous branchez un certain code, terminez de travailler avec la branche et de la fusionner sur le coffre, que faites-vous avec la branche? Supprimer du référentiel? Gardez-le pour référence?

On dirait que vous le garderiez pour référence, mais j'imagine que le répertoire / succursales pourrait être assez encombré.

(si ce n'est pas quelque chose que les gens sont généralement d'accord sur, s'il vous plaît commenter et je vais en faire un wiki communautaire.)

Clarification

jleedev a raison - nous devrions spécifier le système de contrôle de la version dont nous parlons.

J'avais subversion à l'esprit , mais j'aimerais bien entendre des réponses concernant d'autres systèmes. Veuillez spécifier lequel vous répondez, ou, si vous souhaitez obtenir la réponse acceptée , comparer et contraster plusieurs systèmes.


1 commentaires

La plupart de ces réponses seraient améliorées par une mention de laquelle il s'applique, notamment Git et similaire vs. Subversion.


7 Réponses :


2
votes

Je préfère toujours garder les branches. Oui, je peux les utiliser comme référence, ou simplement récupérer une certaine version à tout moment.


0 commentaires

0
votes

Dans chaque projet, je travaille sur nous supprimons les branches de développement dès que nous en avons fini. Nous faisons cependant brancher le code lorsque nous relâchons et retenons à ceux pendant un moment


0 commentaires

0
votes

Je n'ai jamais supprimé les succursales, mais considérez cela une question de goût personnel. Vous ne supprimez pas réellement les révisions du référentiel lorsque vous supprimez la branche.


0 commentaires

0
votes

S'il y a une chance que la succursale aura une vie propre, il est évident que vous le gardez. Sinon, je le garderais probablement mais révoquer l'accès en écriture. Les disques sont bon marché.


0 commentaires

1
votes

Utilisateurs SVN Généralement Tag Les branches pour garder le répertoire des branches Nettoyer, non?


0 commentaires

4
votes

Je supprimez les branches réintégrées depuis que je n'en ai plus besoin. Git et Mercurial Keep Breading / Fusion de l'histoire de toute façon. À Subversion, je tiendrais de vieilles branches pour avoir une référence à commettre l'histoire.


2 commentaires

Que voulez-vous dire lorsque vous dites que GIT conserve des informations de ramification. Comment pouvez-vous savoir si un commit particulier faisait partie de la branche 625 si la succursale est partie?


La succursale dans Git n'est qu'un «pointeur» pour commettre ce qui sera un parent pour les engagements ultérieurs. Lorsque vous supprimez une succursale, vous supprimez simplement son pointeur, les engagements réels ne sont pas touchés. Dans l'histoire, vous voyez qu'il y avait une succursale et dans la fusion de commentaires, vous voyez son nom.



9
votes

Répondre beaucoup à ma propre question plus tard

Maintenant que j'utilise Git, oui, je supprime des succursales quand j'aurai fini avec eux. C'est parce que dans Git, une branche est rien de plus qu'une étiquette pointant vers une validation spécifique .

Quand j'ai entendu dire cela, je n'ai pas bien compris, mais c'est littéralement vrai. Si vous entrez dans un projet que vous avez dans le contrôle de la version GIT et que vous ouvrez .git / refs / têtes , vous verrez un fichier pour chaque branche que vous avez, y compris MASTER. Chaque fichier contient le hachage d'un commit. C'est tout.

Évidemment, la création d'un tel fichier est très bon marché, c'est pourquoi la ramification est bon marché dans GIT. Cela, à son tour, c'est pourquoi je peux agir souvent, et il serait idiot d'avoir des succursales comme add_bells_to_the_widget accumuler partout.

Une fois qu'une succursale est fusionnée dans Maître, ses commits font partie de l'historique de la branche principale. Le seul but de garder la succursale serait de savoir quels commettez-vous que j'ai considéré que le dernier sur une succursale. Et ce n'est pas très pertinent pour moi lorsque le code est en production.


4 commentaires

Pouvez-vous s'il vous plaît élaborer sur "accumuler partout"? Où exactement? J'ai récemment commencé à utiliser Git pour un travail sérieux et à essayer d'établir un flux de travail décent. Vous avez dit "Garder la succursale serait de savoir quel commettre j'ai considéré que je considérais que le dernier sur une branche», et je comprends que vous ne vous en souciez pas, mais tout le but de VCS est de se souvenir de choses que vous pensez que vous ne pensez pas besoin et éventuellement apprendre que vous faites. Qu'est-ce que cette suppression vous achète exactement?


@Davide - pour moi, branche git montre quelques branches standard ( maître et dev ) et une liste de choses que je travaille sur ( add_new_widget , fix_dumb_bug , etc.). Cela ne devrait pas être plus qu'une poignée de fonctionnalités et / ou de bugs à tout moment. Plus que c'est fouillé. La suppression me garde organisé. Et je ne perds rien, vraiment; le travail et les commits sont toujours dans mon histoire; Même les noms des branches que j'ai fusionnées sont là dans la fusion commettre.


Je vois. Je pensais que le nom des branches était parti. Je vais creuser dans des histoires de journaux pour mieux comprendre. Merci!


Dans les journaux de mine, les noms de succursales sont partis quand je les supprimerai. Puisqu'il devient assez longtemps pour un commentaire, je vous ai fait une question, jetez un coup d'œil: Stackoverflow.com/questions/12114519/...