Jak "przywrócić" usunięty folder w Subversion / TortoiseSVN?
Przypadkowo usunęliśmy folder 'tags' z naszego repozytorium Subversion, gdzie zamierzaliśmy usunąć tylko jeden konkretny tag. Jak najłatwiej odzyskać folder "tagi"?
Używamy TortoiseSVN jako naszego klienta i pomyślałem, że kiedy przejdę do przeglądarki repo i Pokaż dziennik, pojawi się coś w stylu "Przywróć zmiany z tej wersji", podobnie jak to, co możesz zobaczyć w podobnym oknie na swojej kopii roboczej. Ale nie ma tam takiego rozkazu...
6 answers
Wystarczy skopiować usunięty folder z poprzedniej wersji.
W przeglądarce repozytorium kliknij przycisk HEAD (w prawym górnym rogu), aby pokazać rewizji, w której folder nadal istnieje, a następnie kliknij go prawym przyciskiem myszy i wybierz " Kopiuj do..."i wprowadź tam ścieżkę, którą chcesz ponownie utworzyć folder (prawdopodobnie tę samą ścieżkę, która jest już w polu tekstowym).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-26 13:01:58
Dla entuzjastów wiersza poleceń:
-
Najpierw znajdź numer wersji, w której nastąpiło usunięcie:
svn log -v http://svnserver/path/to/folderContainingDeletedFolder
Powiedzmy, że katalog został usunięty w wersji 999 (btw: może być łatwiej znaleźć numer wersji w przeglądarce svn repo)
-
Skopiuj folder z revision minus 1
svn copy http://svnserver/path/to/folderContainingDeletedFolder/deletedFolder@998 http://svnserver/path/to/folderContainingDeletedFolder/deletedFolder -m "undeleted folder"
W Twoim przypadku może to być:
svn copy http://svnserver/project/tags@998 http://svnserver/project/tags -m "undeleted folder"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-12 08:15:55
Większość z tych odpowiedzi będzie działać do pewnego stopnia, ale poprawna odpowiedź należy do Daniela. W ten sposób zachowasz historię wersji.
svn merge -r R1:R2
Gdzie R1 to wersja, w której się znajdujesz, a R2 to wersja, która zawiera usunięty plik / folder.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-28 18:18:37
Będziesz musiał wykonać odwrotne scalanie.
Aby uzyskać szczegółowe informacje na temat tego, jak to zrobić (i prawie wszystko, co kiedykolwiek chcesz lub musisz zrobić z SVN), oficjalna książka jest dostępna online.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-27 00:00:33
Goto Repository Browser
z twojego repository
, Kliknij prawym przyciskiem myszy na folderze nadrzędnym, w którym istniał twój usunięty folder. Teraz Show Log
folderu nadrzędnego i wybierz poprzednią wersję, w której zatwierdzono operację usuwania. Będziesz miał listę i kliknij prawym przyciskiem myszy na folderze z informacji o wersji i wybierz Update to this Revision
.
Jesteś skończony
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-02-15 10:57:22
Kontynuując odpowiedź raudiego, która zadziałała dla mnie po tej rewizji.
Niektórzy klienci svn mogą potrzebować numeru wersji podanego za pomocą parametru-r revision zamiast @ po folderze w następujący sposób:
svn copy svn://svnserver/project/tags svn://svnserver/project/tags **-r 998** -m "undeleted folder"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-15 11:19:14