Czy istnieje jedno polecenie Subversion, które „zresetuje” kopię roboczą dokładnie do stanu, który jest przechowywany w repozytorium? Coś w rodzaju git reset --hard
lub (ha, twardy reset Gita nie usuwa również niewersjonowanych plików!) rm -rf wc && svn co <url> wc
.
Aktualizacja: nie szukam prostego przywrócenia, ponieważ nie usuwa to dodatkowych plików w kopii roboczej. Naprawdę chcę czegoś, co byłoby tym samym, co usunięcie kopii roboczej i ponowne sprawdzenie, tylko bez konieczności ponownego pobierania danych. (Oczywiście nie mam nic przeciwko utracie wszystkich niezatwierdzonych zmian.)
git clean -xdf
do usuwania rzeczy, które nie są pod kontrolą źródła.git clean
cytaty dokładnie tego, czego szukam: „Można tego użyć (prawdopodobnie w połączeniu z resetem git) do stworzenia nieskazitelnego katalogu roboczego w celu przetestowania czystej kompilacji.” Szkoda, że Subversion nie wydaje się mieć czegoś takiego wbudowanego.Odpowiedzi:
Możesz rekurencyjnie przywrócić w ten sposób:
svn revert --recursive .
Nie ma sposobu (bez napisania skryptu kreatywnego), aby usunąć rzeczy, które nie są pod kontrolą źródła. Myślę, że najbliższe co możesz zrobić, to powtórzyć wszystkie pliki, użyć, a następnie grep wyniku
svn list
, a jeśli grep się nie powiedzie, usuń go.EDYTUJ : Rozwiązanie dla skryptu kreacji jest tutaj: Automatyczne usuwanie niewersjonowanych plików Subversion
Możesz więc stworzyć skrypt łączący
revert
dowolną odpowiedź w połączonym pytaniu, która najbardziej Ci odpowiada.źródło
svn cleanup
najpierw pobiegać po toalecie. To jest moja standardowa praktyka czyszczenia po przerwanych scaleniach i tak dalej.Aby przywrócić śledzone pliki
Aby wyczyścić nieśledzone pliki
Na początku
-rf
może / powinno wyglądać przerażająco, ale raz zrozumiane, nie będzie z tych powodów:rm
-rf
Jest wymagane, w przeciwnym wypadku te katalogi nie zostaną usunięteAby przywrócić, a następnie wyczyścić (pytanie OP)
Dla stałej łatwości użytkowania
Dodaj stały alias do swoich .bash_aliases
źródło
awk: fatal: error reading input file '-': Input/output error
?
wawk
poleceniu, w przeciwnym razie dopasowało wszystkie linie w wyjściusvn status
Usuń wszystko z lokalnej kopii za pomocą:
I przywróć wszystko rekurencyjnie za pomocą poniższego polecenia.
Jest to znacznie szybsze niż usuwanie całego katalogu, a następnie ponowne pobieranie, ponieważ pliki są przywracane z lokalnych metadanych SVN. Nie potrzebuje nawet połączenia sieciowego.
źródło
aby zresetować wszystko.
dla jednego pliku
źródło
Usuń niewersjonowane pliki i cofnij wszelkie zmiany:
Na zewnątrz:
źródło
Czyste rozwiązanie cmd / bat w systemie Windows:
źródło
Usuń kopię roboczą z systemu operacyjnego i sprawdź ją ponownie jest najprostsze, ale oczywiście nie jest jednym poleceniem.
źródło
Bardzo szybki i prosty, robi dokładnie to, co chcesz
Plik /(config|.ini)/ jest przeznaczony do moich własnych celów.
Dobrym pomysłem może być dodanie --no-ignore do polecenia svn
źródło
Aby usunąć nieśledzone pliki
Udało mi się wyświetlić listę wszystkich nieśledzonych plików zgłoszonych przez
svn st
bash, wykonując:Jeśli masz szczęście, możesz zastąpić
echo
je,rm
aby usunąć niezatwierdzone pliki. Lub skopiuj pliki, które chcesz usunąć ręcznie, jeśli czujesz się mniej szczęśliwy.(Użyłem odpowiedzi @ abe-voelker, aby przywrócić pozostałe pliki: https://stackoverflow.com/a/6204601/1695680 )
źródło