2012-12-05 11 views
8

Wprowadziłem kilka złych zmian kodu do mojego serwera SVN za pomocą TortoiseSVN.Usuwanie wersji przy użyciu TortoiseSVN

Teraz rewizja głowy to 155, ale chciałbym usunąć ostatnie 2 poprawki, tak aby rewizja głowy wynosiła 153. Innymi słowy, chciałbym "cofnąć" moje ostatnie dwa zatwierdzenia.

Jak mogę to zrobić za pomocą TortoiseSVN? Czy istnieje opcja w menu TortoiseSVN, czy też muszę użyć wiersza poleceń?

+0

chcę powiedzieć „interaktywny rebase”, ale nie jestem pewien, czy to prawda ... –

+0

@KerrekSB: To jest całkowicie poprawna ... dla git :-). – sleske

Odpowiedz

5

Jeśli otworzysz Zaloguj SVN, można kliknąć prawym przyciskiem myszy na zmiany i użyć opcji Przywróć do tej wersji lub Cofnij zmiany od tej wersji. Obie te opcje zaktualizują kopię roboczą (którą następnie można zatwierdzić).

Brak dostępnych opcji w obrębie TortoiseSVN do kasowanie wersji.

+0

Jeśli naprawdę musisz usunąć (nie sugeruję tego, chyba że wystąpiła poważna korupcja), istnieją pewne informacje [tutaj] (http://superuser.com/questions/95432/want-to-delete-revisions-from -my-svn-repozytorium). –

0

Z wiersza poleceń:

cofnąć zmiany w pliku:

svn merge -r <newBadRev>:<oldRevToMergeBackTo> <filename> 

Na przykład:

svn merge -r 155:153 myfile.cpp 
0

Niestety, z TortoiseSVN (albo innego klienta SVN) Nie ma sposób, aby naprawdę usunąć wersję, w tym sensie, że całkowicie znika z historii. Zmiana historii repozytorium SVN jest trudna i wymaga manipulacji na serwerze - zobacz to pytanie: Why isn't obliterate an essential feature of Subversion?

Możesz jednak "cofnąć" checkin, dokonując nowego checkin, który je cofa. Zwykle wykonuje się to techniką zwaną "reverse merge". Zobacz np. Retract accidental checkin

1

Będąc u podstaw zaktualizowanego kopii roboczej, należy użyć następującego polecenia:

svn merge -rHEAD:153 . 

To będzie „cofnąć” wszystkie zmiany od rewizji 153 tak, że wersja 156 będzie wyglądać rewizji 153

Nie zapomnij o tym później!

Można zrobić to samo z TortoiseSVN: Otwórz „Pokaż dziennik” interfejs, wybierz wersję 153, kliknij go prawym przyciskiem i wybierz „Cofnij zmiany od tej wersji”.

0

Użyłem tych instrukcji zaczerpniętych z Tortoise website.

Ale ważne jest, aby kliknąć COMMIT zaraz po. Robiłem się szalony, dopóki nie zdałem sobie z tego sprawy.

Jeśli potrzebujesz, aby twoja starsza rewizja rewizja głowa wykonaj następujące czynności:

  1. Wybierz plik lub folder, w którym trzeba cofnąć zmiany. Jeśli chcesz przywrócić wszystkie zmiany, powinien to być folder najwyższego poziomu.

  2. Wybierz opcję TortoiseSVN → Pokaż dziennik, aby wyświetlić listę wersji. Konieczne może być użycie opcji Pokaż wszystko lub Następne 100, aby wyświetlić interesujące Cię wersje.

  3. Kliknij prawym przyciskiem myszy wybraną wersję, a następnie wybierz Menu kontekstowe → Powróć do tej wersji. Spowoduje to odrzucenie wszystkich zmian po wybranej wersji.

  4. Dokonaj commit.