Ответ 1
Из командной строки:
svn up -r [revision_number]
Где [revision_number] - это ревизия, к которой вы хотите вернуться.
И нет, вы не можете удалять ревизии, которые уже существуют в SVN.
В проекте, над которым я работаю, произошла серия ошибок. Как я вернусь к известной рабочей ревизии и опишу ее? Скажем, я на пересмотре 15, но я хочу вернуться к пересмотру 10 - и работать дальше 10. Я использую Zend Studio.
Можно ли удалить ревизии, существующие в SVN?
Из командной строки:
svn up -r [revision_number]
Где [revision_number] - это ревизия, к которой вы хотите вернуться.
И нет, вы не можете удалять ревизии, которые уже существуют в SVN.
Три варианта:
Обратное слияние: (самый быстрый, сохраняет плохую ревизию, добавляет новую ревизию)
svn merge $(REPO)@$(GOODREV) $(WC)
SVN dump: (полностью удаляет плохие версии)
svnadmin dump $(REPO) -r 1:$(GOODREV) > dumpfile
svnadmin load $(NEWREPO) < dumpfile
# Now delete $(REPO), and use $(NEWREPO)
Ручное редактирование: (удаляет плохие версии, небезопасно, в крайнем случае)
Единственная причина, по которой вам может понадобиться, - это то, что по какой-то причине у вас есть доступ к хранилищу на уровне файлов, но без доступа к оболочке. Обратите внимание, что это было проверено только на SVN 1.6 и 1.7.
$(GOODREV)
(Если она оставлена в HEAD
, она будет непригодной после завершения.)db/current
на $(GOODREV)
. Убедитесь, что строка LF
не изменилась.db/revs/*/*
и db/revprops/*/*
, которые > $(GOODREV)
db/rep-cache.db
HEAD
, которая теперь должна быть равна $(GOODREV)
.Обратите внимание, что если вы используете TortoiseSVN, вы также должны выполнить следующие шаги:
%APPDATA%\TortoiseSVN\logcache\*
TSVNCache.exe
через диспетчер задач. (Обычно один, но может быть 2 на WinVista + из-за безопасности UAC, что препятствует взаимодействию приложений с повышенными приложениями с не приподнятым TSVNCache.exe
. В первый раз, когда вы открываете диалог Save As...
из приложения с повышенными правами, повышенный TSVNCache.exe
будет появляться.)Это устранит странный журнал, вызванный тем, что кеш TortoiseSVN находится в конфликте с новым состоянием репо.
Вы можете просто обновить версию до версии с помощью
svn up -r 10
Но поскольку Кристоф предположил, что это будет не позволять вам фиксировать изменения, поскольку SVN нуждается в том, чтобы вы обновили свою рабочую копию до HEAD, прежде чем сможете совершить. Вместо этого вы можете сделать
svn merge -r HEAD:10 yourFile
svn ci yourFile -m "Reverting back to rev 10"
Получить документы на веб-сайте TortoiseSVN.
Я использую метод 2 и отлично работаю на моей стороне.
https://tortoisesvn.net/docs/nightly/TortoiseSVN_en/tsvn-howto-rollback.html