Scal dwie wersje gałęzi za pomocą Subversion

95

Chciałbym scalić wszystkie zmiany, które zaszły między wersją 10 i wersją HEAD na http: // url-of-branch-a i zastosować je do http: // url-of-branch-b .

Coś jak...

svn merge -r 10:HEAD http://url-of-branch-a 

czy to możliwe? Jeśli tak, jaka jest składnia?

Uruchamiam klienta SVN z wiersza poleceń unix. Wersja klienta SVN to 1.4

EDYCJA: Tak, moim konkretnym rozwiązaniem było ...

  1. zmień katalog na lokalizację mojej kopii roboczej, która chce otrzymać zmiany (gałąź-b)
  2. svn merge -r 10: HEAD http: // url-of-branch-a

Spowoduje to połączenie zmian z „branch-a” na „branch-b”

user62732
źródło
4
Musisz także wiedzieć, kiedy oddział został zabrany. Możesz to zrobić (svn log --stop-on-copy.) W swoim oddziale, aby uzyskać numer wersji, z której się rozgałęziłeś.
jmc
@jmc już tego nie potrzebujesz od roku 2008, kiedy wydano SVN 1.5, AFAIR
bahrep

Odpowiedzi:

55

Adres URL kasy A. Użyj scalania SVN, aby scalić adres URL B z kopią roboczą A. Zatwierdź A.

Lub odwrotnie oczywiście :)

Billy ONeal
źródło
127

Proces przebiega następująco:

  1. Stwórz kopię roboczą oddziału B ( svn checkout http://branch-b)
  2. Scal zmiany z gałęzi A do kopii roboczej B ( svn merge -r 10:HEAD http://branch-a .)
  3. Zatwierdź (po rozwiązaniu konfliktów) kopię roboczą B do gałęzi b ( svn commit)

Sprawdź stronę podręcznika (plik pomocy) pod kątem semantyki scalania svn. Pokazuje, że scalanie svn zawsze zrzuca wyniki do kopii roboczej.

Sprawdź SVNBook, aby uzyskać wszystkie szczegóły.

Jamie Hale
źródło
Czy mógłbyś również dać pomysł, jak to zrobić za pomocą wtyczki SVN w eclipse?
Snehal Masne
To działa dla mnie: svn merge --force --allow-mixed-revisions -r 10: HEAD branch-a
Minh Nguyen
2
dlaczego określamy wersję 10 na HEAD? Dlaczego dwa punkty końcowe wersji zamiast jednej wersji mają być używane jako migawka? do której gałęzi odnosi się "10 to HEAD"?
ahnbizcad
2

Głównie mylić merge, próbując zrobić w repozytorium svn, nie możemy bezpośrednio połączyć się z repozytorium svn, możemy scalić się z kopią roboczą lokalnej maszyny w następujący sposób:

  • Ta kopia robocza powinna być destination URLscalona (tj. Miejsce docelowe kasy).

  • scal kopię roboczą z source URLscalaniem.

  • commit do miejsca przeznaczenia.

Sprawdzona metoda : scalanie, scalanie.

Premraj
źródło