Вопрос об откате версии SVN

Я использую 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/).

Однако интересно, существует ли простой способ откатывать к определенному пересмотру. Я думал, что управление версиями просто хорошо для таких вещей (или я неправильно понимаю что-то?).

Есть ли простая команда/кнопка/и т.д. это берет обновления мой локальный репозиторий к старому пересмотру и объявляет, что это новейшее?

Так как я предполагаю, что нет никакой "встроенной" функции, чтобы сделать это, я хотел знать, какая причина приводят разработчиков к решению не интегрировать эту функцию. Кто-либо знает это?

6
задан phimuemue 19 March 2010 в 13:59
поделиться

4 ответа

По какой-то причине люди SVN решили называть это «обратным слиянием». В диалоговом окне «Слияние TortoiseSVN» установите флажок «Обратное слияние» и убедитесь, что в поле ревизий указано что-то вроде HEAD-324 (где 324 - это версия, к которой вы собираетесь вернуться).

3
ответ дан 17 December 2019 в 02:26
поделиться

Я не уверен, правильно ли я вас понял, поскольку, например, в ссылке, которую вы процитировали (Roll back or revert entire svn repository to an older revision) уже есть решение: обратное слияние (как упоминал Powerlord).

Из документации TSVN merge-documentation:

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

Я думаю, важно помнить, что вы не "откатываете изменения", а "сливаете их", а затем повторно фиксируете. Вы, так сказать, "продолжаете двигаться вперёд" (потому что в SVN нет "отката"; в конце концов, это контроль версий, а не "забывание" :)).

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

2
ответ дан 17 December 2019 в 02:26
поделиться

Я бы переместил текущий ствол в ветвь для безопасного хранения, а затем сделал бы копию с номером ревизии, который вы хотите вернуть в ствол.

-2
ответ дан 17 December 2019 в 02:26
поделиться

В TortoiseSVN есть более простой (или по крайней мере более интуитивно понятный ИМХО) способ это сделать. Я предполагаю, что то, что на самом деле происходит за кулисами, - это «обратное слияние», о котором говорили другие.

  1. Щелкните правой кнопкой мыши файл / папку, которую нужно откатить.
  2. Щелкните «Показать журнал» в меню TortoiseSVN.
  3. Выберите редакции, которые нужно отменить.
  4. Щелкните эти исправления правой кнопкой мыши.
  5. Выберите « Отменить изменения из этой ревизии » - не путать с «Вернуться к этой ревизии»!
  6. Нажмите «Да»
  7. Помните, что это изменит только вашу рабочую копию. Подтвердите, что это сработало так, как вы ожидали, а затем зафиксируйте, поместив в журнал сообщение об «откате» или «обратном слиянии»
3
ответ дан 17 December 2019 в 02:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: