Как вы продолжаете отрабатывать старую ревизию в Subversion, когда забыли создать новую ветку? - PullRequest
4 голосов
/ 18 июля 2009

дубликаты: Как мне откатить весь или часть коммита в svn?


Я настроил аккаунт на http://www.projectlocker.com/ для одного из моих проектов. Я единственный человек, работающий над этим, но я подумал, что отслеживание версий все равно будет полезно, и это хороший опыт обучения. Я установил стандартную структуру папок с помощью / trunk /, / branch /, /tags/.

Скажем, вы работаете над стволом и понимаете, что вы действительно испортили некоторые вещи, но вы хотите вернуться к нескольким ревизиям и продолжить оттуда. Я могу выполнить обновление до предыдущей ревизии и начать вносить изменения, но сервер не разрешит мне выполнить коммит, если я не обновлюсь с последней ревизии, которая также внесет все нежелательные изменения. Так как же мне вернуться к предыдущей ревизии, а затем продолжить работу над стволом оттуда? Должен ли я каким-то образом объединить старую ревизию с последней ревизией?

Я использую плагин AnkhSVN для визуальной студии, поэтому я был бы признателен и ответил, что объясняет, как это сделать в этом клиенте, но я уверен, что смогу определить реальные нажатия кнопок из более концептуального ответа. 1012 *

Ответы [ 3 ]

11 голосов
/ 18 июля 2009

Я не использую AnkhSVN, поэтому я не знаю точно, какие клики вам нужны, однако это довольно трудная задача в TortoiseSVN и в командной строке:

Вам просто нужно отменить все изменения, применив обратное слияние . обычно это делается в черепахе:

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

В командной строке вы должны сделать это:

svn merge -r 120:100 http://svn.example.com/<path_to_your_repo>

Это отменит все ревизии со 101-120, оставив вам то же самое, что и Рев 100

1 голос
/ 18 июля 2009

Из книги подрывной деятельности:

http://svnbook.red -bean.com / о / 1,4 / СВН-book.html # svn.branchmerge.commonuses.undo

По сути, вы сказали, что хотите объединить старую версию со своим рабочим каталогом.

0 голосов
/ 18 июля 2009

Не уверен, что ответит на ваш вопрос, но вы можете просто создать ветку на основе этой старой ревизии.

С AnkhSVN самый простой способ сделать это:

  • Щелкните правой кнопкой мыши по решению
  • Subversion -> Branch Solution
  • Проверьте, является ли URL-адрес URL-адресом, который вы хотите разветвить (например, '^ / trunk') (^)
  • Выберите: Специальную версию и введите (или просмотрите) версию, которую вы хотите использовать.
  • Введите сообщение журнала
  • Установите флажок «Переключиться на ветвь после создания» внизу
  • А потом ОК

(^) Если URL-адрес не соответствует ожидаемому, вам следует исправить URL-адрес привязки решения в File -> Subversion -> Change Source Control. Обычно это должен быть логический корень проекта.

...