Откат плохих изменений с svn в Eclipse


допустим, я совершил некоторые плохие изменения в репозитории Subversion. Тогда я совершаю хорошие изменения, которые хочу сохранить.

Что было бы самым простым способом откатить эти плохие изменения в Eclipse и сохранить хорошие изменения? Предполагая, что файлы, относящиеся к плохим изменениям, не совпадают с файлами, относящимися к хорошим изменениям. Как все изменится, если хорошие изменения были внесены в те же файлы, что и плохие изменения?

Я в основном ищу способ сделать это с помощью плагинов Eclipse (Subclipse или подрывной), но команды командной строки также интересны.

7 77

7 ответов:

у вас есть два варианта для этого.

быстрый и грязный выбор файлов (с помощью ctrl) в окне проекта щелкните их правой кнопкой мыши, выберите команду Replace with... и тогда вы выберете лучший вариант для вас, от Latest from Repository, или какой-нибудь Branch версия. После получения этих файлов вы изменяете их (с пробелом или исправляете что-то, ваш вызов и фиксируете их для создания новой версии.

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

обе команды имеют свои эквиваленты командной строки:svn revert и svn merge.

В Eclipse Ganymede (Subclipse)

выберите проект / файл, который содержит плохие изменения, и из всплывающего меню выберите:

Если вы хотите сделать 1 файл за раз, вы можете перейти к просмотру истории для файла, предполагая, что у вас установлен плагин Eclipse SVN. "Команда- > Показать Историю"

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

в Eclipse с помощью Subversive:

щелкните правой кнопкой мыши проект - > Команда - > слияние

в окне слияния выберите ревизии, которые вы хотите вернуть как обычно, но также включите флажок "обратное слияние".

сольет, как обычно.

Я написал несколько сообщений в блоге на эту тему. Тот, который является Субклип-центрическим:http://markphip.blogspot.com/2007/01/how-to-undo-commit-in-subversion.html и тот, который ориентирован на командную строку:http://blogs.collab.net/subversion/2007/07/second-chances/

в svnbook есть раздел о том, как Subversion позволяет вам отменить изменения из определенной ревизии, не затрагивая изменения, которые произошли в последующих версиях:

http://svnbook.red-bean.com/en/1.4/svn.branchmerge.commonuses.html#svn.branchmerge.commonuses.undo

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

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

У меня такая же проблема, но опция очистки eclipse не работает для меня.

1) Установите TortoiseSVN
2) Откройте проводник Windows и щелкните правой кнопкой мыши на папке проекта
3 выбор опции очистки (путем проверки опции блокировки разрыва)

Это работает.

надеюсь, это кому-то поможет.