web-dev-qa-db-fra.com

Tortoisesvn Subversion 1.8 - fusion - ne réintègre plus une option de branche

Dans tortoiseSvn 1.8, il n’existe pas d’option de "réintégration" dans une branche. Quel est le bon moyen de réintégrer une branche dans Tortoise Svn 1.8?

Dans Choisissez Fusionner, puis Option suivante: Merge first step

Puis j'obtiens la fenêtre suivante: enter image description here

Ou est-ce que je fais autre chose de mal?

64
Jernej Novak

Il suffit de fusionner une branche pour n’importe quelle cible

Edit

OK, réponse étendue: "Merge for Dummies" en images

Préface

OK, je ne masquerai ni ne cacherai le terrain d’essai utilisé.

Utilisé dans cet exemple de ressources:

Repo Graph

  • Répertoire local z:\WC-Trunk _ (WC du coffre, utilisé dans le processus)
  • TortoiseSVN 1.8.1, Build 24570 - 32 bits

Étapes pour reproduire

Afin de fusionner une branche à une jonction, je dois disposer d'une copie de travail de la jonction, c'est-à-dire - de la jonction HEAD extrait à WC-Trunk

z:\WC-Trunk>svn ls
Dr?p?r.ma?ar.sv?nskan.man.eller.smalensk?n.txt
Hello.de.txt
Hello.en.txt
Hello.eo.txt
Hello.fr.txt

il faut des toilettes

z:\WC-Trunk>svn info
Path: .
Working Copy Root Path: Z:\WC-Trunk
URL: http://mayorat.ursinecorner.ru:8088/svn/Hello/trunk
Relative URL: ^/trunk
...

Commencer à fusionner

Start

Sélectionnez "Plage de fusion" car "Cette méthode couvre le cas où vous avez apporté une ou plusieurs révisions à une branche (ou au tronc) et que vous souhaitez transférer ces modifications vers une autre branche".

Merge type

Sélectionnez toutes les révisions, sinon définies, et le chemin d'accès à l'arborescence du référentiel, qui doivent être fusionnées dans le tronc (notre branche française)

Merge Options

Définissez (si nécessaire) des options de fusion supplémentaires, pouvez tester la fusion afin de détecter, sera une résolution de conflit nécessaire sous n’importe quelle forme, ou démarrez simplement le processus de fusion réel enfin

Options 2

40
Lazy Badger

Il n’est plus dans TortoiseSVN car Subversion 1.8 a déconseillé l’option --reintegrate. Subversion 1.8 a une gestion/détection de réintégration automatique.

Voir: notes de version de Subversion 1.8 , plus précisément la section de réinsertion automatique

Voici la zone pertinente, pour plus de commodité:

Fusion de réintégration automatique (option --reintegrate obsolète)

Lors des fusions qui fusionnent toutes les révisions éligibles d'une autre branche, Subversion 1.8 décidera automatiquement si la fusion réintègre ou non une branche. Par conséquent, la réintégration d'une branche ne nécessite plus l'option --reintegrate pour un fonctionnement correct.

L'option --reintegrate de svn merge est maintenant obsolète et son utilisation est déconseillée. Pour réintégrer une branche, disposez d'une copie de travail propre de la ligne de réseau et exécutez la commande suivante dans son répertoire de niveau supérieur:

$ svn merge ^/branches/my-branch

Cette fusion continuera à effectuer des contrôles de cohérence similaires à ceux que svn merge --reintegrate a effectués dans les versions précédentes:

  • La copie de travail ne doit pas être une copie de travail à révision mixte.
  • La copie de travail ne doit pas avoir changé de sous-arbre.
  • Il ne doit y avoir aucune lacune dans les plages de révision fusionnées de la cible de réintégration (par exemple le tronc) à la source de réintégration.
    (c’est-à-dire la branche à réintégrer).

Si l'une de ces conditions est détectée, la fusion est annulée et les mesures nécessaires doivent être prises pour résoudre le problème avant que la branche puisse être réintégrée. Contrairement à une fusion --reintegrate, une fusion de réintégration automatique dans une copie de travail avec des modifications locales est autorisée.

Il est possible de fusionner des allées et venues entre deux branches dans n'importe quel ordre grâce à la fusion automatique de réintégration (la "danse Keep-Alive" n'est plus nécessaire). Pour de meilleurs résultats, il est recommandé de toujours fusionner toutes les révisions éligibles, c’est-à-dire de ne pas utiliser les options -r ou -c de svn merge. La fusion d'un sous-ensemble de révisions éligibles augmente la probabilité de problèmes lors de futures fusions.

Utiliser --reintegrate dans Subversion 1.8 forcera une fusion de réintégration, qu’il s’agisse ou non de la bonne fusion à réaliser dans une situation donnée.

Dans votre cas, vous devez procéder comme suit :

  1. Assurez-vous que vous utilisez une copie de travail de la pile propre, sans modifications, à jour, comme vous le feriez normalement.
  2. TortoiseSVN -> Fusionner sur cette copie de travail root
  3. Sélectionnez "Fusionner une plage de révisions".
  4. Sélectionnez la branche que vous réintégrez
  5. Ne spécifiez pas de plage de révision (pour fusionner toutes les révisions éligibles)
  6. Subversion 1.8 devrait détecter automatiquement la réintégration et effectuer les mêmes contrôles de sécurité
  7. Procédez à votre fusion normalement

Selon le tableau de compatibilité, un client Subversion 1.8 peut effectuer cette réintégration automatique tant que le format de votre serveur Subversion et de votre référentiel correspond à la version 1.5 ou ultérieure.

Je ne me suis pas encore auto-réintégré, je ne fais que sortir des notes de publication.

71
Joshua McKinnon

Maintenez la touche Shift enfoncée lorsque vous ouvrez le menu contextuel, vous verrez les options cachées. Il y aura TortoiseSVN/Merge reintegrate... dans le menu.

Cependant, vous devriez utiliser new Automatic reintegration merge

14
Krystian Bigaj