La réintégration ne peut être utilisée que si les révisions X à Y ont été précédemment fusionnées à partir de pour réintégrer la source, mais ce n’est pas le cas.

Vous utilisez des twigs SVN avec Tortoise 1.6. J’ai régulièrement fusionné le coffre dans la twig pour le garder à jour.

Aujourd’hui, je pensais réintégrer la twig. J’ai choisi “Réintégrer une twig” de Tortoise et j’ai reçu le message d’erreur suivant:

La réintégration ne peut être utilisée que si les révisions 4709 à 5019 ont été précédemment fusionnées de http://subversion/svn/saxdev/trunk à la source de réintégration, mais ce n’est pas le cas.

Il a ensuite répertorié environ 50 fichiers avec des descriptions telles que celle-ci:

Error: twigs/qst/kobalt/sax/businessobjects/util/HistoryParent.java

Error: Missing ranges: /trunk/kobalt/sax/businessobjects/util/HistoryParent.java:4709-5018

La révision 5019 est la révision de tête. La révision 4737 était la révision lorsque j’ai créé une twig.

J’ai ceci du journal pour la révision 4737

Action: Chemin ajouté: / twigs / qst Copier du chemin: / trunk

Pour moi, ce message d’erreur indique que la twig n’était pas d’origine du tronc, ce qui n’est pas vrai.

Des idées?

Si vous travaillez sur une twig et que vous la gardez à jour avec d’autres personnes, vous risquez d’être perplexe lorsque vous créez une copie de travail du tronc et que vous essayez de réintégrer votre twig si vous recevez un message du genre:

 $ svn merge --reintegrate https://server.blah/source/orb/twigs/bronze_services svn: Reintegrate can only be used if revisions 650 through 694 were previously merged from https://server.blah/source/orb/trunk to the reintegrate source, but this is not the case: twigs/bronze_services/occl Missing ranges: /trunk/occl:650-693 

J’ai vu un certain nombre de solutions de contournement sur Google mais elles m’ont rendu nerveux en tant que “hacks”. Pour y remédier, j’ai décidé de faire exactement ce que la subversion laisse entendre dans le message. Je suis retourné dans ma twig et fusionné explicitement les révisions spécifiées:

 $ svn merge -r 650:693 https://server.blah/source/orb/trunk $ svn commit -m 'merged revisions 650:693 from trunk' Sending occl Committed revision 695. 

Une fois que j’ai fait cela, j’ai pu retourner à la copie de travail du coffre et réintégrer la twig sans aucun problème.

J’espère que ça aide

[[Bien que ma solution ait fonctionné pour moi par le passé, elle peut entraîner des résultats incorrects avec les clients SVN modernes. Dans notre cas, les erreurs de fusion semblaient être des sous-produits d’automatismes qui confondaient notre historique SVN et non l’activité réelle. Je laisse ceci ici pour la postérité mais veuillez considérer la réponse acceptée à la place. ]]

La solution pour moi était de supprimer toutes les propriétés svn:mergeinfo attachées d’une manière ou d’une autre à des fichiers individuels de la hiérarchie.

 svn merge --reintegrate svn+ssh://svn/usr/local/svn/repos/all/trunk svn: Reintegrate can only be used if revisions 18765 through 18921 were previously merged from svn+ssh://svn/usr/local/svn/repos/all/trunk to the reintegrate source, but this is not the case: trunk/proj/src/main/java/com/foo/furniture.java Missing ranges: /trunk/proj/src/main/java/com/foo/furniture.java:18765-18920 

Pour trouver les fichiers avec les informations de fusion, vous pouvez faire:

 cd ~/svn/twigs/2.7 svn propget -R svn:mergeinfo . 

Vous pouvez ensuite supprimer les propriétés mergeinfo:

 svn propdel svn:mergeinfo proj/src/main/java/com/foo/furniture.java ... svn commit -m 'removed mergeinfo' proj/src/main/java/com/foo/furniture.java ... 

Après avoir terminé ceci, ma fusion s’est bien passée.

Si vous essayez de réintégrer votre twig dans le tronc et que vous voyez des erreurs comme celle-ci de TortoiseSVN:

Le test de réintégration de fusion a seulement échoué !:

Cliquez sur le texte de l’erreur et appuyez sur CTRL + A , CTRL + C pour copier tout le texte.

Collez le texte dans la chaîne ici de ce script PowerShell:

 @" Command: Reintegrate merge http://svn.cloudcorp.com/twigs/myproject into C:\Users\iain\Documents\Repositories\CloudCorp\trunk Error: Reintegrate can only be used if revisions 18089 through 18612 were previously Error: merged from http://svn.corp.skyscanner.local/svn/SkyScannerDatabase/trunk to Error: the reintegrate source, but this is not the case: Error: Error: twigs/myproject/userdata/usermanagementservice Error: Error: Missing ranges: Error: /trunk/userdata/usermanagementservice:18365,18404 Error: Error: twigs/myproject/userdata/auto_create_db.sql Error: Error: Missing ranges: Error: /trunk/userdata/auto_create_db.sql:18406 Error: Error: Error: twigs/myproject/userdata/create_audit_tables_sortingggers_uds.sql Error: Error: Missing ranges: Error: /trunk/userdata/create_audit_tables_sortingggers_uds.sql:18406 "@ -split "`n" | ? { $_ -match ('Error: +twigs') } | % { $_.Subssortingng($_.IndexOf('userdata')) } | % { "svn propdel svn:mergeinfo $_" } 

Le script extrait les chemins relatifs des fichiers avec les informations de fusion des problèmes et affiche une liste de commandes pour les résoudre.

Vous devrez peut-être modifier la valeur 'userdata' pour l’adapter à la structure de votre référentiel.

Exécutez le script pour générer les commandes dont vous avez besoin pour supprimer le problème mergeinfos.

Dans cet exemple, le script produirait cette sortie:

 svn propdel svn:mergeinfo userdata/usermanagementservice svn propdel svn:mergeinfo userdata/auto_create_db.sql svn propdel svn:mergeinfo userdata/create_audit_tables_sortingggers_uds.sql 

À l’invite de commande, vous pouvez naviguer jusqu’à la twig de base (myproject) et exécuter les commandes pour supprimer le problème mergeinfos.

Vous devriez voir la sortie comme ceci:

 property 'svn:mergeinfo' deleted from 'userdata\usermanagementservice'. property 'svn:mergeinfo' deleted from 'userdata\auto_create_db.sql'. property 'svn:mergeinfo' deleted from 'userdata\create_audit_tables_sortingggers_uds.sql'. 

Comme dans la réponse de Gray , vous devez maintenant apporter les modifications à la twig et essayer de vous réintégrer. Cette fois ça devrait marcher!

En fait, je l’ai corrigé en utilisant l’option “fusionner deux twigs différentes” pour fusionner le tronc et la twig dans ma copie de travail. Ensuite, j’ai confié ça à la malle.

Merveilleux

Quelque chose qui a fonctionné pour moi dans tortoise SVN: au lieu de fusionner toutes les révisions depuis une twig, choisissez une plage spécifique et sélectionnez manuellement toutes vos révisions dans la twig.

Faites comme le dit SVN.

  1. Fusionner la twig de la réversion que SVN vous dit
  2. Réintégrer de la twig au tronc

Voir aussi ma réponse ici pour mon expérience avec un cas similaire. Je ne suis pas sûr que ce soit la source de votre problème, mais il semble que Subversion 1.8 rencontre des problèmes avec les informations de fusion lorsque deux modifications s’annulent.

J’ai rencontré ce problème. J’ai fait un journal SVN sur ma twig pour trouver si j’avais fusionné avec ma twig.

J’ai noté toutes les révisions.

J’ai ensuite fait la fusion de ma twig avec le tronc en spécifiant les révisions manuellement. J’ai spécifié toutes les plages pour exclure les révisions si je fusionnais le tronc. Je parviens à faire fusionner ma twig.

J’ai dû faire des retours sur mergeinfo, mais mon code a été fusionné.

J’ai immédiatement supprimé ma twig.