2013-09-23 13 views
0

Ceci est une continuation de cette question: TortoiseSVN merging branch to trunk Si la question originale doit juste être éditée, s'il vous plaît faites le moi savoir et je ferai cela.TortoiseSVN fusionner une branche au tronc

Voici la situation actuelle.

Avoir un projet avec une copie de travail sur mon PC qui était tous à jour. J'ai créé une nouvelle branche sur cette base et j'ai transféré ma copie de travail vers cette nouvelle branche.

Depuis cela, un autre développeur a vérifié certaines modifications apportées à la ligne de réseau, et j'ai apporté quelques modifications à la branche. Je ne pense pas que nous ayons changé les mêmes fichiers donc nous devrions être bons en ce qui concerne les conflits.

Je souhaite fusionner mes modifications dans le coffre.

Je sélectionne fusionner, puis sélectionne une plage de révision. URL à fusionner à partir de laquelle j'ai sélectionné la ligne de réseau. La plage est vide. Lorsque je fais un test de fusion, il semble que j'ajoute tous les fichiers ajoutés au projet - cela ajoute certainement beaucoup plus de fichiers que de changements depuis que je me suis séparé du tronc. Il fait des centaines de fichiers alors qu'il ne devrait y avoir que 10 ou 20 fichiers modifiés.

Dois-je plutôt sélectionner la plage de révisions que l'autre développeur a archivé sur le tronc? Ou devrais-je plutôt choisir de fusionner deux arbres différents? Si j'essaie cela et que j'essaie de faire un test de fusion du tronc à ma branche, j'obtiens un conflit. Si j'essaie de faire de ma branche au tronc, il semble que cela fonctionne. Bien que je voudrais alors ramener tout à tronc à ce moment-là depuis que j'ai fait quelques corrections dans ma branche que je veux inclure dans le coffre avant que je ne procède à plus de changements dans la branche.

modifier: un peu plus de détails pour aider à clarifier la configuration actuelle

Ma copie de travail faisait auparavant partie du tronc. J'ai utilisé la tortue pour créer une nouvelle branche et j'ai changé ma copie de travail pour cette branche. Ainsi, le projet ressemble à: /projet/branches/mybranch

tronc ressemble /projet/trunk

Un autre dev vérifié quelques changements dans le tronc, et je l'ai vérifié quelques changements dans mybranch. Je veux fusionner tous ces changements dans le coffre avant que je ne fasse plus de travail sur mybranch. Quand je regarde le journal pour mybranch, il y a seulement 3 checkins; 153, 154 et 159 (et 153 est juste la création de la branche) quand je regarde le journal pour le tronc, il y en a 4 depuis qu'il a été séparé du tronc: 155-158

Il devrait y avoir pas de conflits comme nous l'avons fait ne fonctionne pas sur les mêmes fichiers.

Si j'essaie de fusionner FROM mybranch sans spécifier de plage de révision, il semble que tous les fichiers du projet soient ajoutés. c'est-à-dire que je fais un test de fusion et qu'il montre des centaines de fichiers ajoutés.

Si je fais un test de fusion à partir de la ligne de réseau et spécifiez la révision 155-158 qui ressemble à fusionner toutes les modifications de tronc dans ma copie de travail. Je suppose que si je fais cela, je peux alors tout vérifier dans mybranch à quel point j'ai juste besoin de comprendre comment tout fusionner dans le coffre.

Tout ce qui précède a été fait en utilisant 'fusionner une gamme de révisions'.

Si j'essaye de 'fusionner deux arbres différents' et que j'essaie de fusionner du tronc à la mybranche (avec la révision de la tête), j'obtiens un conflit.

Si j'essaie de passer de mybranch à trunk, il semble que cela fonctionne. D'après ce que j'ai vu, il me semble que faire l'arbre fusionner de mybranch au tronc est ce que je veux faire. Je ne suis pas certain puisque jusqu'ici on m'a dit de faire autrement.

Je veux que tout soit poussé dans le coffre. Je prévois de faire de gros changements au code de mybranch, ce qui interrompra le projet jusqu'à ce qu'il soit terminé, c'est pourquoi je veux que le trunk soit à jour avant de commencer, au cas où je devrais corriger un code existant.

Edit2: quand je fais une gamme de fusion des révisions et sélectionnez mybranch comme l'URL pour fusionner à partir, voici ce qui apparaît dans la fenêtre de tortue comme la commande: commande: Fusion des révisions 1-HEAD/branches/mybranch dans C: \ Users \ xxxx \ Documents \ Visual Studio 2010 \ Projects \ MyProject, concernant l'ascendance, Test uniquement

Ma copie de travail est déjà sur mybranch. Donc, pour moi, cela ressemble à fusionner mybranch dans ma copie de travail, qui fait déjà partie de mybranch, donc en gros, il fusionne mybranch en lui-même? Fusionner à partir du tronc est la seule chose qui aurait du sens pour moi. Et si fusionnez FROM trunk et sélectionnez la plage de révision dans laquelle l'autre dev est archivé, la sortie semble correcte. À ce moment-là, je devrais alors simplement tout fusionner dans le coffre.

commande: Fusion des révisions de 154-158/trunk dans C: \ Users \ XXX \ Documents \ Visual Studio 2010 \ Projects \ MyProject, concernant l'ascendance, Test Seuls

Les numéros de révision qui comptent sont les suivants:

tronc: 155-158 - ce sont les révisions les autres dev vérifié dans le tronc

mybranch: 153, 154 et 159. 153 est la création de la branche. 154 et 159 sont des changements de fichiers réels qui doivent être fusionnés dans le tronc. L'autre commande que j'ai juste essayée qui semble aussi faire ce que je veux est si je fusionne de mybranch au tronc et spécifie la révision 154 ou 159 sous FROM et la révision 152 sous TO (tronc). Je n'ai jamais essayé de travailler avec autre chose que la révision actuelle, donc je ne sais pas exactement ce qui se passe si je fusionne avec une révision de quelques chiffres.

Commande: Fusion de/branches/mybranch, révision 154/tronc, révision 152 en C: \ Users \ xxxx \ Documents \ Visual Studio 2010 \ Projects \ MyProject, en respectant

apprécier toute aide à clarifier la bonne façon de le faire.

Merci

+0

Les chemins sont-ils corrects et à la même profondeur dans la hiérarchie de projet/solution? Autrement dit, si vous avez 'svn: // example.com/foo/trunk/project /' et 'svn: // example.com/foo/mybranch /' pour vous assurer de sélectionner 'svn: //example.com/foo/trunk/project/'et NOT' svn: // example.com/foo/trunk/'pour l'URL de fusion –

Répondre

5

URL de fusion de i ai le tronc sélectionné.

Si vous voulez revenir à la fusion trunk, l'URL de fusionner à partir est votre branch. Vous fusionnez à partir de la version de référentiel du branch à la copie locale du tronc. Lorsque la fusion est terminée, vous vérifiez dans le coffre.

Mise à jour:, il est nécessaire Comme Merk mentionné dans les commentaires d'avoir une copie vérifié du tronc: Pour tous ceux qui ne veulent pas lire ci-dessous les commentaires entiers.

+0

lorsque je fais cela, si je ne spécifie pas une plage de révision, il semble que l'on ajoute dans chaque fichier du projet. Il n'y a qu'une vingtaine de fichiers qui ont été changés entre le tronc et ma branche. Mais quand je fais ce que vous suggérez, cela ajoute des centaines de fichiers. Si je sélectionne les révisions que j'ai archivées et que je fais ensuite une fusion test, rien ne sera réellement mis à jour. Je vais mettre à jour ma question originale avec un peu plus de détails pour essayer de clarifier la configuration actuelle. – merk

+0

Il n'y a rien de spécial dans ce que vous voulez "fusionner une gamme de révision" est bien et fusionner branche à tronc est une affaire quotidienne. Qu'il veut ajouter des centaines de fichiers semble être un problème de configuration de votre svn-client (tortue). – Micha

+0

Je ne suis pas vraiment sûr de ce qui ne va pas avec la tortue. Je n'ai rien fait d'inhabituel avec ça. Et ça a bien fonctionné jusqu'à maintenant. Je pense qu'il y a juste une mauvaise communication entre nous quant à la façon dont cela devrait être fait. Par exemple, si comme vous le suggérez dans l'URL de fusionner à partir de je sélectionne le tronc, comment sait-il O WH le fusionner? Ma copie de travail fait partie de la branche. Donc, si ça dit de fusionner FROM mybranch, comment sait-il où le fusionner? Je vais mettre à jour la question avec quelques détails supplémentaires – merk

Questions connexes