Я использую SVN (TortoiseSVN) и часто входил в следующую ситуацию:
Я хотел отменить любые изменения начиная с определенного (старого) пересмотра и возвратить все файлы к этой определенной (старой) версии. Затем я хотел работать далее, как будто этот определенный (старый) пересмотр был новейшим, т.е. Я хотел смочь фиксировать определенный старый пересмотр как новый пересмотр.
Я нашел несколько решений для этой проблемы (например, stackoverflow.com/questions/402159/roll-back-or-revert-entire-svn-repository-to-an-older-revision или rustyrazorblade.com/2007/04/how-to-roll-back-commits-to-an-earlier-version-of-a-repository-in-svn/).
Однако интересно, существует ли простой способ откатывать к определенному пересмотру. Я думал, что управление версиями просто хорошо для таких вещей (или я неправильно понимаю что-то?).
Есть ли простая команда/кнопка/и т.д. это берет обновления мой локальный репозиторий к старому пересмотру и объявляет, что это новейшее?
Так как я предполагаю, что нет никакой "встроенной" функции, чтобы сделать это, я хотел знать, какая причина приводят разработчиков к решению не интегрировать эту функцию. Кто-либо знает это?
По какой-то причине люди SVN решили называть это «обратным слиянием». В диалоговом окне «Слияние TortoiseSVN» установите флажок «Обратное слияние» и убедитесь, что в поле ревизий указано что-то вроде HEAD-324
(где 324 - это версия, к которой вы собираетесь вернуться).
Я не уверен, правильно ли я вас понял, поскольку, например, в ссылке, которую вы процитировали (Roll back or revert entire svn repository to an older revision) уже есть решение: обратное слияние (как упоминал Powerlord).
Из документации TSVN merge-documentation:
Если вы хотите слить изменения обратно из из вашей рабочей копии, чтобы вернуть изменение, которое уже было зафиксировано, выберите ревизии для и убедитесь, что флажок Обратное слияние установлен флажок.
Я думаю, важно помнить, что вы не "откатываете изменения", а "сливаете их", а затем повторно фиксируете. Вы, так сказать, "продолжаете двигаться вперёд" (потому что в SVN нет "отката"; в конце концов, это контроль версий, а не "забывание" :)).
Если вы случайно зафиксировали что-то, что по какой-то причине абсолютно не может быть в репозитории, вы должны (и можете) приложить больше усилий, чтобы "вытащить это снова" (также описано в теме по вашей ссылке: резервное копирование и восстановление).
Я бы переместил текущий ствол в ветвь для безопасного хранения, а затем сделал бы копию с номером ревизии, который вы хотите вернуть в ствол.
В TortoiseSVN есть более простой (или по крайней мере более интуитивно понятный ИМХО) способ это сделать. Я предполагаю, что то, что на самом деле происходит за кулисами, - это «обратное слияние», о котором говорили другие.