Reintegrate może być użyty tylko wtedy, gdy wersje X do Y zostały wcześniej połączone z reintegracją źródła, ale tak nie jest

Używam gałęzi SVN z Tortoise 1.6. Od czasu do czasu łączę pnia z gałęzią, aby być na bieżąco.

Dzisiaj, pomyślałem, że reintegruję gałąź. Wybrałem "Reintegrate a branch" z Tortoise i otrzymałem następujący komunikat o błędzie:

Reintegrate może być użyty tylko wtedy, gdy wersje od 4709 do 5019 zostały wcześniej połączone z http://subversion/svn/saxdev/trunk do źródła reintegrate, ale tak nie jest

Następnie wymieniono około 50 plików z opisy takie jak to:

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

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

Rewizja 5019 jest rewizją główną. Wersja 4737 była rewizją, kiedy stworzyłem gałąź.

Mam to z dziennika dla rewizji 4737

Action: Added Path: / branches / qst Copy from path: / trunk

Dla mnie ten Komunikat o błędzie mówi, że gałąź nie pochodziła z trunk, co nie jest prawdą.

Jakieś pomysły?
Author: Bizmarck, 2011-01-19

8 answers

Jeśli pracujesz nad gałęzią i utrzymujesz ją na bieżąco z innymi pracami, możesz być zdezorientowany, gdy utworzysz roboczą kopię trunka i spróbujesz reintegrować swoją gałąź, jeśli otrzymasz wiadomość o czymś takim:

$ svn merge --reintegrate https://server.blah/source/orb/branches/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:
  branches/bronze_services/occl
    Missing ranges: /trunk/occl:650-693

Widziałem wiele obejść w Google, ale denerwowały mnie jako "hacki". Aby się tym zająć, postanowiłem zrobić dokładnie to, co subversion sugeruje w wiadomości. Wróciłem do mojej gałęzi i wyraźnie połączyłem określone wersje:

$ 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.
Kiedy to zrobiłem, byłem w stanie wrócić do roboczej kopii trunka i bez żadnych problemów ponownie zintegrować gałąź.

Mam nadzieję, że to pomoże

 121
Author: Paul Whipp,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-13 22:21:29

[[ chociaż moje rozwiązanie działało dla mnie w przeszłości, może prowadzić do niewłaściwych wyników w przypadku nowoczesnych klientów SVN. W naszym przypadku błędy scalania wydawały się być produktami ubocznymi automatyzacji, które mylą naszą historię SVN, a nie rzeczywistą aktywność. Zostawiam to dla potomności, ale proszę rozważyć zaakceptowaną odpowiedź. ]]

Rozwiązaniem dla mnie było usunięcie wszelkich właściwości svn:mergeinfo, które w jakiś sposób dołączają się do poszczególnych plików w hierarchii.

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

To Znajdź pliki z informacjami mergeinfo, które możesz zrobić:

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

Następnie możesz usunąć właściwości 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 ...
Po tym jak to zakończyłem, moje połączenie zakończyło się pomyślnie.
 79
Author: Gray,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-15 15:54:44

Jeśli spróbujesz reintegrować swoją gałąź do trunka i zobaczysz takie błędy z TortoiseSVN:

Test Merge reintegrate nie powiódł się!: "Reintegrate może być użyty tylko wtedy, gdy niektóre poprawki zostały wcześniej połączone z trunkiem, ale tak nie jest"

Kliknij na tekst błędu i naciśnij CTRL + A, CTRL + C aby skopiować cały tekst.

Wklej tekst do ciągu znaków tego skryptu 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 $_" }

Skrypt wyodrębnia ścieżki względne plików z problemem mergeinfo i wypisuje listę poleceń, aby naprawić każdy z nich.

You may have to change wartość 'userdata' dostosowana do struktury repozytorium.

Wykonaj skrypt, aby wypisać polecenia potrzebne do usunięcia problemu mergeinfos.

W tym przykładzie skrypt wytworzy taki wynik:

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  

W wierszu polecenia możesz przejść do bazy gałęzi (myproject) i wykonać polecenia, aby usunąć problem mergeinfos.

Powinieneś zobaczyć takie wyjście:

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'.

Jak w odpowiedź Graya , teraz powinieneś zatwierdzić zmiany w / align = "left" / Tym razem powinno zadziałać!

 15
Author: Iain Samuel McLean Elder,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:34:21

W rzeczywistości naprawiłem go za pomocą opcji "Scal dwie różne gałęzie", aby połączyć pień i gałąź do mojej kopii roboczej. Potem powierzyłem to bagażnikowi.

Marvellous

 11
Author: colinjwebb,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-01-19 16:37:05

Coś, co zadziałało dla mnie w tortoise SVN: zamiast scalać wszystkie wersje z gałęzi, wybierz konkretny zakres i ręcznie wybierz WSZYSTKIE wersje z gałęzi.

 5
Author: Olga Perederieieva,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-22 22:23:07

Po prostu rób, co mówi SVN.

  1. Połącz gałąź z rewersem, o którym mówi ci SVN
  2. reintegracja z gałęzi do pnia
 3
Author: Farshid Eilami,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-09 12:28:22

Zobacz także moją odpowiedź tutaj dla mojego doświadczenia z podobnym przypadku. Nie jestem pewien, czy to jest źródło Twojego problemu, ale wygląda na to, że Subversion 1.8 ma problemy z mergeinfo, gdy dwie zmiany się anulują.

 1
Author: dewtell,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:47:08

Natknąłem się na ten problem. Zrobiłem dziennik SVN na mojej gałęzi, aby znaleźć, czy połączyłem trunk z moją gałęzią.

Odnotowałem wszystkie poprawki.

Następnie wykonałem połączenie mojej gałęzi z trunkiem, ręcznie określając zmiany. Określiłem wszystkie zakresy, aby wykluczyć zmiany, gdy połączyłem bagażnik. Udało mi się połączyć mój oddział.

Musiałem zrobić kilka revertów na mergeinfo, ale mój kod został scalony.

Natychmiast usunąłem swoją gałąź.

 0
Author: David,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-04-13 19:38:34