Mam katalog roboczy SVN. Wprowadziłem kilka zmian w tym katalogu i pokazuje się w svn status
. Ale czy jest jakiś sposób, aby usunąć wszystkie moje zmiany i po prostu pobrać wszystko z pnia za pomocą wiersza polecenia?
195
Mam katalog roboczy SVN. Wprowadziłem kilka zmian w tym katalogu i pokazuje się w svn status
. Ale czy jest jakiś sposób, aby usunąć wszystkie moje zmiany i po prostu pobrać wszystko z pnia za pomocą wiersza polecenia?
svn revert -R .
svn up
Spowoduje to rekurencyjne cofnięcie bieżącego katalogu i wszystkich znajdujących się pod nim katalogów, a następnie zaktualizowanie do najnowszej wersji.
Użyłem kombinacji odpowiedzi innych ludzi, aby wymyślić to rozwiązanie:
Cofnij normalne lokalne zmiany SVN
Usuń wszelkie inne zmiany i obsługuje usuwanie plików / folderów ze spacjami itp.
Nie zapomnij pobrać najnowszych plików z SVN
źródło
źródło
svn cleanup . --remove-ignored
Jeśli nie masz żadnych zmian, zawsze możesz być naprawdę dokładny i / lub leniwy i zrobić ...
Ale tak naprawdę nie rób tego, chyba że jesteś naprawdę pewien, że opcja nuke-from-space jest tym, czego chcesz !! Ma to tę zaletę, że nukuje także wszystkie cruft kompilacji, pliki tymczasowe i rzeczy, które SVN ignoruje.
Bardziej poprawnym rozwiązaniem jest użycie polecenia revert:
-R powoduje, że subversion powtarza się i przywraca wszystko w bieżącym katalogu roboczym i poniżej niego.
źródło
svn nuke-from-space
Żadna z odpowiedzi tutaj nie była tym, czego chciałem. Oto, co wymyśliłem:
Testowane na systemie Linux; może działać w Cygwin, ale opiera się (jak sądzę) na specyficznym dla GNU rozszerzeniu, które pozwala na dzielenie xargs na podstawie
'\0'
zamiast białych znaków.Zaletą powyższego polecenia jest to, że resetowanie obszaru izolowanego nie wymaga żadnej aktywności sieciowej. Dostajesz dokładnie to, co miałeś wcześniej i tracisz wszystkie swoje zmiany . (wyłączenie odpowiedzialności, zanim ktoś obwinie mnie za to, że ten kod niszczy ich pracę) ;-)
Używam tego skryptu w systemie ciągłej integracji, w którym chcę mieć pewność, że po uruchomieniu niektórych testów zostanie wykonana czysta kompilacja.
Edycja : Nie jestem pewien, czy to działa ze wszystkimi wersjami Subversion. Nie jest jasne, czy
svn status
polecenie jest zawsze formatowane konsekwentnie. Używaj na własne ryzyko, jak w przypadku każdego polecenia, które używa takiegorm
polecenia zbiorczego .źródło
svn revert cofnie wszelkie dokonane zmiany lokalne
źródło
Aby cofnąć wszystkie zmiany lokalne, możesz użyć następującego polecenia:
źródło
Usunie każdy zmodyfikowany plik. Wydaje mi się, że pamiętam problemy z przywracaniem, gdy pliki i katalogi mogły zostać dodane.
źródło
svn revert
źródło
Jeśli korzystasz z systemu Windows, poniższe polecenie pętli przywróci wszystkie niezatwierdzone zmiany wprowadzone w obszarze roboczym:
Jeśli chcesz usunąć wszystkie niezatwierdzone zmiany i wszystkie niewersjonowane obiekty, będzie to wymagało 2 pętli:
źródło