Удаление ревизий с помощью TortoiseSVN

Я совершил некоторые плохие изменения кода в моем SVN sever, используя в TortoiseSVN.

теперь главный пересмотр составляет 155, но я хотел бы удалить последние 2 пересмотра, чтобы главный пересмотр был 153. Другими словами, Я хотел бы "отменить" мои последние два коммита.

Как я могу это сделать с помощью TortoiseSVN? Существует ли опция в меню TortoiseSVN или мне нужно использовать командную строку?

5 ответов


Если вы откроете журнал SVN, вы можете щелкнуть правой кнопкой мыши по ревизии и использовать параметры вернуться к этой редакции или отменить изменения из этой ревизии. Оба этих параметра обновят вашу рабочую копию (которую вы можете затем зафиксировать).

в TortoiseSVN нет опций для удалить изменения.


к сожалению, с TortoiseSVN (или любым другим SVN-клиентом) невозможно удалить ревизию, в том смысле, что она полностью исчезает из истории. Изменение истории репозитория SVN сложно и требует манипуляций на сервере-см. Этот вопрос:почему не уничтожить существенную особенность Subversion?

однако вы можете "отменить" проверку, сделав новую проверку, которая изменяет ее обратно. Обычно это делается с помощью техники называется "обратное слияние". См., например,убрать случайную проверку


Я использовал эти инструкции взяты из сайт Черепаха.

но важно нажать COMMIT сразу после. Я сходил с ума, пока не понял это.

Если вам нужно сделать более старую ревизию вашей ревизии сделать следующее:

  1. Выберите файл или папку, в которой необходимо отменить изменения. Если вы хотите отменить все изменения, это должен быть верхний уровень папка.

  2. выберите TortoiseSVN → показать журнал, чтобы отобразить список ревизий. Вам может потребоваться использовать Show All или Next 100, чтобы показать интересующую вас ревизию(ы).

  3. щелкните правой кнопкой мыши на выбранной редакции, затем выберите контекстное меню → вернуться к этой редакции. Это приведет к отмене всех изменений после выбранной ревизии.

  4. сделать коммит.


будучи в корне обновленной рабочей копии, вы должны использовать следующую команду:

svn merge -rHEAD:153 .

это "отменит" все ваши изменения из версии 153, чтобы ваша версия 156 выглядела как версия 153.

Не забудьте совершить после этого!

вы можете сделать то же самое из TortoiseSvn: откройте 'Показать Журнал' интерфейс, выберите версию 153, щелкните ее правой кнопкой мыши и выберите 'отменить изменения из этой ревизии'.


из командной строки:

вносите изменения в файл:

svn merge -r <newBadRev>:<oldRevToMergeBackTo> <filename>

например:

svn merge -r 155:153 myfile.cpp