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

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

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

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


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 .

0

Aby przywrócić zmodyfikowane pliki:

sudo svn revert
svn status|grep "^ *M" | sed -e 's/^ *M *//'

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.