130 votes

Réintégrer ne peut être utilisé que si les révisions X à Y ont déjà été fusionnées de <URL> réintégrer la source, mais ce n'est pas le cas

Été en utilisant SVN branches avec Tortue 1.6. J'ai régulièrement fait l'objet de la fusion du tronc dans la branche de la garder à jour.

Aujourd'hui, j'ai pensé que j'avais la réintégration de la branche. J'ai choisi "la Réintégration de la direction générale de la Tortue et a reçu le message d'erreur suivant:

Réintégration ne peut être utilisé si des révisions 4709 par 5019 ont été fusionnées à partir de http://subversion/svn/saxdev/trunk à la réintégration de la source, mais ce n'est pas le cas

Il a ensuite énuméré autour de 50 fichiers avec des descriptions comme ceci:

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

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

Révision 5019 est à la tête de révision. Révision 4737 a été la révision lorsque j'ai créé une branche.

J'ai ceci à partir du journal de révision 4737

Action: a Ajouté Path: /branches/tvq Copie de chemin d'accès: /trunk

Pour moi, ce message d'erreur indique que la direction générale n'a pas été à l'origine du tronc, ce qui n'est pas vrai.

Des idées?

145voto

Paul Whipp Points 2868

Si vous travaillez sur une branche, et ont été mise à jour avec d'autres, le travail, vous pourriez être surpris lorsque vous créez une copie de travail du tronc et de la tentative de réintégrer votre direction si vous obtenez un message à quelque chose comme ceci:

~/python/orb2 $ svn merge --reintegrate https://paulwhippconsulting.slsapp.com/source/orb/branches/bronze_services
svn: Reintegrate can only be used if revisions 650 through 694 were previously merged from https://paulwhippconsulting.slsapp.com/source/orb/trunk to the reintegrate source, but this is not the case:
  branches/bronze_services/occl
    Missing ranges: /trunk/occl:650-693

J'ai vu un certain nombre de solutions sur Google, mais ils m'ont fait nerveux comme des "hacks'. Pour y remédier, j'ai décidé de faire exactement ce que subversion est l'allusion à dans le message. Je suis retourné à ma branche et explicitement fusionné les spécifiée révisions:

    ~/python/orb $ svn merge -r 650:693 https://paulwhippconsulting.slsapp.com/source/orb/trunk
    ~/python/orb $ svn commit -m 'merged revisions 650:693 from trunk'
    Sending        occl

Committed revision 695.

Une fois que je l'ai fait, j'ai été en mesure de retourner à la copie de travail du tronc et de la réintégration de la branche sans aucun problème.

J'espère que cette aide

86voto

Gray Points 58585

La solution pour moi était de supprimer toutes les propriétés svn:mergeinfo attachées à des fichiers individuels dans 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:

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

Ensuite, vous pouvez 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 a bien fonctionné.

16voto

Iain Elder Points 2672

Si vous essayez de réinsérer votre branche du tronc, et vous voyez des erreurs de ce type de TortoiseSVN:

Merge reintegrate test only failed!: "Reintegrate can only be used if some revisions were previously merged from trunk, but this is not the case"

Cliquez sur le texte d'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/branches/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:  branches/myproject/userdata/usermanagementservice  
Error:   
Error:     Missing ranges:  
Error:  /trunk/userdata/usermanagementservice:18365,18404  
Error:    
Error:  branches/myproject/userdata/auto_create_db.sql  
Error:   
Error:     Missing ranges:  
Error:  /trunk/userdata/auto_create_db.sql:18406  
Error:   
Error:    
Error:  branches/myproject/userdata/create_audit_tables_triggers_uds.sql  
Error:   
Error:     Missing ranges:  
Error:  /trunk/userdata/create_audit_tables_triggers_uds.sql:18406  
"@ -split "`n" |
? { $_ -match ('Error: +branches') } |
% { $_.Substring($_.IndexOf('userdata')) } |
% { "svn propdel svn:mergeinfo $_" }

Le script extrait les chemins relatifs des fichiers avec le problème de l'mergeinfo et affiche une liste de commandes de résoudre chacun d'eux.

Vous pourriez avoir à changer l' 'userdata' de la valeur pour l'adapter à votre structure de référentiel.

Exécuter le script pour la sortie des commandes dont vous avez besoin pour éliminer le problème mergeinfos.

Dans cet exemple, le script d'obtenir ce résultat:

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

À l'invite de commande, vous pouvez naviguer à la direction générale de base (myproject) et exécuter les commandes pour supprimer le problème mergeinfos.

Vous devriez obtenir un résultat 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_triggers_uds.sql'.

Comme en Gris de la réponse, vous devez maintenant valider les modifications apportées à la branche et essayer de réintégrer de nouveau. Cette fois, il devrait fonctionner!

12voto

colinjameswebb Points 1108

En fait, je l'ai corrigé à l'aide de l'option "Fusionner deux branches différentes" pour fusionner le tronc et la branche dans ma copie de travail. Ensuite, j'ai commis ça dans le coffre.

Merveilleux

3voto

Farshid Eilami Points 19

Faites comme SVN vous le dit.

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X