Używałem gałęzi SVN z Tortoise 1.6. Od czasu do czasu łączę bagażnik z gałęzią, aby był aktualny.
Dzisiaj myślałem, że ponownie zintegruję oddział. Wybrałem „Reintegrate a branch” od Tortoise i otrzymałem następujący komunikat o błędzie:
Reintegrate może być użyte tylko wtedy, gdy wersje od 4709 do 5019 zostały wcześniej scalone ze http://subversion/svn/saxdev/trunk
źródłem reintegracji, ale tak nie jest
Następnie wymieniono około 50 plików z opisami takimi jak:
Error: branches/qst/kobalt/sax/businessobjects/util/HistoryParent.java
Error: Missing ranges: /trunk/kobalt/sax/businessobjects/util/HistoryParent.java:4709-5018
Wersja 5019 jest wersją główną. Wersja 4737 była wersją, kiedy tworzyłem gałąź.
Mam to z dziennika wersji 4737
Akcja: Dodano ścieżkę: / branches / qst Kopiuj ze ścieżki: / trunk
Dla mnie ten komunikat o błędzie mówi, że gałąź nie pochodziła pierwotnie z linii głównej, co nie jest prawdą.
Jakieś pomysły?
źródło
Odpowiedzi:
Jeśli pracujesz w gałęzi i na bieżąco aktualizujesz ją z innymi pracami, możesz być zdezorientowany, kiedy tworzysz działającą kopię linii głównej i próbujesz ponownie zintegrować swój oddział, jeśli otrzymasz wiadomość podobną do tej:
Widziałem wiele obejść w Google, ale denerwowały mnie jako „hacki”. Aby rozwiązać ten problem, postanowiłem zrobić to, o czym subversion sugeruje w wiadomości. Wróciłem do mojej gałęzi i wyraźnie scaliłem określone wersje:
Gdy to zrobiłem, mogłem bez problemu wrócić do kopii roboczej pnia i ponownie zintegrować oddział.
mam nadzieję, że to pomoże
źródło
svn merge
to z bagażnika.[[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 myliły naszą historię SVN, a nie rzeczywistą aktywnością. Zostawiam to tutaj dla potomności, ale zamiast tego rozważ zaakceptowaną odpowiedź. ]]
Rozwiązaniem dla mnie było usunięcie wszelkich
svn:mergeinfo
właściwości, które w jakiś sposób są dołączane do poszczególnych plików w hierarchii.Aby znaleźć pliki z informacjami o scaleniu, możesz:
Następnie możesz usunąć właściwości mergeinfo:
Po ukończeniu tego scalanie przebiegło pomyślnie.
źródło
Jeśli spróbujesz ponownie zintegrować swoją gałąź z główną i zobaczysz takie błędy z TortoiseSVN:
Kliknij tekst błędu i naciśnij CTRL+ A, CTRL+C aby skopiować cały tekst.
Wklej tekst do ciągu tutaj tego skryptu programu PowerShell:
Skrypt wyodrębnia względne ścieżki plików z informacją o problemie scalającym i wyświetla listę poleceń, aby naprawić każdy z nich.
Być może będziesz musiał zmienić
'userdata'
wartości, aby dopasować ją do struktury repozytorium.Uruchom skrypt, aby wypisać polecenia potrzebne do usunięcia problemów scalających.
W tym przykładzie skrypt wygeneruje następujące dane wyjściowe:
W wierszu polecenia możesz przejść do podstawy oddziału (myproject) i wykonać polecenia, aby usunąć scalone informacje o problemach.
Powinieneś zobaczyć takie wyjście:
Podobnie jak w odpowiedzi Graya , teraz powinieneś zatwierdzić zmiany w gałęzi i spróbować ponownie się zintegrować. Tym razem powinno działać!
źródło
\s+
aby działało dla Ciebie?+
potrzebne, żeby to zadziałało dla mnie. W moim przypadku niektóre linie miały dwie spacje, a inne trzy, więc potrzebna była obsługa zmiennej liczby spacji. Nie jestem pewien, dlaczego zmieniłem spację na a\s
; to prawdopodobnie nie było potrzebne, przepraszam za tę część!+
ponieważ było dla ciebie przydatne.Właściwie naprawiłem to za pomocą opcji „scal dwie różne gałęzie”, aby scalić linię główną i gałąź w moją kopię roboczą. Potem przekazałem to do bagażnika.
Cudowny
źródło
Coś, co zadziałało dla mnie w SVN z żółwiem: zamiast scalać wszystkie wersje z gałęzi, wybierz określony zakres i ręcznie wybierz wszystkie wersje z gałęzi.
źródło
Po prostu zrób to, co mówi SVN.
źródło
Zobacz także moją odpowiedź tutaj dotyczącą moich doświadczeń z podobnym przypadkiem. Nie jestem pewien, czy to jest źródłem twojego problemu, ale wygląda na to, że Subversion 1.8 ma problemy z informacją o połączeniu, gdy dwie zmiany wzajemnie się anulują.
źródło
Natknąłem się na ten problem. Zrobiłem dziennik SVN w moim oddziale, aby dowiedzieć się, czy połączyłem magistralę z moim oddziałem.
Zanotowałem wszystkie poprawki.
Następnie dokonałem scalenia mojej gałęzi z linią główną, określając wersje ręcznie. Podałem wszystkie zakresy, aby wykluczyć wersje, w których scaliłem tułów. Udało mi się połączyć oddział.
Musiałem dokonać kilku zmian w mergeinfo, ale scaliłem kod.
Natychmiast usunąłem swój oddział.
źródło
Otrzymałem ten błąd po skorzystaniu z częściowego zamówienia oddziału. Utrzymywałem gałąź na bieżąco z pniem, ale wersje pnia dla części gałęzi, które nie zostały wyewidencjonowane, oczywiście nie były aktualizowane. Rozwiązaniem było pełne pobranie oddziału, a następnie scalenie wszystkich zmian linii głównej. Po przypisaniu ich do gałęzi mogłem pomyślnie scalić gałąź z pniem.
źródło
Mam ten problem
kliknij prawym przyciskiem myszy gałąź, w której chcesz scalić (ale otrzymujesz ten komunikat) i wybierz opcję "aktualizuj do wersji", a następnie w oknie dialogowym, które zostanie otwarte (zrzut ekranu poniżej) wybierz te wersje i kliknij OK - po scaleniu wszystkich poprzednich wersji, nie dostaniesz tej wiadomości
Dodanie tego tutaj, aby pomóc komuś, kto używa SVN Tortoise
źródło
Wiem, że to stary post, ale również starałem się rozwiązać ten problem, dopóki nie dowiedziałem się, że pliki wymienione w komunikacie o błędzie mają problem z właściwością SVN.
Kliknąłem prawym przyciskiem myszy problematyczne pliki: TortoiseSVN> Właściwości i stwierdziłem, że plik ma dwa svn: mergeinfo, a jeden z nich nie odziedziczył po danych. Więc usunąłem to mergeinfo.
Używam TortoiseSVN 1.12.2, kompilacja 28653 - 64-bitowa.
źródło