Подтвердить что ты не робот

Возможно ли создать патч в Eclipse из уже внесенных изменений?

Я использовал средство создания патча в Eclipse для создания исправлений для незафиксированных изменений. Я ищу способ создания исправлений в Eclipse для изменений, которые уже были зафиксированы в VCS.

Если я что-то пропустил, я не думаю, что это возможно, но есть ли плагин, который добавляет эту возможность? например позволяя вам выбрать две версии в представлении "История" и создать патч между ними или сравнить две ветки и возможность создавать патч из результатов в представлении "Синхронизировать"?

Я рад создавать такие патчи из командной строки, но я ищу способ упростить/интегрировать процесс, если это возможно.

Спасибо за любую помощь.

Обновление:, если какие-либо предложения относятся к конкретной системе управления версиями. Меня особенно интересуют CVS, SVN и Mercurial. Еще раз спасибо.

4b9b3361

Ответ 1

В подзаголовке вы можете выбрать две версии каталога в окне истории, сравнить их и сохранить патч как унифицированный diff.

Ответ 2

Я провел несколько обширных исследований... и я узнал, что нет никакого способа использовать фактический редактор сравнения Eclipse для создания файла .patch на основе различий в разделе "Local History".

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

Ответ 3

Я только что сделал патч SVN после фиксации!:)

  • Войдите в "Репозиторий SVN"
  • Перейдите в корень проекта.
  • Нажмите "Сравнить"
  • Выберите "Unified diff to output file"
  • Нажмите "Выбрать" и выберите имя и расположение файла
  • Нажмите "Ok"

Ответ 4

Это можно сделать с помощью перспективы "Исследователя хранилища SVN".

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

Ответ 5

В соответствии с другими ответами нет, в настоящее время это невозможно.

Но на данный момент здесь рассматривается ручная работа с SVN в качестве примера (я полагаю, что другие VCS позволят очень похожие сравнения):

  • Создайте второе рабочее пространство Eclipse; Рабочая область 2.
  • Убедитесь, что в рабочей области 2 есть правильный код для "цели" слияния и исходной рабочей области 1, имеет код, за который вы забыли сделать патч.
  • Вручную сравнивайте Workspace 1 и 2 с помощью инструмента слияния, способного сравнивать каталоги (в Windows мне нравится Araxis Merge, но WinMerge тоже работает).
  • Откройте каждый файл и убедитесь, что в нем есть только ваши изменения, если есть другие изменения, вам придется переносить каждую из ваших измененных строк, если никто другой не изменил целевой файл, вы можете скопировать весь файл в поперечнике.
  • Синхронизировать рабочее пространство 2 (но не регистрируйтесь!), чтобы вы могли видеть изменения, которые у вас теперь есть.
  • В рабочей области 1 откройте "SVN Repository Exploring Perspective"
  • Щелкните правой кнопкой мыши папку, в которой был установлен код (возможно, что-то вроде "ветки" или "соединительная линия" ) → "Сравнить...", и он должен был уже заполнить номер ревизии непосредственно перед вашей регистрацией.
  • Теперь вы можете увидеть изменения от кода, который вы отметили (который вы забыли сделать патчем), с версией, прежде чем вы ее проверили.
  • Рабочие пространства 1 и 2 открываются бок о бок и запускаем каждый измененный файл визуально, чтобы убедиться, что они соответствуют всем из 1 теперь отображается в 2.

Очень, очень утомительно, но он должен забрать все изменения.

Ответ 6

Когда я не смог сделать это в Eclipse (мне нужно было работать только с CVS), я попробовал другое программное обеспечение и обнаружил, что SmartCVS может это сделать. Однако эта функция доступна только в платной версии Pro, и требуется немного времени (например, медленное сравнение), когда у вас больше кода.

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