Czy svn ma polecenie „revert-all”?

159

Jeśli chcę odrzucić wszystkie zmiany i wrócić do kodu znajdującego się w repozytorium, wykonuję następujące czynności:

$ rm -fr *
$ svn up

Jest to dość łatwe, ale zastanawiam się, czy istnieje jedno polecenie, które to zrobi, na przykład:

$ svn revert-all
Eric Wilson
źródło
Kto używa -fr zamiast -rf? Jest powód, dla którego wymawia się to rimraf, a nie rimfer.
Jimmy Hoffa
@JimmyHoffa Jaki jest powód?
Eric Wilson,
3
zjazd Wilson! Konwencje, proszę pana! Bez naszej dyscypliny i tradycji kulturowych jesteśmy tylko dzikusami! Mówię, dzień dobry panie!
Jimmy Hoffa
Zobacz też: stackoverflow.com/questions/239340/… | stackoverflow.com/questions/6204572/…
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功

Odpowiedzi:

306

Mógłbyś:

svn revert -R .

Nie spowoduje to usunięcia żadnego nowego pliku, który nie jest objęty kontrolą wersji. Ale możesz łatwo napisać skrypt powłoki, aby to zrobić, na przykład:

for file in `svn status|grep "^ *?"|sed -e 's/^ *? *//'`; do rm $file ; done
Juan Carlos Muñoz
źródło
2
Witamy w SO i dziękuję za dokładną odpowiedź, ponieważ svn revert -Rnie jest to równoważne z dwoma poleceniami, które wydałem.
Eric Wilson
1
Aby usunąć wszystkie pliki, które nie są objęte kontrolą wersji w wierszu poleceń systemu Windows, odpowiedź jest następująca: stackoverflow.com/a/1502365/1385429
Christiaan Westerbeek
Użytkownik mashzo wskazał (w usuniętej już odpowiedzi), że -Rflaga może być konieczna, aby zapewnić, że niewersjonowane katalogi również zostaną usunięte, jako część odrzucenia wszystkich zmian. Rozważ uwzględnienie tego w swojej odpowiedzi, jeśli wydaje ci się to właściwe.
Jeremy Banks
27

Jest rozkaz

svn revert -R .

LUB
możesz użyć --depth = infinity, co jest w rzeczywistości takie samo jak powyżej:

svn revert --depth=infinity 

svn revertjest z natury niebezpieczny, ponieważ jego całym celem jest wyrzucenie danych - a mianowicie twoich niezatwierdzonych zmian. Po przywróceniu Subversion nie zapewnia możliwości odzyskania tych niezatwierdzonych zmian

bilash.saha
źródło
7
-Rjest odpowiednikiem--depth=infinity
Michael Burr
4
W składni polecenia cmd „svn revert -R” brakuje bieżącego katalogu. Powinno to być „svn revert -R”.
boddhisattva
Obecnie post brzmi jak -Rwyklucza się wzajemnie, --depth-infinitygdy tak nie jest.
ahnbizcad
@ahnbizcad Czy w ogóle nie są to dokładne synonimy?
Nyerguds
To mój punkt. Ta odpowiedź sprawia, że ​​oba brzmią inaczej, gdy tak nie jest. „wzajemnie wykluczające się” = przeciwieństwo synonimu
ahnbizcad
17

Użyj przełącznika rekurencyjnego --recursive (-R)

svn revert -R .
Chris
źródło
0

Aby przywrócić zmodyfikowane pliki:

sudo svn revert
svn status|grep "^ *M" | sed -e 's/^ *M *//'
Taylor Hawkes
źródło
Myślę, że moja zmiana formatowania odpowiada Twoim oczekiwaniom. Cofnij, jeśli ci się to nie podoba. I dzięki, dobrze jest pamiętać stare złe czasy SVN ... :)
Eric Wilson