2010-01-19 12 views
13

Próbuję połączyć moją gałąź rozwojową z powrotem w bagażnik mojego repo. Kroki wziąłem:Eclipse Merge Branch into Trunk

  1. Przełącz do tułowia
  2. czek, że to do tej pory rozwiązać wszelkie konflikty
  3. idź do Team-> Merge
  4. Wybierz URL: Rozwój placówek
  5. Rozpocznij Korekta: Weryfikacja kiedy oddział został utworzony
  6. End Wersja: głowa
  7. OK

Należy to zrobić magię - otwiera się widok synchronizować co jest w porządku, pokazuje mi wszystkie konflikty, ale problem się:

W porównać edytor Widzę dwa pliki: Local File | Zdalny plik (306)

To jest naprawdę dziwne, numer wersji zdalnego pliku jest faktycznie jednym z plików w kopii roboczej (trunk) i tak samo jest z zawartością. Plik lokalny ma zawartość pliku w oddziale.

Teraz strzałka poprawnie pokazuje, że łączę się od lewej do prawej (gałąź do pnia). Dzieje się tak również po kliknięciu przycisku OK.

ALE mogę przenosić tylko zmiany od prawej do lewej !!! Nie tego chcę - nie chcę nadpisywać zmian w gałęziach starą zawartością pnia. Chcę przenieść zawartość od lewej (gałąź) do prawej (trunk). Ale nie mogę nawet napisać we właściwym pliku.

Nie wiem, dlaczego pisze tam zdalny plik? Wyraźnie pokazuje plik kopii roboczej w oknie pliku zdalnego, a plik z gałęzi (do scalania) jest wyświetlany w pliku lokalnym.

Jakiś błąd w Subversive?

Thx, Martin

Odpowiedz

6

Scala nigdy nie było łatwe z wywrotowe (jak wspomniano w tym starym SO question), więc można robić scalanie zewnątrz (lub z Subclipse) byłoby łatwiej tutaj.

Jeśli twój klient i repozytorium są co najmniej w SVN1.5, nowe możliwości łączenia w pionie są lepsze, ale nadal niebezpieczne, co ilustruje this thread.

Ponieważ Subversive został zmodyfikowany dla SVN 1.5, zmieniło się całe zachowanie scalania. Jedną rzeczą, która naprawdę mi się spodobała, jest możliwość wyboru, jakie zmiany chciałem, zastosować do mojej kopii roboczej, a następnie zatwierdzić do trunkingu.
Subwersja teraz już tego nie robi, ale wymusza wszystkie zmiany na kopii roboczej, a następnie wybierasz, co umieścić w bagażniku.

Jest to nie tylko niepożądane zachowanie, ale również niebezpieczne (jeśli w ogóle zignorujesz możliwość cofnięcia). Wolę robić rzeczy, o których wiem, że pracuję. Mamy gałąź wydania, która otrzymuje zmiany, które mogą, ale nie muszą być migrowane do pnia.

+1

to rodzaj true..it jest przerażające, że dzieje się przed seryjnej (bez interakcji użytkownika) do swojej kopia robocza. A następnie musisz porównać z bagażnikiem i przywrócić niechciane zmiany. Wolę to na odwrót (teraz próbuję wersji), gdzie przed scaleniem w kopię roboczą użytkownik może wybrać, które elementy się scalą. – martin

2

Na początku wydawało mi się to tajemnicze, teraz zapewnię przyzwoite ukłucie w aktualizowaniu tej odpowiedzi dla wszystkich. Dotyczy to łączenia za pomocą klienta Subversive SVN dla Eclipse:

Dokonujesz poprawnie scalenia, zaczynając od Trunk, a następnie wskazując plik w lokalnym oddziale. Twoje pliki otwierają się w oknie "Porównaj tekst" na karcie Zespół synchronizacji. Jeśli nie widzisz konfliktów w lewej kolumnie nawigacyjnej, to właśnie doszło do scalenia. Tak, jest to mylące i nieintuicyjne.

co tekst Porównaj okno oferuje jest możliwość cofnięcia zmian (lub jakichkolwiek innych, które mogły wstąpiło swoimi połączonych znienacka plików) zanim je popełnić. Pamiętaj, że ściągasz plik z Branch, więc pomysł jest taki, że plik Branch znajduje się w Trunk, ale w rodzaju wirtualnej limbo aż do ostatecznego zatwierdzenia, a zmiana lub cofnięcie niechcianych zmian odnosi się tutaj do pliku w Branch (oczywiście). Dlatego masz tylko jednokierunkową rurkę (Trunk to Branch), aby zastąpić zmienione połączone w Trunk poprzez kopię roboczą. Twoje połączenie miało miejsce, ale nie jest jeszcze oficjalnie.

Jeśli wszystko wygląda tak, jak powinno, kliknij prawym przyciskiem myszy plik w okienku nawigacji (lewe okienko w moim Eclipse Helios Install) i wybrać opcję Akceptuj z listy rozwijanej. Następnie kliknij z powrotem na główną kartę przeglądania kodu (w mojej instalacji jest to PHP, ale może to być wszystko, czego używasz), a następnie zatwierdz plik na Trunk.

Jeśli chcesz przetestować to, zrób widok pliku "tak jak jest" w Trunk przed zatwierdzeniem i powinieneś zobaczyć tam swoje zmiany, jeśli poprawnie wykonałeś scalenie. Wygląda na to, że działa dla mnie na OSX Snow Leopard MacBook Pro. Nie wiem, czy to samo dotyczy użytkowników systemu Windows lub Linux. Zakładam, że jest to zasadniczo ten sam/podobny proces.

0

łatwo

odjazdu kufer z czeku jako ... dać inną nazwę projektu.

Teraz masz zarówno lokalnie jako kopii roboczej, tułowia chcesz zaangażować się i gałęzi, nad którym pracujesz i których zmiany zostały comitted do repozytorium. Teraz kliknij prawym przyciskiem myszy projekt trunkingu (i mam na myśli projekt, a nie pojedyncze pliki) - scalam - wybierz projekt gałęzi (ponownie, PROJEKT) zaakceptuj wszystkie zmiany w lokalnej kopii zatwierdź wszystko, czego potrzebujesz, aby korzystać z magistrali zgodnie z wszystko w porządku, ponownie usunąć bagażnik i kontynuować pracę na oddziale

zwłaszcza z oddziałów Wydaje się bardzo proste i działa jak czar dla mnie