2013-02-20 84 views
10

Mam projekt z o następującej strukturzesvn scalania z --reintegrate narzeka brakujących zakresów ale mergeinfo wydaje poprawne

^/project/trunk 
^/project/branches/mybranch 

gdzie obecna głowa jest wersja 1048. Oddział został skopiowany z tułowia w r523. tułów został połączony z mybranchem z wynikiem r1048. Mergeinfo na ^/project/branches/mybranch daje

/project/trunk:523-1047 

i mergeinfo tułowia ma rekord wymieniając nic od ^/project/branches/mybranch. Właściwie w rzeczywistości zarówno pnia, jak i gałęzie posiadają również mergeinfos z gałęzi równoległych do mybranch, ale te mergeinfos pojawiają się jako absolutnie identyczne w obu wyjściach.

Teraz idę do mojego kopii roboczej tułowia i starają się wydać

svn merge --reintegrate ^/project/branches/myproject 

otrzymuję komunikat o błędzie:

svn: Reintegrate can only be used if revisions 523 through 1048 were previously merged from file:///home/svn/project/trunk to the reintegrate source, but this is not the case: 
    project/branches/mybranch/src 
    Missing ranges: /project/trunk/src:523-1047 

To jest dziwne, ponieważ mergeinfo na moim folderze oddziału mówi mnie, że 523-1047 zostały poprawnie połączone z pnia do oddziału. Jaka jest umowa z tym podfolderem? src to katalog, który oczywiście istnieje zarówno w trunkingu, jak i gałęzi.

Myślę, że tam jest coś podejrzanego. Jeśli zajrzę do mergeinfo z mybranch/src przez svn pg svn:mergeinfo ^/project/branches/mybranch/[email protected], nic nie otrzymam. Jeśli patrzę na pniu/src jednak (svn pg svn:mergeinfo ^/project/trunk/[email protected]) uzyskać

/project/branches/mybranch/src:784 

Więc wydaje się, że ktoś zrobił cherry-pick z gałęzi tam bagażnik. Jednak nie pojawia się to w samym folderze trunk.

Czy to jest problem? I co najważniejsze: jak mogę go wyleczyć?

Odpowiedz

13

Czy to jest problem?

Tak, dokładnie - scalanie poddrzewa później zawsze mylić reintegracji

I najważniejsze: w jaki sposób można to wyleczyć ??

Usuń mergeinfo z/Project/trunk/src

+0

Tak, to się udało - wielkie dzięki. – janitor048

+0

Niestety to nie zadziałało. Moja gałąź i pień były identyczne w treści, ale prawdopodobnie z jakiegoś powodu różniły się w strukturze drzewa svn. Musiałem stworzyć nową gałąź z bagażnika i musiałem usunąć stary oddział, teraz działa, ale oczywiście nie jest to idealne rozwiązanie. –

4

Tutaj jest bardzo podobny temat warto rzucić okiem na:

Reintegrate can only be used if revisions were previously merged URL to reintegrate the source

szczególnie this answer z Paul Whipp bardzo mi pomógł, gdy napotkałem ten sam problem i nie chciałem usunąć mergeinfo, ponieważ brzmiało to jakoś ke rozwiązanie, a nie "prawdziwa" poprawka.

W skrócie: Spróbuj połączyć brakujące informacje ręcznie dla tego konkretnego pliku/folderu (tak jak sugeruje svn). Pracował jak urok dla mnie.

Zobacz odpowiedź Pawła dla odpowiedniego kodu excamples, itp.