Чи має команда svn команду "повернути все"?


159

Якщо я хочу скинути всі свої зміни та повернутися до коду, що знаходиться у сховищі, я виконую наступне:

$ rm -fr *
$ svn up

Це досить просто, але мені цікаво, чи є одна команда, яка виконає це, щось на кшталт:

$ svn revert-all

Хто використовує -fr замість -rf? Є причина, що це яскраво виражений римраф, а не римффер.
Джиммі Хоффа

@JimmyHoffa У чому причина?
Ерік Вілсон

3
Конвенція Вілсон! Конвенції, сер! Без нашої дисципліни та культурних традицій ми лише дикуни! Я кажу, добрий день, сер!
Джиммі Хоффа

Відповіді:


306

Ви можете зробити:

svn revert -R .

Це не видалить новий файл, який не знаходиться під контролем версії. Але ви можете легко написати сценарій оболонки, щоб зробити це так:

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

2
Ласкаво просимо до ТА, і дякую за ретельну відповідь, оскільки svn revert -Rце не рівнозначно двом командам, які я дав.
Ерік Вілсон

1
Для видалення всіх файлів, які не перебувають під контролем версій у командному рядку Windows, відповідь тут: stackoverflow.com/a/1502365/1385429
Christiaan Westerbeek,

Користувач Машзо вказав (у видаленій зараз відповіді), що -Rпрапор може знадобитися для того, щоб неперевершені каталоги також були видалені, як частина викидання всіх змін. Спробуйте включити це у свою відповідь, якщо це здається вам доречним.
Джеремі Бенкс

27

Є команда

svn revert -R .

АБО
ви можете використовувати --depth = нескінченність, що насправді те саме, що вище:

svn revert --depth=infinity 

svn revertза своєю суттю небезпечно, оскільки вся його мета полягає у викиданні даних, а саме ваших невмілих змін. Після повернення Subversion не дає змоги повернути ці незатверджені зміни


7
-Rеквівалентно--depth=infinity
Майкл Берр

4
У вашому cmd "svn revert -R" відсутній поточний каталог у синтаксисі. Це повинно бути "svn revert -R".
boddhisattva

Наразі публікація звучить як -Rвзаємовиключна, --depth-infinityколи її немає.
ahnbizcad

@ahnbizcad Чи не є ці два точні синоніми?
Nyerguds

Це моя суть. Ця відповідь робить два звучання різними, коли його немає. "взаємовиключний" = протилежний синоніму
ahnbizcad

17

Використовуйте рекурсивний перемикач - рекурсивний (-R)

svn revert -R .

0

Щоб відновити змінені файли:

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

Я думаю, що моя зміна форматування означає те, що ви хочете. Відкат, якщо вам це не подобається. І спасибі, добре згадати погані старі часи SVN ... :)
Ерік Вілсон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.