2010-08-27 14 views
7

Situation: Mam repozytorium SVN z powiedzmy 100 rewizji, rev. 100 jest najnowszym. Zrobiłem kilka zmian w rev. 90, które należy teraz cofnąć. Zmiany w rev. 90 są samodzielne, więc nie wpływają na kolejne poprawki.SVN: Przywraca zmiany losowej wersji, ale zachowuje zmiany wszystkich następnych

Problem: Chciałbym przywrócić tylko zmiany w rev. 90, ale nadal chce mieć wszystkie zmiany wszystkich kolejnych rewizji w mojej głowie rewizji.

Question:Czy jest jakaś funkcja w SVN, aby przywrócić tylko zmiany losowej wersji?

+0

Prawdopodobnie duplikat: http://stackoverflow.com/questions/13330011/how-to-revert-an-svn-commit –

Odpowiedz

12

Musisz wykonać scalanie, czyli scalenie z zakresem rev:rev-1. Na przykład w wierszu polecenia, jeśli są w katalogu roboczym:

`svn merge -r 90:89 .` 

W TortoiseSVN, wydaje się, trzeba wprowadzić 90 dla zakresu wersji do scalenia i sprawdź seryjnej Odwrócona wyboru w Merge dialog (Nie mam tego, więc nie mogę potwierdzić).

+1

Alternatywna (prawdopodobnie prostsza) składnia do cofnięcia pojedynczej wersji to: "svn merge -c -90. " –

4

Z TortoiseSVN otwórz dziennik i znajdź wersję, którą chcesz przywrócić. Kliknij prawym przyciskiem myszy i wybierz "Przywróć zmiany z tej wersji". Spowoduje to lokalne modyfikacje kopii roboczej, co spowoduje cofnięcie tej wersji.

+0

Działa to tylko w systemie Windows. Używam RapidSVN, alternatywy dla Tortoise dla Linuxa i nie ma tej funkcjonalności. –

Powiązane problemy