2011-11-15 10 views
142

Jeśli chcę wyrzucić wszystkie moje zmiany i powrót do kodu, który jest w repozytorium, mam następujące:Czy svn ma polecenie `revert-all`?

$ rm -fr * 
$ svn up 

Jest to dość łatwe, ale zastanawiam się, czy istnieje jedno polecenie, które będzie tego dokonać, coś jak:

$ svn revert-all 
+0

Kto używa -Fr zamiast -rf? Jest powód, dla którego jest wymawiany rimraf, a nie rimfer. –

+0

@ JimmyHoffa Jaki jest powód? –

+1

konwencja Wilson! Konwencje, proszę pana! Bez naszej dyscypliny i tradycji kulturowych jesteśmy tylko dzikusami! Mówię, dzień dobry, proszę pana! –

Odpowiedz

275

można zrobić:

svn revert -R . 

ten nie usunie żadnego nowego pliku nie objętego kontrolą wersji. Ale łatwo można napisać skrypt, aby to zrobić tak:

for file in `svn status|grep "^ *?"|sed -e 's/^ *? *//'`; do rm $file ; done 
+1

Witaj w SO, a dzięki za dokładną odpowiedź, ponieważ 'svn revert -R' nie jest równoważne dwóm wydanym poleceniom. –

+1

Aby usunąć wszystkie pliki nie objęte kontrolą wersji w wierszu poleceń systemu Windows, odpowiedź jest następująca: http://stackoverflow.com/a/1502365/1385429 –

+0

Użytkownik [mashzo] (http://stackoverflow.com/users/3745505/ mashzo) wskazał (w obecnie usuniętej odpowiedzi), że flaga '-R' może być konieczna do zapewnienia, że ​​niewersjonowane katalogi również zostaną usunięte, jako część wyrzucania * wszystkich * zmian. Zastanów się nad włączeniem tego do swojej odpowiedzi, jeśli wydaje Ci się to odpowiednie. –

23

jest komenda

svn revert -R . 

LUB
można użyć --depth = nieskończoność, która jest faktycznie takie same jak powyżej:

svn revert --depth=infinity 

svn revert jest z natury niebezpieczne, ponieważ cała jego celem jest wyrzucić danych mianowicie swoje niezatwierdzone zmiany. Gdy już powrócił, Subversion zapewnia w żaden sposób odzyskać te niezatwierdzone zmiany

+6

'-R' jest równoważne' --depth = infinity' –

+4

Twoje cmd " svn revert -R "brakuje bieżącego katalogu w składni .. powinno to być" svn revert -R. " – boddhisattva

+0

Tak, edytowałem odpowiednio moją odpowiedź. :-) –

17

użyć przełącznika rekurencyjne --recursive (-R)

svn revert -R . 
0

Aby przywrócić zmodyfikowane pliki:

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

Myślę, że moja zmiana formatowania reprezentuje to, co chcesz. Cofnij, jeśli ci się nie podoba. I dziękuję, dobrze jest zapamiętać stare złe czasy SVN ... :) –

Powiązane problemy